<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-keytrans-architecture-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.1 -->
  <front>
    <title>Key Transparency Architecture</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-keytrans-architecture-00"/>
    <author fullname="Brendan McMillion">
      <organization/>
      <address>
        <email>brendanmcmillion@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="January" day="19"/>
    <area>Security</area>
    <workgroup>Key Transparency</workgroup>
    <keyword>key transparency</keyword>
    <abstract>
      <?line 34?>

<t>This document defines the terminology and interaction patterns involved in the
deployment of Key Transparency (KT) in a general secure group messaging
infrastructure, and specifies the security properties that the protocol
provides. It also gives more general, non-prescriptive guidance on how to
securely apply KT to a number of common applications.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-keytrans.github.io/draft-arch/draft-ietf-keytrans-architecture.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-keytrans-architecture/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Key Transparency Working Group mailing list (<eref target="mailto:keytrans@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/keytrans/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/keytrans/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-keytrans/draft-arch"/>.</t>
    </note>
  </front>
  <middle>
    <?line 42?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Before any information can be exchanged in an end-to-end encrypted system, two
things must happen. First, participants in the system must provide the service
operator with any public keys they wish to use to receive messages. Second, the
service operator must somehow distribute these public keys amongst the
participants that wish to communicate with each other.</t>
      <t>Typically this is done by having users upload their public keys to a simple
directory where other users can download them as necessary, or by providing
public keys in-band with the communication being secured. With this approach,
the service operator needs to be trusted to provide the correct public keys,
which means that the underlying encryption protocol can only protect users
against passive eavesdropping on their messages.</t>
      <t>However most messaging systems are designed such that all messages exchanged
between users flow through the service operator's servers, so it's extremely
easy for an operator to launch an active attack. That is, the service operator
can provide fake public keys which it knows the private keys for, associate
those public keys with a user's account without the user's knowledge, and then
use them to impersonate or eavesdrop on conversations with that user.</t>
      <t>Key Transparency (KT) solves this problem by requiring the service operator to
store user public keys in a cryptographically-protected append-only log. Any
malicious entries added to such a log will generally be visible to all
users, in which case a user can detect that they're being impersonated
by viewing the public keys attached to their account. However, if the service
operator attempts to conceal some entries of the log from some users but not
others, this creates a "forked view" which is permanent and easily detectable
with out-of-band communication.</t>
      <t>The critical improvement of KT over related protocols like Certificate
Transparency  <xref target="RFC6962"/> is that KT includes an efficient
protocol to search the log for entries related to a specific participant. This
means users don't need to download the entire log, which may be substantial, to
find all entries that are relevant to them. It also means that KT can better
preserve user privacy by only showing entries of the log to participants that
genuinely need to see them.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<dl>
        <dt><strong>End-to-end Encrypted Communication Service:</strong></dt>
        <dd>
          <t>A communications service that allows end-users to engage in text, voice,
video, or other forms of communication over the Internet, that uses public key
cryptography to ensure that communications are only accessible to their
intended recipients.</t>
        </dd>
        <dt><strong>End-user Device:</strong></dt>
        <dd>
          <t>The device at the final point in a digital communication, which may either
send or receive encrypted data in an end-to-end encrypted communication
service.</t>
        </dd>
        <dt><strong>End-user Identity:</strong></dt>
        <dd>
          <t>A unique and user-visible identity associated with an account (and therefore
one or more end-user devices) in an end-to-end encrypted communication
service. In the case where an end-user explicitly requests to communicate with
(or is informed they are communicating with) an end-user uniquely identified
by the name "Alice", the end-user identity is the string "Alice".</t>
        </dd>
        <dt><strong>User / Account:</strong></dt>
        <dd>
          <t>A single end-user of an end-to-end encrypted communication service, which may
be represented by several end-user identities and end-user devices. For
example, a user may be represented simultaneously by multiple identities
(email, phone number, username) and interact with the service on multiple
devices (phone, laptop).</t>
        </dd>
        <dt><strong>Service Operator:</strong></dt>
        <dd>
          <t>The primary organization that provides the infrastructure and software
resources necessary to operate an end-to-end encrypted communication service.</t>
        </dd>
        <dt><strong>Transparency Log:</strong></dt>
        <dd>
          <t>A specialized service capable of securely attesting to the information (such
as public keys) associated with a given end-user identity. The transparency
log is usually run either entirely or partially by the service operator.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>From a networking perspective, KT follows a client-server architecture with a
central <em>Transparency Log</em>, acting as a server, which holds the authoritative
copy of all information and exposes endpoints that allow users to query or
modify stored data. Users coordinate with each other through the server by
uploading their own public keys and/or downloading the public keys of other
users. Users are expected to maintain relatively little state, limited only
to what is required to interact with the log and ensure that it is behaving
honestly.</t>
      <t>From an application perspective, KT works as a versioned key-value database.
Users insert key-value pairs into the database where, for example, the key is
their username and the value is their public key. Users can update a key by
inserting a new version with new data. They can also look up the most recent
version of a key or any past version. Users are considered to <strong>own</strong> a key if,
in the normal operation of the application, they should be the only one making
changes to it. From this point forward, "key" will refer to a lookup key in a
key-value database and "public key" or "private key" will be specified if
otherwise.</t>
      <t>KT does not require the use of a specific transport protocol. This is intended
to allow applications to layer KT on top of whatever transport protocol their
application already uses. In particular, this allows applications to continue
relying on their existing access control system.</t>
      <t>Applications may enforce arbitrary access control rules on top of KT such as
requiring a user to be logged in to make KT requests, only allowing a user to
lookup the keys of another user if they're "friends", or simply applying a rate
limit. Applications <bcp14>SHOULD</bcp14> prevent users from modifying keys that they don't
own. The exact mechanism for rejecting requests, and possibly explaining the
reason for rejection, is left to the application.</t>
    </section>
    <section anchor="user-interactions">
      <name>User Interactions</name>
      <t>As discussed in <xref target="protocol-overview"/>, KT follows a client-server architecture.
This means that all user interaction is directly with the transparency log. The
operations that can be executed by a user are as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Search:</strong> Performs a lookup on a specific key in the most recent version of
the log. Users may request either a specific version of the key, or the
most recent version available. If the key-version pair exists, the server
returns the corresponding value and a proof of inclusion.</t>
        </li>
        <li>
          <t><strong>Update:</strong> Adds a new key-value pair to the log, for which the server
returns a proof of inclusion. Note that this means that new values are added
to the log immediately and are not queued for later insertion with a batch of
other values.</t>
        </li>
        <li>
          <t><strong>Monitor:</strong> While Search and Update are run by the user as necessary,
monitoring is done in the background on a recurring basis. It both checks
that the log is continuing to behave honestly (all previously returned keys
remain in the tree) and that no changes have been made to keys owned by the
user without the user's knowledge.</t>
        </li>
      </ol>
      <t>These operations are executed over an application-provided transport layer,
where the transport layer enforces access control by blocking queries which are
not allowed:</t>
      <t>TODO diagram showing a search request over an application-provided transport
layer getting accepted / rejected</t>
      <section anchor="out-of-band-communication">
        <name>Out-of-Band Communication</name>
        <t>It is sometimes possible for a Transparency Log to present forked views of data
to different users. This means that, from an individual user's perspective, a
log may appear to be operating correctly in the sense that all of a user's
requests succeed and proofs verify correctly. However, the Transparency Log has
presented a view to the user that's not globally consistent with what it has
shown other users. As such, the log may be able to associate data with keys
without the key owner's awareness.</t>
        <t>The protocol is designed such that users always require subsequent queries to
prove consistency with previous queries. As such, users always stay on a
linearizable view of the log. If a user is ever presented with a forked view,
they hold on to this forked view forever and reject the output of any subsequent
queries that are inconsistent with it.</t>
        <t>This provides ample opportunity for users to detect when a fork has been
presented, but isn't in itself sufficient for detection. To detect forks, users
must either use <strong>out-of-band communication</strong> with other users or <strong>anonymous
communication</strong> with the Transparency Log.</t>
        <t>With out-of-band communication, two users gossip with each other to establish
that they both have the same view of the log's data. This gossip is able to
happen over any supported out-of-band channel, even if it is heavily
bandwidth-limited, such as scanning a QR code or talking over the phone.</t>
        <t>With anonymous communication, a single user accesses the Transparency Log over
an anonymous channel and tries to establish that the log is presenting the same
view of data over the anonymous channel as it does over authenticated channels.</t>
        <t>In the event that a fork is successfully detected, the user is able to produce
non-repudiable proof of log misbehavior which can be published.</t>
        <t>TODO diagram showing a user talking to a log over an authenticated &amp; anonymous
channel, gossipping with other users</t>
      </section>
    </section>
    <section anchor="deployment-modes">
      <name>Deployment Modes</name>
      <t>In the interest of satisfying the widest range of use-cases possible, three
different modes for deploying a Transparency Log are supported. Each mode has
slightly different requirements and efficiency considerations for both the
transparency log and the end-user.</t>
      <t><strong>Third-Party Management</strong> and <strong>Third-Party Auditing</strong> are two deployment modes
that require the transparency log to delegate part of its operation
to a third party. Users are able to run more efficiently as
long as they can assume that the transparency log and the third party won't
collude to trick them into accepting malicious results.</t>
      <t>With both third-party modes, all requests from end-users are initially routed to
the transparency log and the log coordinates with the third party
itself. End-users never contact the third party directly, however they will
need a signature public key from the third party to verify its assertions.</t>
      <t>With Third-Party Management, the third party performs the majority of the work
of actually storing and operating the service, and the transparency log only
signs new entries as they're added. With Third-Party Auditing, the transparency
log performs the majority of the work of storing and operating the service, and
obtains signatures from a lightweight third-party auditor at regular intervals
asserting that the tree has been constructed correctly.</t>
      <t><strong>Contact Monitoring</strong>, on the other hand, supports a single-party deployment
with no third party. The cost of this is that executing the background monitoring
protocol requires an amount of work that's proportional to the number of keys a
user has looked up in the past. As such, it's less suited to use-cases where
users look up a large number of ephemeral keys, but would work ideally in a
use-case where users look up a small number of keys repeatedly (for example, the
keys of regular contacts).</t>
      <table>
        <name>Comparison of deployment modes</name>
        <thead>
          <tr>
            <th align="left">Deployment Mode</th>
            <th align="left">Supports ephemeral keys?</th>
            <th align="left">Single party?</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Contact Monitoring</td>
            <td align="left">No</td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">Third-Party Auditing</td>
            <td align="left">Yes</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">Third-Party Management</td>
            <td align="left">Yes</td>
            <td align="left">No</td>
          </tr>
        </tbody>
      </table>
      <section anchor="contact-monitoring">
        <name>Contact Monitoring</name>
        <t>TODO diagram showing user request going to transparency log, followed by
monitoring queries later.</t>
      </section>
      <section anchor="third-party-auditing">
        <name>Third-Party Auditing</name>
        <t>With the Third-Party Auditing deployment mode, the transparency log obtains
signatures from a lightweight third-party auditor attesting to the fact that the
tree has been constructed correctly. These signatures are
provided to users along with the responses for their queries.</t>
        <t>The third-party auditor is expected to run asynchronously, downloading and
authenticating a log's contents in the background, so as not to become a
bottleneck for the transparency log.</t>
        <t>TODO diagram showing a user request going to a transparency log and a response
with an auditor signature coming back. Batched changes going to auditor in
background.</t>
      </section>
      <section anchor="third-party-management">
        <name>Third-Party Management</name>
        <t>With the Third-Party Management deployment mode, a third party is responsible
for the majority of the work of storing and operating the log, while the
transparency log serves mainly to enforce access control and authenticate the addition
of new entries to the log. All user queries are initially sent by users directly
to the transparency log, and the log operator proxies them to the
third-party manager if they pass access control.</t>
        <t>TODO diagram showing user request going to transparency log, immediately being
proxied to manager with operator signature.</t>
      </section>
    </section>
    <section anchor="security-guarantees">
      <name>Security Guarantees</name>
      <t>A user that correctly verifies a proof from the Transparency Log (and does any
required monitoring afterwards) receives a guarantee that the Transparency Log
operator executed the key-value lookup correctly, and in a way that's globally
consistent with what it has shown all other users. That is, when a user searches
for a key, they're guaranteed that the result they receive represents the same
result that any other user searching for the same key would've seen. When a user
modifies a key, they're guaranteed that other users will see the modification
the next time they search for the key.</t>
      <t>If the Transparency Log operator does not execute a key-value lookup correctly,
then either:</t>
      <ol spacing="normal" type="1"><li>
          <t>The user will detect the error immediately and reject the proof, or</t>
        </li>
        <li>
          <t>The user will permanently enter an invalid state.</t>
        </li>
      </ol>
      <t>Depending on the exact reason that the user enters an invalid state, it will
either be detected by background monitoring or the next time that out-of-band
communication is available. Importantly, this means that users must stay
online for some bounded amount of time after entering an invalid state for it to
be successfully detected.</t>
      <t>Alternatively, instead of executing a lookup incorrectly, the Transparency Log
can attempt to prevent a user from learning about more recent states of the log.
This would allow the log to continue executing queries correctly, but on
outdated versions of data. To prevent this, applications configure an upper
bound on how stale a query response can be without being rejected.</t>
      <t>The exact caveats of the above guarantees depend naturally on the security of
underlying cryptographic primitives, and also the deployment mode that the
Transparency Log relies on:</t>
      <ul spacing="normal">
        <li>
          <t>Third-Party Management and Third-Party Auditing require an assumption that the
transparency log and the third-party manager/auditor do not collude
to trick users into accepting malicious results.</t>
        </li>
        <li>
          <t>Contact Monitoring requires an assumption that the user that owns a key and
all users that look up the key do the necessary monitoring afterwards.</t>
        </li>
      </ul>
      <t>In short, assuming that the underlying cryptographic primitives used are secure,
any deployment-specific assumptions hold (such as non-collusion), and that user
devices don't go permanently offline, then malicious behavior by the
Transparency Log is always detected within a bounded amount of time. The
parameters that determine the maximum amount of time before malicious behavior
is detected are as follows:</t>
      <ul spacing="normal">
        <li>
          <t>How stale an application allows query responses to be (ie, how long an
application is willing to go without seeing updates to the tree).</t>
        </li>
        <li>
          <t>How frequently users execute background monitoring.</t>
        </li>
        <li>
          <t>How frequently users exercise out-of-band communication.</t>
        </li>
        <li>
          <t>For third-party auditing: the maximum amount of lag that an auditor is allowed
to have, with respect to the most recent tree head.</t>
        </li>
      </ul>
      <section anchor="privacy-guarantees">
        <name>Privacy Guarantees</name>
        <t>For applications deploying KT, service operators expect to be able to control
when sensitive information is revealed. In particular, an operator can often
only reveal that a user is a member of their service, and information about that
user's account, to that user's friends or contacts.</t>
        <t>KT only allows users to learn whether or not a lookup key exists in the
Transparency Log if the user obtains a valid search proof for that key.
Similarly, KT only allows users to learn about the contents of a log entry if
the user obtains a valid search proof for the exact key and version stored at
that log entry.</t>
        <t>Applications are primarily able to manage the privacy of their data in KT by
relying on these properties when they enforce access control policies on the
queries issued by users, as discussed in <xref target="protocol-overview"/>. For example if
two users aren't friends, an application can block these users from searching
for each other's lookup keys. This prevents the two users from learning about
each other's existence. If the users were previously friends but no longer are,
the application can prevent the users from searching for each other's keys and
learning the contents of any subsequent account updates.</t>
        <t>Service operators also expect to be able to control sensitive population-level
metrics about their users. These metrics include the size of their userbase, the
frequency with which new users join, and the frequency with which existing users
update their keys.</t>
        <t>KT allows service operators to hide the total size of their userbase from
end-users and other outside observers. It also allows service operators to
obscure the rate at which changes are made to the tree by padding real changes
with fake ones, causing outsiders to observe a baseline constant rate of
changes. Note however, that this information is not obscured from a third-party
manager or auditor if one is used. Since the third-party plays a crucial role in
ensuring correct operation of the log, it necessarily is able to distinguish
real changes from fake ones, and therefore also the total number of real
keys.</t>
        <!--
Unresolved privacy aspects to consider:
- Whether hiding that a key has previously existed in the log or not, from new
  owners of that key.
- If you see 5 updates, is it possible to tell that those 5 updates are from the
  same person or not? Does this need to be hidden or not?

Please add more topics here if they come to mind. :)
-->

