<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhang-rats-multiverifiers-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="Multiple RATS Verifiers">Handling Multiple Verifiers in the RATS Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-rats-multiverifiers-01"/>
    <author initials="J." surname="Zhang" fullname="Jun Zhang">
      <organization>Huawei Technologies France S.A.S.U.</organization>
      <address>
        <postal>
          <street>18, Quai du Point du Jour</street>
          <city>Boulogne-Billancourt</city>
          <code>92100</code>
          <country>France</country>
        </postal>
        <email>junzhang1@huawei.com</email>
      </address>
    </author>
    <author initials="H." surname="Labiod" fullname="Houda Labiod">
      <organization>Huawei Technologies France S.A.S.U.</organization>
      <address>
        <postal>
          <street>18, Quai du Point du Jour</street>
          <city>Boulogne-Billancourt</city>
          <code>92100</code>
          <country>France</country>
        </postal>
        <email>houda.labiod@huawei.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tieyan Li">
      <organization>Shield Lab, Singapore Research Center, Huawei Technologies</organization>
      <address>
        <postal>
          <street>Science Park II., 20 Science Park Road,</street>
          <code>Teletech Park</code>
          <country>Singapore</country>
        </postal>
        <email>Li.Tieyan@huawei.com</email>
      </address>
    </author>
    <author initials="T." surname="Giannetsos" fullname="Thanassis Giannetsos">
      <organization>UBITECH Ltd.</organization>
      <address>
        <postal>
          <street>Thessalias 8 and Etolias 10</street>
          <city>Chalandri,</city>
          <code>GR-15231</code>
          <country>Greece</country>
        </postal>
        <email>agiannetsos@ubitech.eu</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 68?>

<t>In the IETF Remote Attestation Procedures (RATS) architecture, a Verifier accepts Evidence and generates Attestation Results needed by Relying Parties.
This document provides a solution to inconsistent behaviors of the Verifier in the RATS architecture by introducing a mechanism to aggregate Attestation Results collected from multiple Verifiers at the Relying Party while simplifying its policy and operation.</t>
    </abstract>
  </front>
  <middle>
    <?line 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Remote Attestation procedures (RATS) Architecture illustrates an overview of the roles and data-flows between them in <xref section="3" sectionFormat="of" target="RFC9334"/>.
<xref section="5" sectionFormat="of" target="RFC9334"/> refines the data-flow diagram
by describing two reference models: Passport Model and Background-
check Model.
As discussed in that document, a Verifier accepts
Evidence from Attesters, appraises it using Appraisal Policy, and
generates Attestation Results needed by Relying Parties.</t>
      <t>As a single Verifier can introduce a single point of failure, either
as the target of a denial of service attack, due to compromization,
service congestion, or broken Internet connectivity to the Verifier,
relying on a single trusted entity can introduce significant risk.</t>
      <t>The architectural pattern of using multiple Verifiers are one
approach to counter such risks.
Nevertheless, it is not guaranteed that different Verifiers generate the same Attestation Results.
Some exemplary reasons include: a) RATS conceptual messages, such as
Reference Values, Endorsements, Appraisal Policy for Evidence for
different Verifiers, are not necessarily aligned, b) certain Verifiers
can be compromised, or c) some Verifiers follow different Appraisal
Policies for Evidence.
This lack of alignment can result in significant issues in both Passport Model and Background-check Model, which is detailed as follows.
The Solution to address the problem of the lack of alignment is detailed in <xref target="sec-three"/>.</t>
      <section anchor="passport-model-cases">
        <name>Passport Model Cases</name>
        <t>Under the Passport Model, an Attester sends Evidence to a Verifier.
The Verifier generates the Attestation Results and sends these back to the Attester.
The Attester conveys the Attestation Results to the Relying Party to proof its trustworthiness.
Fig. 1 and 2 show scenarios that multiple
heterogeneous Verifiers can introduce issues in a Passport
Model based system.</t>
        <t>In Fig. 1, if Verifier A is not trusted by the Relying Party,
