<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-key-share-prediction-05" category="std" consensus="true" submissionType="IETF" updates="8446" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title>TLS Key Share Prediction</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-key-share-prediction-05"/>
    <author initials="D." surname="Benjamin" fullname="David Benjamin">
      <organization>Google LLC</organization>
      <address>
        <email>davidben@google.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="15"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <abstract>
      <?line 35?>

<t>This document defines a mechanism for servers to communicate supported key share algorithms in DNS. Clients may use this information to reduce TLS handshake round-trips.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tlswg.github.io/tls-key-share-prediction/draft-ietf-tls-key-share-prediction.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-tls-key-share-prediction/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tlswg/tls-key-share-prediction"/>.</t>
    </note>
  </front>
  <middle>
    <?line 39?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Named groups in TLS 1.3 <xref target="RFC8446"/> are negotiated with two lists in the ClientHello: The client sends its supported groups in the <tt>supported_groups</tt> extension, but also generates key shares for a subset in the <tt>key_share</tt> extension. Named groups in this subset can be used in one round trip, while named groups outside the subset require a HelloRetryRequest and hence two round trips. The additional round trip is undesirable for performance, but unused key shares consume network and computational resources, so clients often do not generate key shares for all groups.</t>
      <t>Post-quantum key encapsulation methods (KEMs) have large keys and ciphertexts, so network costs are particularly pronounced. As a TLS ecosystem transitions from one post-quantum KEM to another, it is challenging to pick key shares without prior knowledge of the server's policies:</t>
      <ol spacing="normal" type="1"><li>
          <t>Predicting both post-quantum KEMs consumes excessive bandwidth on the unused option.</t>
        </li>
        <li>
          <t>Predicting the old post-quantum KEM adds a round-trip cost to newer servers. Servers will be unlikely to transition as a result.</t>
        </li>
        <li>
          <t>Predicting the new post-quantum KEM adds a round-trip cost to older servers. Particularly early in the transition, when most servers do not implement the new KEM, this may significantly regress performance.</t>
        </li>
      </ol>
      <t>This document defines a method for servers to declare their supported named groups in DNS, using SVCB or HTTPS resource records <xref target="RFC9460"/>. This allows the client to predict key shares more accurately.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
    </section>
    <section anchor="dns-service-parameter">
      <name>DNS Service Parameter</name>
      <t>This document defines the <tt>tls-supported-groups</tt> SvcParamKey <xref target="RFC9460"/>, which specifies the endpoint's supported TLS named groups, as a non-empty sequence of TLS NamedGroup codepoints in order of decreasing preference, with no duplicates. This allows clients connecting to the endpoint to reduce the likelihood of needing a HelloRetryRequest.</t>
      <section anchor="format">
        <name>Format</name>
        <t>The presentation <tt>value</tt> of the SvcParamValue is a non-empty comma-separated list (<xref section="A.1" sectionFormat="of" target="RFC9460"/>) of decimal integers between 0 and 65535 (inclusive) in ASCII, with no duplicate integers. Any other <tt>value</tt> is a syntax error. To enable simpler parsing, this SvcParam MUST NOT contain escape sequences.</t>
        <t>The wire format of the SvcParamValue is a sequence of 2-octet numeric values in network byte order. An empty list of values is invalid, as is a list containing duplicates.</t>
        <t>For example, a TLS server which prefers <tt>x25519</tt> (29) and also supports <tt>secp256r1</tt> (23) would add a <tt>tls-supported-groups</tt> SvcParamValue containing 29 and 23. The presentation <tt>value</tt> would be "29,23". The wire format of the SvcParamValue would be four octets, represented in hexadecimal as <tt>001d0017</tt>.</t>
        <t>The following is an example of the value appearing in a complete DNS record in the presentation syntax:</t>
        <sourcecode type="dns"><![CDATA[
example.net.  7200  IN SVCB 3 server.example.net. (
    port="8004" tls-supported-groups=29,23 )
]]></sourcecode>
      </section>
      <section anchor="configuring-services">
        <name>Configuring Services</name>
        <t>Services SHOULD include supported TLS named groups, in order of decreasing preference in the <tt>tls-supported-groups</tt> parameter of their HTTPS or SVCB endpoints. As TLS configuration is updated, services SHOULD update the DNS record to match. Services MAY include GREASE values <xref target="RFC8701"/> in this list.</t>
      </section>
      <section anchor="client-behavior">
        <name>Client Behavior</name>
        <t>When connecting to a service endpoint whose HTTPS or SVCB record contains the <tt>tls-supported-groups</tt> parameter, the client evaluates the server's list against its configuration to predict which named group will be chosen. When evaluating the server's list, the client MUST ignore any codepoints that it does not support or recognize.</t>
        <t>If the client predicts a named group, the client SHOULD send a <tt>key_share</tt> extension containing just that named group in the initial ClientHello. The client MAY continue to send other key shares to reduce mispredictions (see <xref target="misprediction"/>), though this comes at additional network and computational cost. The client MAY also ignore the prediction, e.g., it chooses not to apply this process to some groups (see <xref target="security-considerations"/>).</t>
        <t>If there were no named groups in common, the client SHOULD proceed as if the <tt>tls-supported-groups</tt> parameter was not present and predict some default set of key shares. The HTTPS or SVCB record may have been stale, so it is possible the server still has a named group in common.</t>
        <t>This process does not modify the <tt>supported_groups</tt> extension. To avoid downgrade attacks, the client MUST continue to send all its supported groups, in preference order, in <tt>supported_groups</tt>. See <xref target="security-considerations"/> for additional discussion on downgrades.</t>
      </section>
      <section anchor="misprediction">
        <name>Misprediction</name>
        <t>Although this service parameter is intended to reduce key share mispredictions, mispredictions may still occur in some scenarios. For example:</t>
        <ul spacing="normal">
          <li>
            <t>The client has fetched a stale HTTPS or SVCB record that no longer reflects the server configuration</t>
          </li>
          <li>
            <t>The server is in the process of deploying a change to named group configuration, and different server instances temporarily evaluate different configuration</t>
          </li>
          <li>
            <t>The client was unable to fetch the HTTPS or SVCB record</t>
          </li>
          <li>
            <t>The client and server implement incompatible selection algorithms, such that client's evaluation of the service parameter did not match the server's final selection</t>
          </li>
        </ul>
        <t>Clients and servers MUST correctly handle mispredictions by responding to and sending HelloRetryRequest, respectively.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document introduces a mechanism for clients to vary the <tt>key_share</tt> extension based on DNS. DNS responses are unauthenticated in many deployments. An attacker may be able to forge an HTTPS or SVCB record and influence the client's predicted named groups. That, in turn, can influence the named group selected by the TLS server, as TLS's downgrade protections only extend to the ClientHello itself.</t>
      <t>Provided the client's <tt>supported_groups</tt> list always reflects the unmodified client preference list, this is safe. The scope of attacker influence depends on how the server selects a group. Servers are expected to evaluate the combination of <tt>key_share</tt> and <tt>supported_groups</tt> according to their selection goals and the definitions in <xref target="RFC8446"/>. When deciding between multiple common groups, a server might consider:</t>
      <ul spacing="normal">
        <li>
          <t>The server's local preferences, picking one it considers best.</t>
        </li>
        <li>
          <t>The client's preference order in <tt>supported_groups</tt>, picking one the client considers best.</t>
        </li>
        <li>
          <t>Which groups appear in <tt>key_share</tt>, picking one that avoids a HelloRetryRequest.</t>
        </li>
      </ul>
      <t>The last case, presence in <tt>key_share</tt>, is under attacker influence in this mechanism. However, <xref section="4.2.8" sectionFormat="of" target="RFC8446"/> already permits the client to omit its most preferred groups in <tt>key_share</tt>. Servers are thus expected to only select by <tt>key_share</tt> when they opt to consider neither the client's preference nor their own. That is, it is only appropriate in cases where the two groups have comparable preference, such that round-trip costs dominate. Servers SHOULD NOT use <tt>key_share</tt> to select a classical named group over a post-quantum named group.</t>
      <t>To reduce the risk of downgrade attacks with incorrectly deployed servers, clients MAY choose to ignore <tt>tls-supported-groups</tt> when the result would predict a less preferred group. For example, a client might prefer post-quantum groups, but support ECDH groups with older servers. It MAY then ignore DNS-based ECDH predictions, limiting <tt>tls-supported-groups</tt> to post-quantum options. In this case, transitions between post-quantum groups, where the bandwidth concerns are more pronounced, remain optimized, but ECDH-only servers cannot take advantage of <tt>tls-supported-groups</tt>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document updates the Service Parameter Keys registry <xref target="RFC9460"/> with the following entry:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Number</th>
            <th align="left">Name</th>
            <th align="left">Meaning</th>
            <th align="left">Format Reference</th>
            <th align="left">Change Controller</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">9</td>
            <td align="left">tls-supported-groups</td>
            <td align="left">Supported groups in TLS</td>
            <td align="left">(this document) <xref target="format"/></td>
            <td align="left">IETF</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC8446">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="RFC9460">
        <front>
          <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
          <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
          <author fullname="M. Bishop" initials="M." surname="Bishop"/>
          <author fullname="E. Nygren" initials="E." surname="Nygren"/>
          <date month="November" year="2023"/>
          <abstract>
            <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9460"/>
        <seriesInfo name="DOI" value="10.17487/RFC9460"/>
      </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>
      <reference anchor="RFC8701">
        <front>
          <title>Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility</title>
          <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This document describes GREASE (Generate Random Extensions And Sustain Extensibility), a mechanism to prevent extensibility failures in the TLS ecosystem. It reserves a set of TLS protocol values that may be advertised to ensure peers correctly handle unknown values.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8701"/>
        <seriesInfo name="DOI" value="10.17487/RFC8701"/>
      </reference>
    </references>
    <?line 134?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author would like to thank David Adrian, Bob Beck, Marc Penninga, Sophie Schmieg, Martin Thomson, and Bas Westerbaan for discussions and review of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Vaa3PbNhb9zl+BdT402ZHoVx6NZzpTx0kaT20na7vt7KcG