<section anchor="leakage-to-third-party">
          <name>Leakage to Third-Party</name>
          <t>In the event that a third-party auditor or manager is used, there's additional
information leaked to the third-party that's not visible to outsiders.</t>
          <t>In the case of a third-party auditor, the auditor is able to learn the total
number of distinct keys in the log. It is also able to distinguish between real
and fake modifications to the tree, and keep track of when individual keys are
modified. However, auditors are not able to learn the plaintext values of any
keys or values. This is because keys are masked with a VRF, and values are only
provided to auditors as commitments.</t>
          <t>In the case of a third-party manager, the manager generally learns everything
that the service operator would know. This includes the total set of plaintext
keys and values and their modification history. It also includes traffic
patterns, such as how often a specific key is looked up.</t>
        </section>
      </section>
    </section>
    <section anchor="implementation-guidance">
      <name>Implementation Guidance</name>
      <t>Fundamentally, KT can be thought of as guaranteeing that all the users of a
service agree on the contents of a key-value database. Using this guarantee,
that all users agree on a set of keys and values, to authenticate the
relationship between end-user identities and the end-users of a communication
service takes special care. Critically, in order to authenticate an end-user
identity, it must be both <em>unique</em> and <em>user-visible</em>. However, what exactly
constitutes a unique and user-visible identifier varies greatly from application
to application.</t>
      <t>Consider, for example, a communication service where users are uniquely