Attestation Results sent by the Attester can always be rejected
by the Relying Party, which means that the Attester may end up
in a loop of producing and conveying Attestation Evidence and
wait for Attestation Results in vain, repeatedly.</t>
        <t>In Fig. 2, Verifier A generates positive Attestation Results
for an Attester, while Verifier B generates negative Attestation
Results for the same Attester.
To trick a Relying Party into putting unjustified trust in the Attester, an Attester can act maliciously by selectively forwarding only Attestation Results from Verifier A and not Verifier B. Such malicious behavior would render a trustworthiness assessment of Attesters by the Relying Party biased or unreliable.</t>
        <artwork><![CDATA[
     .-------------.
     |             | Compare Evidence
     |  Verifier A | against appraisal policy
     |             |
     '--------+----'
         ^    |
Evidence |    | Attestation
         |    | Result
         |    v
     .---+--------.              .-------------. Compare
     |            +------------>X|             | Attestation
     |  Attester  | Attestation  |   Relying   | Result against
     |            | Result       |    Party    | appraisal
     '------------'              '-------------' policy
]]></artwork>
        <t>Figure 1: Passport Model with Verifier A not trusted by Relying
Party.</t>
        <artwork><![CDATA[
     .-------------.
     |             | Compare Evidence
     |  Verifier A | against appraisal policy
     |             |
     '--------+----'
         ^    |
Evidence |    | Attestation
         |    | Result A (positive)
         |    v
     .---+--------.              .-------------. Compare
     |            +------------->|             | Attestation
     |  Attester  | Attestation  |   Relying   | Result against
     |            | Result A     |    Party    | appraisal
     '---+--------'              '-------------' policy
         |    ^
Evidence |    | Attestation
         |    | Result B (negative)
         |    |
         V    |
     .--------+----.
     |             | Compare Evidence
     |  Verifier B | against appraisal policy
     |             |
     '-------------'
]]></artwork>
        <t>Figure 2: Passport Model with a cheating Attester</t>
      </section>
      <section anchor="background-check-model-cases">
        <name>Background-check Model Cases</name>
        <t>Under the Background-check Model, an Attester sends Evidence to a
Verifier via a Relaying Party, and the Verifier generates the
Attestation Results and sends them back to the Relying Party.</t>
        <t>Fig. 3 and 4 show scenarios where multiple heterogeneous Verifiers
introduce potential issues in a Background-check Model.</t>
        <t>In Fig. 3, even if a Verifier is trusted by a Relying Party,
there is no assurance that it is working as intended and only does what
it is supposed to do and nothing else. If multiple Verifiers exist,
neither Evidence might reach all Verifiers nor all Attestation Results
might reach the Relying Party due to failing conveyance mechanisms, or
due to the Verifier itself being compromised or malfunctioning.,
or hardware problems.</t>
        <t>In Fig. 4, a Relying Party is able to alternate between Verifiers.
When these Verifiers are heterogeneous though, a Relying Party might
receive different or conflicting Attestation Results from them, which
means the trustworthy assessment of the Attester can rely (and fail)
on a specific selection of Verifiers made by at the Relying Party side.</t>
        <artwork><![CDATA[
                                .-------------.
                                |             | Compare Evidence
                                |   Verifier  | against
                                |             | appraisal
                                |      x(2)   | policy
                                '--------+----'
                                     ^   x(3)
                            Evidence |   | Attestation
                                     x(1)| Result
                                     |   v
   .------------.               .----|--------.
   |            +-------------->|---'         | Compare
   |            |               |             | Attestation
   |  Attester  |   Evidence    |     Relying | Result against
   |            |               |      Party  | appraisal policy
   '------------'               '-------------'
]]></artwork>
        <t>Figure 3: A Background-Check Model where a Verifier is not available