IiEJNUmwAGhFddLfvudegC9ZTrqeSSyTIHAf5577oKbTaeK1L9SRuD67Ej+r
tbhaSqvEB6tynXltqiQ3WSVLrMitnPupVn4+9YWb3qj11NHiad0tnu49SzLp
1cLY9ZFwPk+Sps5xwR2J758+fZ4krpmV2jms9esam56+uX4rxCMhC2eOxI6u
clUr/Ff5nYnYwb7eWC0L+uP0+BV+GYtPl9dvd5KqKWfKHiW0/1GSmcqpyjU4
ydtGJbdH4jCBdBK7Xqmssdqvd5KVsTcLa5oaV6+trFxtrBdncq2s6FfdqqrB
lkJ8e6kQQY+d37CzrhbiJ3qErpdSF7gOU/1INkuNXdBlabMlLi+9r93R7i6t
okv6VqXtsl26sDuzZuXULp7fpecW2i+bWdhwtdh9yAO0tCCD+8Eh/Egadki1
efDh3X/g4nTpy2InSWTjlwbWF1OcyD+6gu1fp+KVqv6Qpa7a6wE9r+Wtzu/d
g7ay0n9J2vlI/GTMolDi7Oykva+CFXN6eKaqHxe8Is1MmSSVsSUevIWnEl3N
+7/SNE2S6XQq5Mx5KzOfJNdL7QSQ3JRAlsjVXFfKCSlKlS0hgCsFnhdO2Vtl
nfBG4ISyqTSBWbimJt+rXMAggg0CvALjMGjpoLd4fXGVipNCY3MHx69F45Tw
dGYnmKloW5ixyRQHG87NsdeNEkBMlU+91bWLgpc6zwuVJI/EaeWtwTMciskF
TJkHVPK5tM9+eiju7v51+faEIuzLF0HiVQhBryXJvIKUwq+MKLTz/JRfqijs
O1UUCLtrXMj4AkwAqYTGwl7r/jx68mN34/dw46NQnzxCDxJOxKzxHMtioSpl
CYi90RwbWWLnmVO+2w/3f+f7g41SsakqWzM+mclKzBQZOadbpoo2FGTDiVgt
NVBUDTcwjXc6V3xg3MSqPxtNnhRshUvl7foS1xA6Aq4RS1XBU2S4fm+Xsq1k
Dl6ClLIY3BOQD5+V01bOcD7pWivL7sdOwTRNxUIPTEK8BVTCY57IiY8G+OrG
y/YI5UxjM+UmAnbNIsrMHKYCpEVlfGfse7YuimgBAOuDcX76ZyMr35S8EArK
2jVFQGepENDw/eOf35y7J4DnrQKT2AVv6oJcul4qeP6TD7K0MmeGkEW4q6X1
OsOWtliL2poK5slUnopjijaCq8LitfOqhNFAqmxHCGtNyX6sh0JCEgoaCRVx
7gSwJCMjYotCVQtiW9ytdXYz1JvwDnfjdA0L3FRmVagcWph58D7H+HcOJxU6
08hMSbKfdgkPe85w2j05Okc5gBS+cGAaMYNRVjrHchOwHN1rambK5GC0Ly0w
RX5fRcCJrNPTABuUdKvUSnW0lCLtBH5aafiVAqAq9I2CpbG0t6aQvJuCZ32a
HN6TAZv+PzJA5KEMH4YeVvx/DOReAgpBgLOkHVpOjUjVZV0oJuFWFJw+CdFN
xOn0otJz8G7lsbNVC+jhhnGUfo3MCcGbTJ6rrCBo4jxtB6xWbRAMOHwCSiEr
Xf168ooKjXfX1x+uuvjDh8xYmCmw7cunz/e+fCFCgDRAJLI16xSJlJAZ7D4E
Z2mIcTJUD4jWYg1lwPEnpkLFEQKBwuw1aRQCg5QNUb3io3fOf7m6pmKIfouL
9/z58s1/fjm9fPOaPl+9Oz476z60K67evf/lDPeT+Kl/8uT9+fmbi9fhYVwV
G5fOj/+LXyTVzvsP16fvL47Pdlo6TjofsH0NQVJXXlkoThYGDkGHmdWzwNOv
Tj6I/afRfAf7+y+RrGLm2n/x9MuXhFATDjMVvB/+hE3XQtY1sEabEKWBtrRH
lpnQEW5pVhXY2qpgTfiRA0XDYwArvAyJHgINJyAqdTpcTNukdnWb8eNUFN/d
dQ7n9JIthatVBqDGPZA1awPdvxvmTaK7IcomITIr1MmqrD1AQemGsgy4iRZz
zuMCEtGHQph2ZGzC94hBrAKYUdIySGHkOZTm1MI5vgLWm7rgmsWNcdkmDXBY
pSITmJHgg+KELjOv6KVBOOHUSgHIeGZLqoTNHz0Sb7nGCWCFXCgiQvYSH29l
0SCxR/JtbforXSUuH1qDSi45dQo5hAsXqlfE47u745o6Av1JHKf7tFHniifR
IrpEliTgLSjkZ0hKCuyzx0B6/uzZ4TPxWFdZ0RBnPyFzHl+dnJ5usVq3CfJV
tRacdToVWFq3hmafhLLWWJjYwH6c7B3zmqX8R86JhNaqK9poJQd4CQkQFrJW
HQBcGmy3ooIkFIxfMdkQNgdTk3lUM2iGlNWZYGEZM21ynq2hGAOItBLB1mxb
PN4upyfwWeeMUT6Fl0R5yfkDbCUJHI48KEnpSUzsgXJjdARwOvHx08GzZ/sv
P4rHBy+fsEO4OIwxgvtOZfXBs+d2n5YcPgHNNUiRyEbY9RuBGSwykPDgJZ9w
cBiqtK1ADPuDqHYOXk4ODnfC0m/avXtsjlQg2OQIZ6viGYHflrBIC0dY8ePe
3n6Ofy8+Ru/ODUUjSUoGrloDtieyhJHpeBHIjkvBAgzGtBYSUJtvR/oFYKKW
+fvvv0WOxBE3TwGDVIgXB3t7QpxehNR2GJ2VjhY95qaLjP3Dzvd7e093xDb7
/8B2E0/oII59ZK+5XjQscuRdpK32k4gJhwMwV19lx28SXdcybAdG3bJ9tKhu
MzjAynq3ZOe4HiUBsih8MCJV8DyuQBi4DQXCDT5+4AqwJjCTLdNOdYGM2Wn7
0+Wb46s3bZTFXPdibx+Jr21pKMwCiYaWDC0ySm+UrknyGxVRY8qWrVw9ca+W
Bs3mWNEoXYyNr6a5zmiTYfWiSGTu3kY1M3OCXNCenpvEsf0GNU+ggYF/u6I1
I3nR4LF28Zy2NB0dNBKIGRS1IddP1XqYH/1SkjBI7hCXasyoJFmDDIGC8i+q
DU7nww2joJyCeilHZ0bPU0tMbLStTx3Szx8NFcwkzFDtCFku6MALg747Hfbd
hBraS1cNl1J8aEhAg/KxT9Kldv1MBk2bUwr4Gl1FgiR1TLNYBqiBS6hO9sP+
9eG2k+r/eyIye0c3RA6Kp02EShcp92jwMFwcfEGYrWtqUUgCdITUO7GCEKat
vqP0Lk7VptRqoVsPqHLQo/Mejl3Rf8jam/U7lQ+m2uZAPjXUo3r+zwhkJYP4
kWPZPC20WXIUkBL9laBJAtim91Ew2dZwpP6G2+oZ1ScOFaziNjq0tWjJnKZa
og8ErKGgWcoNlPbqtt1Qa9guBkqT6/n6mwMbrmHkrdE5Hl1VC4sEBoR4md24
+/F3D6BUjG+bFTGXD3ibaZ0v3heGqPOr3g+TjB6yuXZZwyNkars7sV1g0fNh
CCTJcTGMgJY8e0dz5eNp4pwPoquf843jbLIZd9yyspMMNXWkIcPDZSgMrTaA
w6BUQnr+9zCiyLFzhfRB4AyA2I6cwCpGFKZCeYqr80JlfkjOYyZuz4n3tOtr
hoATzrB1YdahrKch6ILdOkTZaMvQlwFU7FPfbY1MQG05ZEFlaSyUprlATB+D
9Vvli3agaGtCIQ0R2CIs7TZbbDxKQrWidKMFpF9QGU7i0lyRrXgu0s1sEXYN
nwGzho2Qc9pcRLjqZ0VjuOQIFA4v2crYpSw0lABnd1qStPPgXkTXhpGFLjTf
oBlwcY/MZzT4cLWp8jbr8w7hz3sd2IQX06G3YaLwqHs9QbXZIJQ2m2AdZ8tb
JuFtw4jDb6VdPzyoFTPJE684Aw+lEclOCYACCH5t8DSII5OxTi4pgQf4kRzc
bUXSgYkppFAmdGgwNIJEtbw1MMgyupoXoR/q+Yrme8GiG5MeomfpmYp8Y4Fq
miWPdxiGQHAn/pwFG/SNDjdK+PM7N2BOhJdX0Ys8wmA75W2zPUj+RJuqmNNY
1ppbzfQzlH4LaYfiq1jJtRszQFMx22vs0Rc3LfW2lZTmts7JuQoZymWm5taj
M3xvhfAOjlQQS7MaJSQVjpXBPv1IklytPtXBWFC3YwDWypQzREcbWkMgkQO3
6Cozcm8/p9B2EMcLgzKEn6TN835aRl7lUU14ExJrTGrJeKt2MlAicWtqvEIO
7aczrZalXiyZsTh4jsZsStWpyRDqvZHxLE2h6QyaYev+WRpHcH0/JK0AzlFu
3J4ax9sOsvGW7X/jgjuWQ/24bGDrzd2oEKTM7x6Y65DAhaQhAEJ8Ekuh0ISN
do3vPew2JLVdTscuqXhnVorj5+7uKjr0aXqQfh9HO+1LrALtX76myW+p/eZk
1ZQ69B88Yg7GtKNqcCDhGKR+2bgRUjlOA7goyofg5Ck2zx9N7cNbwWB3lM2a
a/NNxmmdigI5whbcEDgHdmrfYPCR8JE1tdVh7sRGdnRirKzpxVNUh2tGzmjh
zdJw8tfnsY3RPdFSSUGnev374S+/oByqyhUd2wDVALzuNEF8SIWGIkOO3xwM
7hNgRiNEq90N1xmbdWWYu1GObtNgyAWqS5OTLv9wW8TtBEkYG48HqvfWW/HV
R5zZtFW7FAW/SRhjZVSeTVh3xlhggLB4rHJLFvQ2r20035y8ftc6i5XbeGdy
GponSoOtDkiU05A6+eFRjVlowJvi9AFFqc0eihReN9E5MdpCwA7fr7XUt1WV
HnT9Cy0gPVO2CjHDby36t3lUcZQ0xaSDSzTXeTAHaTKN4RQAh+TKTSC95Zb5
LY6V4U3cds24eDk9vjj+RuESv1MS5nSbo376FgslyAUSnx2N7uOr8NEkDtvZ
NRj+s7jgr5OIzzyFF5s/n8W5ktzmb7kVxt/isgv/0d2TUFxDJZRbBU2JPyef
p/Gn+zD+eeDyN249cBfHiZetNNsMj8tXW972U7GDW4/90PhPYNEwKYVBcTd8
gWekcRK+xDBDsJNDj7P2JSxXe8ndUfjmjsp/2Jkjk6udLyHZhK+UxLilNxAh
+cvqJn575DgHXaJme2Vm4pXKbibiXNpMfFAVeUZOxJWplxqYyJalVgu+7UmR
pSld28K8Qt32GzKcsjOJ2o+q3b6jDGWFVbdarUIXMFA9Tf4H2iRNKTAlAAA=

-->

</rfc>