identified by a fixed username, but KT has been deployed using an internal UUID
as the lookup key. While the UUID might be unique, it is not user-visible. When
a user attempts to lookup a contact by username, the service operator must
translate the username into its UUID. Since this mapping (from username to UUID)
is unauthenticated, the service operator can manipulate it to eavesdrop on
conversations by returning the UUID for an account that it controls. From a
security perspective, this is equivalent to not using KT at all. An example of
this kind of application would be email.</t>
      <t>However in other applications, the use of internal UUIDs in KT may be
appropriate. For example, many applications don't have this type of fixed
username and instead use their UI (underpinned internally by a UUID) to indicate
to users whether a conversation is with a new person or someone they've
previously contacted. The fact that the UI behaves in this way makes the UUID a
user-visible identifer, even if a user may not be able to actually see it
written out. An example of this kind of application would be Slack.</t>
      <t>A <strong>primary end-user identity</strong> is one that is unique, user-visible, and unable
to change. (Or equivalently, if it changes, it appears in the application UI as
a new conversation with a new user.) A primary end-user identity should always
be a lookup key in KT, with the end-user's public keys as the associated value.</t>
      <t>A <strong>secondary end-user identity</strong> is one that is unique, user-visible, and able
to change without being interpreted as a different account due to its
association with a primary identity. Examples of this type of identity include
phone numbers, or most usernames. These identities are used solely for initial
user discovery, in which they're converted to a primary identity that's used by
the application from then on. A secondary end-user identity should be a lookup
key in KT, for the purpose of authenticating user discovery, with the primary
end-user identity as the associated value.</t>
      <t>While likely helpful to most common applications, the distinction between