because of 1) a Relying Party not being reachable by the Verifier, 2)
a malfunction of the Verifier.</t>
        <artwork><![CDATA[
                                .-------------.
                                |             | Compare Evidence
                                |   Verifier  | against
                                |      A      | appraisal
                                '--------+----' policy
                                     ^   |
                            Evidence |   | Attestation
                                     |   | Result (positive)
                                     |   v
   .------------.               .----|--------. Compare
   |            +-------------->|---'         | Attestation
   |  Attester  |   Evidence    |     Relying | Result against
   |            |               |      Party  | appraisal policy
   '------------'               '----+--------'
                                     |   ^
                            Evidence |   | Attestation
                                     |   | Result (negative)
                                     v   |
                                .--------+----.
                                |             | Compare Evidence
                                |   Verifier  | against
                                |      B      | appraisal
                                '-------------' policy

Figure 4: A Background-Check Model conveying conflicting Attestation Results originating from multiple Verifiers.
]]></artwork>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terms are imported from <xref target="RFC9334"/>: Attester, Evidence,
Endorsement, Reference value, Appraisal Policy, Relying Party, and
Verifier. Also imported are the time definitions time(VG), time(NS),
time(EG), time(ER), time(RG),time(RX), and time(OP) from that
document's Appendix A.</t>
      <t>New relevant Events over Time:</t>
      <t>time(AG): the time at the event that the Attestation Results for
the same attester is aggregated.</t>
    </section>
    <section anchor="sec-three">
      <name>Handing Multiple Verifiers</name>
      <t>In this section, we show the data-flow to support robust aggregation
of the Attestation Results in an in an environment with many Verifiers 
that may be heterogeneous. Here heterogeneous means that the Verifiers 
may generate different Attestation Results according to the same
input of the Evidence.</t>
      <t>Below are the examples that the Relying Party needs multiple Verifiers.
1) To get Attestation Results from multiple Verifiers that follow
the same golden measurement, to provide resillience against
failure or compromisation of certain Verifiers. In this case,
the Attestation Results are expected to be the same from
these Verifiers. 
2) Different Verifiers provide different Attestation Results according
to different sub part of the same Evidence. The Relying Party makes
it own judgement according to its own logic to combine these
heterogeneous Attestation Results. In this case, the
Attestation Results can be expected to be different
from different Verifiers.</t>
      <t>In terms of resilience, these Verifiers cannot be replaced
by a conceptual single (proxy) Verifier as this single Verifier may
still has the availability issue.</t>
      <t>As an example, we extend the attestation data-flow based on the
Background-Check Model to handel multiple Verifiers that guarantee
the freshness of the Evidence from the Attester. 
The Verifier Manager is introduced into 
the attestation system to help the Relying Party choosing Verifiers
that are aggregable according to its own logic, that is, the
Relying Party has one mechanism to combine Attestation Results
from these Verifiers to make the final conclusion.</t>
      <section anchor="aggregation-of-attestation-results-from-multiple-verifiers">
        <name>Aggregation of Attestation Results from Multiple Verifiers</name>
        <t>Fig. 5 below is a sequence diagram which updates Fig. 14 in
<xref target="RFC9334"/> to support the aggregation of Attestation Results from
multiple Verifiers in a Background-check Model. The nonce is
generated by the Relying Party, in place of each Verifier, so as to
reduce the amount of Evidence generated. The aggregation method
implemented by the Relying Party is out of scope of this draft. For
example, the majority vote could be viewed as a possible solution,
when the Verifiers are expected to follow the same standard. 
The Attestation Results can be aggregated to help the Relying Party
making the decision, or be aggregated as a new Attestation Result,
which is decided by the Relying Party itself.</t>
        <artwork><![CDATA[
.---------.    .--------. .--------.    .--------.          .---.
| Attester|    |Verifier| |Verifier|    |Verifier|          | RP|
|         |    |    1   | |   2    |    |    k   |          |   |
'---------'    '--------' '--------'    '--------'          '---'
     |              |         |            |                  |
  Time(VG_a)        ~         ~            ~                  ~
     |              |         |            |                  |
     |<----Nonce---------------------------------------time(NS_r)
  Time(EG_a)        |         |            |                  |
     |              |         |            |                  |
     |-----Evidence{Nonce}----------------------------------->|
     |             |                                time(ER_r_1)
     |             |<-----Evidence{Nonce}---------------------|
     |             |         |            |         time(ER_r_2)
     |      time(RG_v_1)     |<-Evidence{Nonce}---------------|
     |             |  time(RG_v_2)        |         time(ER_r_k)
     |             |         |            |<-Evidence{Nonce}--|   
     |             |         |       time(RG_v_k)             |
     |             |--Attestation Result--------------------->|
     |             | {time(RX_v_1)-time(RG_v_1)}              |
     |             |         |----Attestation Result--------->|
     |             |         |  {time(RX_v_2)-time(RG_v_2)}   |
     |             |         |             |--------AR------->|
     |             |         | {time(RX_v_k)-time(RG_v_k)}    |
     |             |         |             |         time(AG_r)
     |             |         |             |         time(OP_r)
]]></artwork>
        <t>Figure 5: Background-Check Model with the support of the aggregation
of Attestation Results from multiple Verifiers.</t>
      </section>
      <section anchor="verifier-manager">
        <name>Verifier Manager</name>
        <t>Manually configuring the Verifiers in each Relying Party is not well
adapted to the changing of the network environment. As there is no
guarantee of the availability and consolidation of these Verifiers
in the long term, we introduce a new entity in RATS architecture,
which is the Verifier Manager, to address these issues. As shown in
Fig. 6, after configuring the anchor seed Verifiers in the Relying
Party, which is typically a small set of trusted Verifiers by the
Relying Party. The Relying Party can communicate with the Verifier
Manager with this list of Verifiers, in together with certain
parameters. The Verifier manager matches
this list with its local database of the groups of Verifiers, find
Verifiers that matches the parameter. Then
the Verifier Manager sends these Verifiers back to the Relying
Party, as its recommended Verifiers list. In such a way, each Relying
Party can flexibly configure its policy for the trusted Verifier, 
without knowing the detail of every Verifier. 
At the Verifier Manager side, the Verifiers in the same group are expected to follow
the same golden measurement, that is, they are expected to generate
the same Attestation Results when they receive the same Evidences. 
The example are the Verifiers that are deployed by the same
company or the alliance.
Here the same for Evidences and Attestation Results are
in the sense of semantic, that is, they can be wrapped
in different formats, CWT or JWT for example, but the
content itself is the same. 
When a Relying Party receives 
certain minority attesation results from certain Verifiers, 
it can inform the Verifier Manager this incidence, and the Verifier
Manager will reduce the reputation of these verifiers, and reduce 
the probability to recommend these Verifiers to Relying Parties. 
So in the long run, the misbehaved Verifiers will be punished.
The details on the  reputation management scheme for Verifiers
are out of scope of this draft.</t>
        <artwork><![CDATA[
.---------.   .----------.     .----------.     .--------------.
| Endorser|  | Reference |     | Verifier |     | Relying Party|
'+--------'  | Value     |     | Owner    |     | Owner        |
 |           | Provider  |     '----+-----'     '-----+--------'
 |           '------+----'          |                 |
 |                  |               |                 |
 | Endorsements     | Reference     | Appraisal       | Appraisal
 |                  | Values        | Policy for      | Policy for
 |                  |               | Evidence        | Attestation
 '-----------.      |               |                 | Results
               |    |               |                 |
               v    v               v                 |
             .-------------------------.              |
     .------>|         Verifier        +------.       |
    |        '-------------------------'      |       |
    |                                         |       |
    | Evidence                    Attestation |       |
    |                             Results     |       |
    |                                         |       |
    |                                         v       v
.-----+----.                                .---------------.
| Attester |                                | Relying Party |
'----------'                                '---------------'
                                              |       ^
                       Anchor seed Verifiers, |       | Recommended
                       parameter              |       | Verifiers
                                              |       |
                                           .------------------.
                                           | Verifier Manager |
                                           '------------------'

                  Figure 6: Revised Data Flow based on RFC9334
]]></artwork>
      </section>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <t>This Section illustrates some use cases that can benefit from an