handling primary and secondary identities is not a hard-and-fast rule.
Applications must be careful to ensure they fully capture the semantics of
identity in their application with the key-value structure they put in KT.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC6962">
        <front>
          <title>Certificate Transparency</title>
          <author fullname="B. Laurie" initials="B." surname="Laurie">
            <organization/>
          </author>
          <author fullname="A. Langley" initials="A." surname="Langley">
            <organization/>
          </author>
          <author fullname="E. Kasper" initials="E." surname="Kasper">
            <organization/>
          </author>
          <date month="June" year="2013"/>
        </front>
        <seriesInfo name="DOI" value="10.17487/rfc6962"/>
        <refcontent>RFC Editor</refcontent>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 482?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
VwiVXoz9ea9JRGImDMcxDAhI30kKokR8+Oke5oUwPbAUfqbB5ihtjE4ctCLw
ZUaPvMPgai0wo+zuRHYc23pVhIV9CT3Eq+Ks6rDZwumOw6p/wPo176+WaXXI
+R7FZZibtRbg7jgIy2mtlC+WTPY2dNX8a9eR7XztGrfhiZA0oqenP18T5yGx
+BEY7r61Resj716sR5lmOVkFm+Xab+BdkeHgwIJ2luElp1jgULqKHziUCa4k
k4DwUrxKZhqxRCRQI5nhPqfXYhx2ftS/B6lSTGjvOcgn/40WCXZvXVjdcjVf
kosCBsHgsZeGJGmoufjIdkb5APLJoEygGWOnjJcYrI0lWPF7QTPwFGZIAtd8
cOH4e8w9xyIKH3dkxKuRtOW5GnbPANlOfXNJgRTTz9AK6tUWHTjbZrjBAdZy
QxMi8Tsm6GRDx4MRwRQFgtHEEQnqMqnOy+DsZJx9Cvs5sHf/aLkXVt0RUscG
uGLVS4UjagTHnQYZ1hY1jdnI+2Pach4cG4wcz+Y2qZhzThzXaj/iOSWZnQzM
gPsnt8C26KNWbtolkvpxZITKE9lPGJF7j/+fiKDD4rg3ikRwg8yi2EAKoqNR
vvBMWVm8z4iJjQ1X2Lg0luA8jMhzlaLXOW6+vJxpGlKtMdlqdtxs92J2trqw
0Y5Il1TTTg3ADedCxFKnVlZepUShiTxFdD6G8GNTk9ol7nlyOy6MI0sLqmtQ
gb7qloXT1SnoGLudpSrDtRamCnJPRIthn0IkpOULJM49lDVi2TgErcWMjoQj
YSnc5Pw/sc51m3JOvyejw2Vg7k9lrHrPOXleNxl/FnZOoKextf5+PHTcwfYc
bYccOtraKqQejssjJiVek7CotYgo2v5w7Fet/veDfZu4PF38p/hJIBazlT6b
H+YP/PeDfeiX+fE7NIo9lUBdy1etPf/fD/bvxITiM41yTpHPPDoZZTrB8Sij
Oft5o3x/ZfkUzZ8unrc7olaIknw8drgX9kfOQpzu/wG4xcKbEiGbNpWgjwzg
THOvnCoyRToshWmcn1vw1OeIpoadsfM5mh5t49RYihUWA2f+FQN3VF9fu6IT
1XyMXbOS9SrmRrppTBO1OdBuE+7ERJKujQoEpQyTYnTJDZxbL4LuomALdOPi
oVltu7bhPOBsUgaG9S9wsQBNicegor448TCaRG7rdpI44WTPCg2vzhBQIUFr
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

-->

</rfc>