architecture that takes multiple Verifiers into account.</t>
      <t>Use case 1: Node Attestation for Trusted Routing</t>
      <t>Need: Trustworthiness Assessment of routing nodes (Attesters)
against Verifier while ensuring the robustiness of the attestation
verification service (AVS)</t>
      <t>Solution: Provide multiple Verifiers (primary and secondaries) 
to ensure the availability of the AVS 
for nodes in the network</t>
      <t>Source:  Trusted Path Routine  <xref target="I-D.voit-rats-trustworthy-path-routing"/>,
network attestation for secure routing <xref target="I-D.liu-nasr-requirements"/></t>
      <t>Use case 2: Intent-driven Attestation Classification for Data Center
Network Solutions</t>
      <t>Need: In Data Centers,  Data Processing Units (DPU) need to attest 
   other units (DPUs, CPUs, GPUs) to determine their states. There might
   be hundreds of Verifiers (DPUs) for one Attester (DPU/CPU/GPU). At the
   Attester side, to
   generate indididually one Evidence for each Verifier could be prohibitive.</t>
      <t>Solution: One Verifier works as the Relying Party to contact
   the Attester, and marks other Verifiers that need to 
   attest this Attester in the same interesting group. 
   sends the attestation request to the Attester. The Evidence from the Attester 
   is only generated once and sent to this Verifier. This Verifier forwards
   the Evidence to other Verifiers that in the same interesting group
   and obtain the Attestation Results from them. It generates the
   Aggregated Attestation Results and shares it within the Verifiers
   in the same interesting group. In this manner, the Attester does not
   need to generate the Evidence for every Verifier, and the attestation
   procedure works even when certain Verifier does not work.</t>
    </section>
    <section anchor="security-consideration">
      <name>Security Consideration</name>
      <t>[TBD]</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>[TBD]</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="I-D.voit-rats-trustworthy-path-routing">
          <front>
            <title>Trusted Path Routing</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Meiling Chen" initials="M." surname="Chen">
              <organization>China Mobile</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   There are end-users who believe encryption technologies like IPSec
   alone are insufficient to protect the confidentiality of their highly
   sensitive traffic flows.  These end-users want their flows to
   traverse devices which have been freshly appraised and verified for
   trustworthiness.  This specification describes Trusted Path Routing.
   Trusted Path Routing protects sensitive flows as they transit a
   network by forwarding traffic to/from sensitive subnets across
   network devices recently appraised as trustworthy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-voit-rats-trustworthy-path-routing-10"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9397">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Architecture</title>
            <author fullname="M. Pei" initials="M." surname="Pei"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="D. Wheeler" initials="D." surname="Wheeler"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>A Trusted Execution Environment (TEE) is an environment that enforces the following: any code within the environment cannot be tampered with, and any data used by such code cannot be read or tampered with by any code outside the environment. This architecture document discusses the motivation for designing and standardizing a protocol for managing the lifecycle of Trusted Applications running inside such a TEE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9397"/>
          <seriesInfo name="DOI" value="10.17487/RFC9397"/>
        </reference>
        <reference anchor="I-D.liu-nasr-requirements">
          <front>
            <title>NASR Use Case and Requirements</title>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Luigi Iannone" initials="L." surname="Iannone">
              <organization>Huawei</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Antonio Pastor" initials="A." surname="Pastor">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Meiling Chen" initials="M." surname="Chen">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Li Su" initials="L." surname="Su">
              <organization>China Mobile</organization>
            </author>
            <date day="20" month="October" year="2024"/>
            <abstract>
              <t>   This document describes the use cases and requirements that guide the
   specification of a Network Attestation for Secure Routing framework
   (NASR).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-liu-nasr-requirements-03"/>
        </reference>
        <reference anchor="TAP" target="https://trustedcomputinggroup.org/wp-content/uploads/TCG_TNC_TAP_Use_Cases_v1r0p35_published.pdf">
          <front>
            <title>TCG Trusted Attestation Protocol (TAP) Use Cases for TPM Families 1.2 and 2.0 and DICE</title>
            <author>
              <organization>Trusted Computing Group</organization>
            </author>
            <date year="2019" month="November" day="05"/>
          </front>
          <seriesInfo name="1.0" value=""/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+U8aXPjNpbf8StQkw+2qiW2j+4crqlU1O4zlXR6bXdmalNJ
F0RCFmKK0BCk1Eqc/e373sNB8JBs92Y3tTVMxU2RON6Fh3eBk8mErc/4KWOV
qnJ5xg9eiyLLVXHNv6/zSq1yyX+UpZorWRquCl4tJL+YXl3yaZkuVCXTqi7l
AROzWSlhoNCJ2oSeLNNpIZYwflaKeTX5bSGK60kpKjNZYo+1bzg5OmailOKM
X8q0LlW1ZZvrMxqN3WzO+JuikmUhq8lzHIelojrjpsqYqaDTEt6/uHrJmKir
hS7P2ITbSb+tC/6fOCXjXJcw3utabKTiVzJdFDrX10oa/rIURSr5ZTJNLpP3
CTSVS6HyM/5rXRC8x98sqFuS6iW8xSklTH/85Zj/Ry0Uz2r+TquiwptvdV1C
m1RnSNOvTo6Pjg7wNyB0xp/pGuYs5OSZynOYFNpW1LguqhLeW0gC9K91nQn+
nZgpnX0SAgscIMlpgL8Ihyslt6Lg3ymPwOVCyTxDrMb8EsRNrHQJUiONFCBY
/Fwio8dDeDZ4facSO+4wUpepkkiQd6K84W/eJGN+ctR+eKFFNuafHZ1OTo8b
TK9kLkGwF9TmIEYqANrgBYIhjFGGv1KiAME02ngU3z97c/Xi/DX/rsoiZojr
0PCbeoYraJHIOgL7aiGNEbkShn/JYTHyF5WmX8dHDYyvLibHT09OjxuGnC8E
8CEr1TiG+BWMGYuSLG74M1XeLHT+m4cTWFUXCz2XJb98cwVP/WLuvfDyBKMk
MzfKN0ZVyTy0TDIZ4XKxkKqAH0Aiyb942sD/+ZOTr542wD8X5dJUImuJ0CtZ
LkWxZazQcINK4gxeX7w8/+r09InVCZPpxflrePhm8jxZa1VZlVKVtak2uqwW
28lKVItJqesKWHd2z3aMqWLem/OrL2CdHCXHXzz58ovH7ombOlf1BMSgnJTy
X7Uq5RKk15ztfgXdrqbvcGQgttNVnC5iyBXCJTN+rpcrAgjYqOsVNXFq+ur8
VWg2rSoJxKuULvi7Ulc61Tk/hAlG/D2Q/VwYUA6AD7969z1/KZYqR21xnJyQ
dJ0kR/Tv8zfnL2iGTFQwwcnR8VeT4+PJ0VM7rSivkaGLqlqZs8ePKzt36iG8
RgATgP7xZjVJNSzeonpcr3JYYOYxAPvh6u35BwDpA0D0gSD6sD4uj1anTz+s
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

-->

</rfc>
