<?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-rfc2629 version 1.5.26 (Ruby 2.6.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekok-radext-radiusv11-05" category="std" consensus="true" submissionType="IETF" updates="6613 7360" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="RADIUSv11">RADIUS Version 1.1</title>
    <seriesInfo name="Internet-Draft" value="draft-dekok-radext-radiusv11-05"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2023" month="April" day="19"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document defines Application-Layer Protocol Negotiation Extensions for use with RADIUS/TLS and RADIUS/DTLS.  These extensions permit the negotiation of an additional application protocol for RADIUS over (D)TLS.  No changes are made to RADIUS/UDP or RADIUS/TCP.  The extensions allow the negotiation of a transport profile where the RADIUS shared secret is no longer used, and all MD5-based packet signing and attribute obfuscation methods are removed.  When this extension is used, the previous Authenticator field is repurposed to contain an explicit request / response identifier, called a Token.  The Token also allows more than 256 packets to be outstanding on one connection.</t>
      <t>This extension can be seen as a transport profile for RADIUS, as it is not an entirely new protocol.  It uses the existing RADIUS packet layout and attribute format without change.  As such, it can carry all present and future RADIUS attributes.  Implementation of this extension requires only minor changes to the protocol encoder and decoder functionality.  The protocol defined by this extension is named "RADIUS version 1.1", or "RADIUS/1.1".</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekok-radext-radiusv11/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RADEXT Working Group mailing list (<eref target="mailto:radext@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/radext/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/freeradius/radiusv11.git"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The RADIUS protocol <xref target="RFC2865"/> uses MD5 <xref target="RFC1321"/> to sign packets, and to obfuscate certain attributes.  Decades of cryptographic research has shown that MD5 is insecure, and MD5 should no longer be used.  In addition, the dependency on MD5 makes it impossible to use RADIUS in a FIPS-140 compliant system, as FIPS-140 forbids systems from relying on insecure cryptographic methods for security.  There are many prior discussions of MD5 insecurities which we will not repeat here.  These discussions are most notably in <xref target="RFC6151"/>, and in Section 3 of <xref target="RFC6421"/>, among others.</t>
      <t>While additional transport protocols were defined for RADIUS in TCP (<xref target="RFC6613"/>), TLS (<xref target="RFC6614"/>), and DTLS (<xref target="RFC7360"/>), those transports still relied on MD5.  That is, the shared secret was used along with MD5, even when the RADIUS packets were being transported in (D)TLS.  At the time, the consensus of the RADEXT working group was that this continued use of MD5 was acceptable.  TLS was seen as a simple "wrapper" around RADIUS, while using a fixed shared secret.  The intention at the time was to allow the use of (D)TLS while making essentially no changes to the basic RADIUS encoding, decoding, signing, and packet validation.</t>
      <t>The ensuing years have shown that it is important for RADIUS to remove its dependency on MD5.  The continued use of MD5 is no longer acceptable in a security-conscious environment.  The use of MD5 in <xref target="RFC6614"/> and <xref target="RFC7360"/> adds no security or privacy over that provided by TLS.  It is time to remove the use of MD5 from RADIUS.</t>
      <t>This document defines an Application-Layer Protocol Negotiation (ALPN) <xref target="RFC7301"/> extension for RADIUS which removes the dependency on MD5.  Systems which implement this transport profile are therefore capable of being FIPS-140 compliant.  This extension can best be understood as a transport profile for RADIUS, rather than a whole-sale revision of the RADIUS protocol.  A preliminary implementation has shown that only minor changes are required to support RADIUS/1.1 on top of an existing RADIUS server.</t>
      <t>The changes from traditional TLS-based transports for RADIUS are as follows:</t>
      <ul spacing="normal">
        <li>ALPN is used for negotiation of this extension,</li>
        <li>TLS 1.3 or later is required,</li>
        <li>all uses of the RADIUS shared secret have been removed,</li>
        <li>The now-unused Request and Response Authenticator fields have been repurposed to carry an opaque Token which identifies requests and responses,</li>
        <li>The Identifier field is no longer used, and has been replaced by the Token field,</li>
        <li>The Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) is not sent in any packet, and if received is ignored,</li>
        <li>Attributes such as User-Password, Tunnel-Password, and MS-MPPE keys are sent encoded as "text" (<xref target="RFC8044"/> Section 3.4) or "octets" (<xref target="RFC8044"/> Section 3.5), without the previous MD5-based obfuscation.  This obfuscation is no longer necessary, as the data is secured and kept private through the use of TLS,</li>
        <li>Future RADIUS specifications are forbidden from defining new cryptographic primitives.</li>
      </ul>
      <t>The following items are left unchanged from traditional TLS-based transports for RADIUS:</t>
      <ul spacing="normal">
        <li>the RADIUS packet header is the same size, and the Code and Length fields (<xref target="RFC2865"/> Section 3) have the same meaning as before,</li>
        <li>All attributes which do not use MD5-based obfuscation methods are encoded using the normal RADIUS methods, and have the same meaning as before,</li>
        <li>As this extension is a transport profile for one "hop" (client to server connection), it does not impact any other connection used by a client or server.  The only systems which are aware that this transport profile is in use are the client and server which have negotiated the use of this extension on a particular shared connection,</li>
        <li>This extension uses the same ports (2083/tcp and 2083/udp) which are defined for RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/>.</li>
      </ul>
      <t>A major benefit of this extensions is that a home server which implements it can also choose to also implement full FIPS-140 compliance.  That is, a home server can remove all uses of MD4 and MD5.  In that case, however, the home server will not support CHAP, MS-CHAP, or any authentication method which uses MD4 or MD5.  We note that the choice of which authentication method to accept is always left to the home server.  This specification does not change any authentication method carried in RADIUS, and does not mandate (or forbid) the use of any authentication method for any system.</t>
      <t>As for proxies, there was never a requirement that proxies implement CHAP or MS-CHAP authentication.  So far as a proxy is concerned, attributes relating to CHAP and MS-CHAP are simply opaque data that is transported unchanged to the next hop.  As such, it is possible for a FIPS-140 compliant proxy to transport authentication methods which depend on MD4 or MD5, so long as that data is forwarded to a home server which supports those methods.</t>
      <t>We reiterate that the decision to support (or not) any authentication method is entirely site local, and is not a requirement of this specification.  The contents or meaning of any RADIUS attribute other than Message-Authenticator (and similar attributes) are not modified.  The only change to the Message-Authenticator attribute is that is no longer used.</t>
      <t>Unless otherwise described in this document, all RADIUS requirements apply to this extension.  That is, this specification defines a transport profile for RADIUS.  It is not an entirely new protocol, and it defines only minor changes to the existing RADIUS protocol.  It does not change the RADIUS packet format, attribute format, etc.  This specification is compatible with all RADIUS attributes, past, present, and future.</t>
      <t>This specification is compatible with existing implementations of RADIUS/TLS and RADIUS/DTLS.  There is no need to define an ALPN name for those protocols, as implementations can simply not send an ALPN name when those protocols are used.  Backwards compatibility with existing implementations is both required, and assumed.</t>
      <t>This specification is compatible with all past and future RADIUS specifications.  There is no need for any RADIUS specification to mention this transport profile by name, or to make provisions for this specification.  This specification defines how to transform RADIUS into RADIUS/1.1, and no further discussion of that transformation is necessary.</t>
      <t>In short, when negotiated on a connection, this specification permits implementations to avoid MD5 when signing packets, or obfuscating certain attributes.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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>
      <ul spacing="normal">
        <li>ALPN</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Application-Layer Protocol Negotiation, as defined in <xref target="RFC7301"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>The Remote Authentication Dial-In User Service protocol, as defined in <xref target="RFC2865"/>, <xref target="RFC2865"/>, and <xref target="RFC5176"/> among others.</t>
          <t>While this protocol can be viewed as "RADIUS/1.0", for simplicity and historical compatibility, we keep the name "RADIUS".</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/UDP</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the User Datagram Protocol as define above.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TCP</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transmission Control Protocol <xref target="RFC6613"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <ul empty="true">
            <li>
              <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/>.</t>
            </li>
          </ul>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/DTLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Datagram Transport Layer Security protocol  <xref target="RFC7360"/>.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS over TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Either RADIUS/TLS or RADIUS/DTLS.  This terminology is used instead of alternatives such as "RADIUS/(D)TLS", or "either RADIUS/TLS or RADIUS/DTLS".</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/1.1</li>
      </ul>
      <ul empty="true">
        <li>
          <t>The transport profile defined in this document, which stands for "RADIUS version 1.1".  We use RADIUS/1.1 to refer interchangeably to TLS and DTLS transport.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>the Transport Layer Security protocol.  Generally when we refer to TLS in this document, we are referring interchangeably to TLS or DTLS transport.</t>
        </li>
      </ul>
    </section>
    <section anchor="the-radius11-transport-profile-for-radius">
      <name>The RADIUS/1.1 Transport profile for RADIUS</name>
      <t>This section describes the ALPN transport profile in detail.  It first gives the name used for ALPN, and then describes how ALPN is configured and negotiated by client and server.  It then concludes by discussing TLS issues such as what to do for ALPN during session resumption.</t>
      <section anchor="alpn-name-for-radius11">
        <name>ALPN Name for RADIUS/1.1</name>
        <t>The ALPN name defined for RADIUS/1.1 is as follows:</t>
        <ul empty="true">
          <li>
            <t>"radius/1.1"</t>
            <ul empty="true">
              <li>
                <t>The protocol defined by this specification.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Where ALPN is not configured or is not received in a TLS connection, systems supporting ALPN MUST not use RADIUS/1.1.</t>
        <t>Where ALPN is configured, the client signals support by sending the ALPN string "radius/1.1".  The server can accept this proposal and reply with the ALPN string "radius/1.1", or reject this proposal, and not reply with any ALPN string.</t>
        <t>Implementations MUST signal ALPN "radius/1.1" in order for it to be used in a connection.  Implementations MUST NOT have an administrative flag which causes a connection to use "radius/1.1" without signalling that protocol via ALPN.</t>
        <t>The next step in defining RADIUS/1.1 is to review how ALPN works.</t>
      </section>
      <section anchor="operation-of-alpn">
        <name>Operation of ALPN</name>
        <t>Once a system has been configured to support ALPN, it is negotiated on a per-connection basis as per <xref target="RFC7301"/>.  We give a brief overview here of ALPN in order to provide a high-level description ALPN for readers who do not need to understand <xref target="RFC7301"/> in detail.  This section is not normative.</t>
        <t>1) The client proposes ALPN by sending an ALPN extension in the ClientHello.  This extension lists one or more application protocols by name.</t>
        <t>2) The server receives the extension, and validates the application protocol name against the list it has configured.</t>
        <ul empty="true">
          <li>
            <t>If the server finds no acceptable common protocols, it closes the connection.</t>
          </li>
        </ul>
        <t>3) Otherwise, the server return a ServerHello with either no ALPN extension, or an ALPN extension with only one named application protocol.</t>
        <ul empty="true">
          <li>
            <t>If the client does not signal ALPN, or server does not accept the ALPN proposal, the server does not reply with any ALPN name.</t>
          </li>
        </ul>
        <t>4) The client receives the ServerHello, validates the application protocol (if any) against the name it sent, and records the application protocol which was chosen</t>
        <ul empty="true">
          <li>
            <t>This check is necessary in order for the client to both know which protocol the server has selected, and to validate that the protocol sent by the server is acceptable to the client.</t>
          </li>
        </ul>
        <t>The next step in defining RADIUS/1.1 is to define how ALPN is configured on the client and server, and to give more detailed requirements on ALPN configuration and operation.</t>
      </section>
      <section anchor="configuration-of-alpn-for-radius11">
        <name>Configuration of ALPN for RADIUS/1.1</name>
        <t>Clients or servers supporting this specification can do so by extending their TLS configuration through the addition of a new configuration flag, called "RADIUS/1.1" here.  The exact name given below does not need to be used, but it is RECOMMENDED that administrative interfaces or programming interfaces use a similar name in order to provide consistent terminology.  This flag controls how the implementations signal use of this protocol via ALPN.</t>
        <t>Configuration Flag Name</t>
        <ul empty="true">
          <li>
            <t>RADIUS/1.1</t>
          </li>
        </ul>
        <t>Allowed Values</t>
        <ul empty="true">
          <li>
            <t>forbid - Forbid the use of RADIUS/1.1</t>
            <ul empty="true">
              <li>
                <t>A client with this configuration MUST NOT signal any protocol name via ALPN.  The system MUST use RADIUS over TLS
as defined in <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
                <t>A server with this configuration MUST NOT signal any protocol name via ALPN.  The system MUST use RADIUS over TLS
as defined in <xref target="RFC6614"/> and <xref target="RFC7360"/>.</t>
                <t>A server with this configuration MUST NOT close the connection if it receives an ALPN name from the client. Instead, it simply does not reply with ALPN.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>allow - Allow (or negotiate) the use of RADIUS/1.1</t>
            <ul empty="true">
              <li>
                <t>This value MUST be the default setting for implementations which support this specification.</t>
                <t>A client with this configuration MUST use ALPN to signal that "radius/1.1" can be used.  The client MUST use RADIUS/1.1 if the server responds signalling ALPN "radius/1.1".  If no ALPN response is received from the server, the client MUST use RADIUS over TLS as defined in previous specifications.</t>
                <t>A server with this configuration MAY reply to a client with an ALPN string of "radius/1.1", but only if the client first signals support for that protocol name via ALPN.  If the client does not signal ALPN, the server MUST NOT reply with any ALPN name.</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>require -  Require the use of RADIUS/1.1</t>
            <ul empty="true">
              <li>
                <t>A client with this configuration MUST use ALPN to signal that "radius/1.1" can be used.  The client MUST use RADIUS/1.1 if the server responds signalling ALPN "radius/1.1".  If no ALPN response is received from the server, the client MUST close the connection.</t>
                <t>A server with this configuration MUST close the connection if the client does not signal "radius/1.1" via ALPN.</t>
                <t>A server with this configuration MUST reply with the ALPN protocol name "radius/1.1" if the client signals "radius/1.1".  The server and client both MUST then use RADIUS/1.1 as the application-layer protocol.  There is no reason to signal support for a protocol, and then not use it.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Note that systems implementing this specification, but configured with "forbid" as above, will behave exactly the same as systems which do not implement this specification.</t>
        <t>If a client or server determines that there are no compatible application protocol names, then as per <xref target="RFC7301"/> Section 3.2, it MUST send a TLS alert of "no_application_protocol" (120), which signals the other end that there is no compatible application protocol.  It MUST then close the connection.</t>
        <t>It is RECOMMENDED that a descriptive error is logged in this situation, so that an administrator can determine why a particular connection failed.  The log message SHOULD include information about the other end of the connection, such as IP address, certificate information, etc.  Similarly, a system receiving a TLS alert of "no_application_protocol" SHOULD log a descriptive error message.  Such error messages are critical for helping administrators to diagnose connectivity issues.</t>
        <t>Note that there is no way for a client to signal if its' RADIUS/1.1 configuration is set to "allow" or "require".  The client MUST signal "radius/1.1" via ALPN when it is configured with either value.  The difference between the two values for the client is only in how it handles reponses from the server.</t>
        <t>Similarly, there is no way for a server to signal if its' RADIUS/1.1 configuration is set to "allow" or "require".  In both cases if it receives "radius/1.1" from the client via ALPN, the server MUST reply with "radius/1.1", and agree to that negotiation.  The difference between the two values for the server is how it handles the situation when no ALPN is signalled from the client.</t>
        <section anchor="tabular-summary">
          <name>Tabular Summary</name>
          <t>The preceding text gives a large number of recommendations.  In order to give a simpler description of the outcomes, a table of possible behaviors for client/server values of the RADIUS/1.1 flag is given below.  This table and the names given below are for informational and descriptive purposes only.  This section is not normative.</t>
          <figure>
            <name>Possible outcomes for ALPN Negotiation</name>
            <artwork><![CDATA[
                             Server
              no ALPN | forbid  | allow  | require
Client    |--------------------------------------
----------|
No ALPN   |   RADIUS    RADIUS    RADIUS   Close
          |                                Note 1
          |
forbid    |   RADIUS    RADIUS    RADIUS   Close
          |                                Note 1
          |
allow     |   RADIUS    RADIUS    OK      OK
          |   Note 3    Note 3
          |
require   |   Close     Close     OK      OK
          |   Note 2    Note 2
]]></artwork>
          </figure>
          <t>The table entries above have the following meaning:</t>
          <t>Close</t>
          <ul empty="true">
            <li>
              <t>Note 1 - the server closes the connection, as the client does not do RADIUS/1.1</t>
              <t>Note 2 - the client closes the connection, as the server does not do RADIUS/1.1</t>
            </li>
          </ul>
          <t>RADIUS</t>
          <ul empty="true">
            <li>
              <t>RADIUS over TLS is used.  RADIUS/1.1 is not used.</t>
              <t>Note 3 - The client sends ALPN, but the server does not reply with ALPN.</t>
            </li>
          </ul>
          <t>OK</t>
          <ul empty="true">
            <li>
              <t>RADIUS/1.1 is used by both parties.</t>
              <t>The client sends "radius/1.1" via ALPN, and the server repies with "radius/1.1" via ALPN.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="additional-tls-issues">
        <name>Additional TLS issues</name>
        <t>Implementations of this specification MUST require TLS version 1.3 or later.</t>
        <t>Implementations of this specification MUST support TLS-PSK.</t>
      </section>
      <section anchor="session-resumption">
        <name>Session Resumption</name>
        <t><xref target="RFC7301"/> Section 3.1 states that ALPN is negotiated on each connection, even if session resumption is used:</t>
        <ul empty="true">
          <li>
            <t>When session resumption or session tickets <xref target="RFC5077"/> are used, the previous contents of this extension are irrelevant, and only the values in the new handshake messages are considered.</t>
          </li>
        </ul>
        <t>In order to prevent down-bidding attacks, RADIUS servers which negotiate the "radius/1.1" protocol MUST associate that information with the session ticket.  On session resumption, the server MUST advertise only the capability to do "radius/1.1" for that session.  That is, even if the server configuration is "allow" for new connections, it MUST signal "radius/1.1" when resuming a session which had previously negotiated "radius/1.1".</t>
        <t>If a server sees that a client had previously negotiated RADIUS/1.1 for a session, but the client is now attempting to resume the sessions without signalling the use of RADIUS/1.1, the server MUST close the connection.  The server SHOULD send an appropate TLS error, such as no_application_protocol (120), or insufficient_security (71).  The server SHOULD log a descriptive message as described above.</t>
      </section>
    </section>
    <section anchor="radius11-packet-and-attribute-formats">
      <name>RADIUS/1.1 Packet and Attribute Formats</name>
      <t>This section describes the application-layer data which is sent inside of (D)TLS when using the RADIUS/1.1 protocol.  Unless otherwise discussed herein, the application-layer data is unchanged from traditional RADIUS.  This protocol is only used when "radius/1.1" has been negotiated by both ends of a connection.</t>
      <section anchor="radius11-packet-format">
        <name>RADIUS/1.1 Packet Format</name>
        <t>When RADIUS/1.1 is used, the RADIUS header is modified from standard RADIUS.  While the header has the same size, some fields have different meaning.  The Identifier and the Request Authenticator and Response Authenticator fields are no longer used.  Any operations which depend on those fields MUST NOT be performed.  As packet signing and security are handled by the TLS layer, RADIUS-specific cryptographic primitives are no longer used.</t>
        <t>A summary of the RADIUS/1.1 packet format is shown below.  The fields are transmitted from left to right.</t>
        <figure anchor="Header">
          <name>The RADIUS/1.1 Packet Format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |  Reserved-1   |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Token                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                           Reserved-2                          |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Attributes ...
+-+-+-+-+-+-+-+-+-+-+-+-+-
]]></artwork>
        </figure>
        <t>Code</t>
        <ul empty="true">
          <li>
            <t>The Code field is one octet, and identifies the type of RADIUS packet.</t>
            <t>The meaning of the Code field is unchanged from previous RADIUS specifications.</t>
          </li>
        </ul>
        <t>Reserved-1</t>
        <ul empty="true">
          <li>
            <t>The Reserved-1 field is one octet.  It MUST be set to zero for all packets.</t>
            <t>This field was previously called "Identifier" in RADIUS.  It is now unused, as the Token field is now used to identify requests and responses.</t>
          </li>
        </ul>
        <t>Length</t>
        <ul empty="true">
          <li>
            <t>The Length field is two octets.</t>
            <t>The meaning of the Length field is unchanged from previous RADIUS specifications.</t>
          </li>
        </ul>
        <t>Token</t>
        <ul empty="true">
          <li>
            <t>The Token field is four octets, and aids in matching requests and
replies, as a replacement for the Identifier field.  The RADIUS server can detect a duplicate request if it receives
the same Token value for two packets on a particular connection.</t>
            <t>Further requirements are given below in <xref target="sending-packets"/> for sending packets, and in <xref target="receiving-packets"/> for receiving packets.</t>
          </li>
        </ul>
        <t>Reserved-2</t>
        <ul empty="true">
          <li>
            <t>The Reserved-2 field is twelve (12) octets in length.</t>
            <t>These octets MUST be set to zero when sending a packet.</t>
            <t>These octets MUST be ignored when receiving a packet.</t>
            <t>These octets are reserved for future protocol extensions.</t>
          </li>
        </ul>
      </section>
      <section anchor="the-token-field">
        <name>The Token Field</name>
        <t>This section describes in more detail how the Token field is used.</t>
        <section anchor="sending-packets">
          <name>Sending Packets</name>
          <t>A client which sends packets uses the Token field to increase the number of RADIUS packets which can be sent over one connection.</t>
          <t>The Token field MUST change for every new unique packet which is sent on the same connection. For DTLS transport, it is possible to retransmit duplicate packets, in which case the Token value MUST NOT be changed when a duplicate packet is (re)sent.  When the contents of a retransmitted packet change for any reason (such changing Acct-Delay-Time as discussed in <xref target="RFC2866"/> Section 5.2), the Token value MUST be changed.  Note that on reliable transports, packets are never retransmitted, and therefore every new packet sent has a unique Token value.</t>
          <t>Systems generating the Token can do so via any method they choose, but for simplicity, it is RECOMMENDED that the Token values be generated from a 32-bit counter which is unique to each connection.  Such a counter SHOULD be initialized to a random value, taken from a random number generator, whenever a new connection is opened.  The counter can then be incremented for every new packet which is sent.</t>
          <t>As there is no special meaning for the Token, there is no meaning when a counter "wraps" around from a high value back to zero.  The originating system can simply continue to increment the Token value.</t>
          <t>Once a RADIUS response to a request has been received and there is no need to track the packet any longer, the Token value MAY be reused. This SHOULD be after a suitable delay to ensure that Token values do not conflict with outstanding packets.  Note that the counter method described above for generating Token values will automatically ensure a long delay between multiple uses of the same Token value, at the cost of maintaining a single 32-bit counter.  Any other method of generating unique and non-conflicting Token values is likely to require substantially more resources to track outstanding Token values.</t>
          <t>If a RADIUS client has multiple independent subsystems which send packets to a server, each subsystem MAY open a new port which is unique to that subsystem.  There is no requirement that all packets go over one particular connection.  That is, despite the use of a 32-bit Token field, RADIUS/1.1 clients are still permitted to open multiple source ports as discussed in <xref target="RFC2865"/> Section 2.5.</t>
        </section>
        <section anchor="receiving-packets">
          <name>Receiving Packets</name>
          <t>A server which receives RADIUS/1.1 packets MUST perform packet deduplication for all situations where it is required by RADIUS.  Where RADIUS does not require deduplication (e.g. TLS transport), the server SHOULD NOT do deduplication.</t>
          <t>We note that in previous RADIUS specifications, the Identifier field could have the same value for different types of packets on the same connection, e.g. for Access-Request and Accounting-Request.  This overlap required that RADIUS clients and servers track the Identifier field, not only on a per-connection basis, but also on a per-packet type basis.  This behavior adds complexity to implementations.</t>
          <t>When using RADIUS/1.1, implementations MUST instead do deduplication only on the Token field, and not on any other field or fields in the packet header. A server MUST treat the Token as being an opaque field with no intrinsic meaning.  While the recommendation above is for the sender to use a counter, other implementations are possible, valid, and permitted.  For example, a system could use a pseudo-random number generator with a long period to generate unique values for the Token field.</t>
          <t>Where Token deduplication is done, it MUST be done on a per-connection basis.  If two packets which are received on different connections contain the same Token value, then those packets MUST be treated as distinct (i.e. different) packets.</t>
          <t>This change from RADIUS means that the Identifier field is no longer useful.  The Reserved-1 field (previously used as the Identifier) MUST be set to zero for all RADIUS/1.1 packets.  RADIUS/1.1 Implementations MUST NOT examine this field or use it for packet tracking or deduplication.</t>
        </section>
      </section>
    </section>
    <section anchor="attribute-handling">
      <name>Attribute handling</name>
      <t>Most attributes in RADIUS have no special encoding "on the wire", or any special meaning between client and server.  Unless discussed in this section, all RADIUS attributes are unchanged in this specification.  This requirement includes attributes which contain a tag, as defined in <xref target="RFC2868"/>.</t>
      <section anchor="obfuscated-attributes">
        <name>Obfuscated Attributes</name>
        <t>As (D)TLS is used for this specification, there is no need to hide the contents of an attribute on a hop-by-hop basis.  The TLS transport ensures that all attribute contents are hidden from any observer.</t>
        <t>Attributes defined as being obfuscated via MD5 no longer have the obfuscation step applied when RADIUS/1.1 is used.  Instead, those attributes are simply encoded as their values, as with any other attribute.  Their encoding method MUST follow the encoding for the underlying data type, with any encryption / obfuscation step omitted.</t>
        <t>There are often concerns where RADIUS is used, that passwords are sent "in cleartext" across the network.  This allegation was never true for RADIUS, and definitely untrue when (D)TLS transport is used.  While passwords are encoded in packets as strings, the packets (and thus passwords) are protected by TLS.  For the unsure reader this protocol is the same TLS which protects passwords used for web logins, e-mail reception and sending, etc.  As a result, any claims that passwords are sent "in the clear" are false.</t>
        <t>There are risks from sending passwords over the network, even when they are protected by TLS.  One such risk somes from the common practice of multi-hop RADIUS routing.  As all security in RADIUS is on a hop-by-hop basis, every proxy which receives a RADIUS packet can see (and modify) all of the information in the packet.  Sites wishing to avoid proxies SHOULD use dynamic peer discovery <xref target="RFC7585"/>, which permits clients to make connections directly to authoritative servers for a realm.</t>
        <t>These others ways to mitigate these risks.  One is by ensuring that the RADIUS over TLS session parameters are verified before sending the password, usually via a method such as verifying a server certificate.  That is, passwords should only be sent to verified and trusted parties.  If the TLS session parameters are not verified, then it is trivial to convince the RADIUS client to send passwords to anyone.</t>
        <t>Another way to mitigate these risks is for the system being authenticated to use an authentication protocol which never sends passwords (e.g. EAP-PWD <xref target="RFC5931"/>), or which sends passwords protected by a TLS tunnel (e.g. EAP-TTLS <xref target="RFC5281"/>).  The processes to choose and configuring an authentication protocol are strongly site-dependent, so further discussion of these issues are outside of the scope of this document.  The goal here is to ensure that the reader has enough information to make an informed decision.</t>
        <section anchor="user-password">
          <name>User-Password</name>
          <t>The User-Password attribute (<xref target="RFC2865"/> Section 5.2) MUST be encoded the same as any other attribute of data type 'string' (<xref target="RFC8044"/> Section 3.5).</t>
          <t>The contents of the User-Password field MUST be at least one octet in length, and MUST NOT be more than 128 octets in length.  This limitation is maintained from <xref target="RFC2865"/> Section 5.2 for compatibility with legacy transports.</t>
          <t>Note that the User-Password attribute is not of data type 'text'.  The original reason in <xref target="RFC2865"/> was because the attribute was encoded as an opaque and obfuscated binary blob.  We maintain that data type here, even though the attribute is no longer obfuscated.  The contents of the User-Password attribute do not have to printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.4.</t>
          <t>However, implementations should be aware that passwords are often printable text, and where the passwords are printable text, it can be useful to store and display them as printable text.  Where implementations can process non-printable data in the 'text' data type, they MAY use the data type 'text' for User-Password.</t>
        </section>
        <section anchor="chap-challenge">
          <name>CHAP-Challenge</name>
          <t><xref target="RFC2865"/> Section 5.2 allows for the CHAP challenge to be taken from either the CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40), or the Request Authenticator field.  Since RADIUS/1.1 connections no longer use a Request Authenticator field, proxies may receive an Access-Request containing a CHAP-Password attribute (<xref target="RFC2865"/> Section 5.2) but without a CHAP-Challenge attribute (<xref target="RFC2865"/> Section 5.40).  In this case, proxies which forward that CHAP-Password attribute over a RADIUS/1.1 connection MUST create a CHAP-Challenge attribute in the proxied packet using the contents from the Request Authenticator.</t>
        </section>
        <section anchor="tunnel-password">
          <name>Tunnel-Password</name>
          <t>The Tunnel-Password attribute (<xref target="RFC2868"/> Section 3.5) MUST be encoded the same as any other attribute of data type 'text' which contains a tag, such as Tunnel-Client-Endpoint (<xref target="RFC2868"/> Section 3.3).  Since the attribute is no longer obfuscated, there is no need for a Salt field or Data-Length fields as described in <xref target="RFC2868"/> Section 3.5, and the textual value of the password can simply be encoded as-is.</t>
          <t>Note that the Tunnel-Password attribute is not of data type 'text'.  The original reason in <xref target="RFC2868"/> was because the attribute was encoded as an opaque and obfuscated binary blob.  We maintain that data type here, even though the attribute is no longer obfuscated.  The contents of the Tunnel-Password attribute do not have to printable text, or UTF-8 data as per the definition of the 'text' data type in <xref target="RFC8044"/> Section 3.4.</t>
          <t>However, implementations should be aware that passwords are often printable text, and where the passwords are printable text, it can be useful to store and display them as printable text.  Where implementations can process non-printable data in the 'text' data type, they MAY use the data type 'text' for Tunnel-Password.</t>
        </section>
        <section anchor="vendor-specific-attributes">
          <name>Vendor-Specific Attributes</name>
          <t>Any Vendor-Specific attribute which uses similar obfuscation MUST be encoded as per their base data type.  Specifically, the MS-MPPE-Send-Key and MS-MPPE-Recv-Key attributes (<xref target="RFC2548"/> Section 2.4) MUST be encoded as any other attribute of data type 'text' (<xref target="RFC8044"/> Section 3.4).</t>
          <t>We note that as the RADIUS shared secret is no longer used, it is no longer possible or necessary for any attribute to be obfuscated on a hop-by-hop basis using the previous methods defined for RADIUS.</t>
        </section>
      </section>
      <section anchor="message-authenticator">
        <name>Message-Authenticator</name>
        <t>The Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) MUST NOT be sent over a RADIUS/1.1 connection.  That attribute is no longer used or needed.</t>
        <t>If the Message-Authenticator attribute is received over a RADIUS/1.1 connection, the attribute MUST be silently discarded, or treated as an "invalid attribute", as defined in <xref target="RFC6929"/> Section 2.8.  That is, the Message-Authenticator attribute is no longer used to sign packets.  Its existence (or not) in this transport is meaningless.</t>
        <t>We note that any packet which contains a Message-Authenticator attribute can still be processed.  There is no need to discard an entire packet simply because it contains a Message-Authenticator attribute.  Only the Message-Authenticator attribute itself is ignored.</t>
      </section>
      <section anchor="message-authentication-code">
        <name>Message-Authentication-Code</name>
        <t>Similarly, the Message-Authentication-Code attribute defined in <xref target="RFC6218"/> Section 3.3 MUST NOT be sent over a RADIUS/1.1 connection.  That attribute MUST be treated the same as Message-Authenticator, above.</t>
        <t>As the Message-Authentication-Code attribute is no longer used, the related MAC-Randomizer attribute <xref target="RFC6218"/> Section 3.2 is also no longer used.  It MUST also be treated the same was as Message-Authenticator, above.</t>
      </section>
      <section anchor="chap-ms-chap-etc">
        <name>CHAP, MS-CHAP, etc.</name>
        <t>While some attributes such as CHAP-Password, etc. depend on insecure cryptographic primitives such as MD5, these attributes are treated as opaque blobs when sent between a RADIUS client and server.  The contents of the attributes are not obfuscated, and they do not depend on the RADIUS shared secret.  As a result, these attributes are unchanged in RADIUS/1.1.</t>
        <t>A server implementing this specification can proxy CHAP, MS-CHAP, etc. without any issue.  A home server implementing this specification can authenticate CHAP, MS-CHAP, etc. without any issue.</t>
      </section>
      <section anchor="original-packet-code">
        <name>Original-Packet-Code</name>
        <t>The Original-Packet-Code attribute (<xref target="RFC7930"/> Section 4) MUST NOT be sent over a RADIUS/1.1 connection.  That attribute is no longer used or needed.</t>
        <t>If the Original-Packet-Code attribute is received over a RADIUS/1.1 connection, the attribute MUST either be silently discarded, or be treated an as "invalid attribute", as defined in <xref target="RFC6929"/>, Section 2.8.  That is, existence of the Token field means that the Original-Packet-Code attribute is no longer needed to correlate Protocol-Error replies with outstanding requests.  As such, the Original-Packet-Code attribute is not used in RADIUS/1.1.</t>
        <t>We note that any packet which contains an Original-Packet-Code attribute can still be processed.  There is no need to discard an entire packet simply because it contains an Original-Packet-Code attribute.</t>
      </section>
    </section>
    <section anchor="other-considerations">
      <name>Other Considerations</name>
      <t>Most of the differences between RADIUS and RADIUS/1.1 are in the packet header and attribute handling, as discussed above.  The remaining issues are a small set of unrelated topics, and are discussed here.</t>
      <section anchor="status-server">
        <name>Status-Server</name>
        <t><xref target="RFC6613"/> Section 2.6.5, and by extension <xref target="RFC7360"/> suggest that the Identifier value zero (0) be reserved for use with Status-Server as an application-layer watchdog.  This practice MUST NOT be used for RADIUS/1.1, as the Identifier field is no longer used.</t>
        <t>The rationale for reserving one value of the Identifier field was the limited number of Identifiers available (256), and the overlap in Identifiers between Access-Request packets and Status-Server packers.  If all 256 Identifier values had been used to send Access-Request packets, then there would be no Identifier value available for sending a Status-Server Packet.</t>
        <t>In contrast, the Token field allows for 2^32 outstanding packets on one RADIUS/1.1 connection.  If there is a need to send a Status-Server packet, it is always possible to allocate a new value for the Token field.  Similarly, the value zero (0) for the Token field has no special meaning.  The edge condition is that there are 2^32 outstanding packets on one connection with no new Token value available for Status-Server.  In which case there are other serious issues, such as allowing billions of packets to be oustanding.  The safest way forward is likely to just close the connection.</t>
      </section>
      <section anchor="proxies">
        <name>Proxies</name>
        <t>A RADIUS proxy normally decodes and then re-encodes all attributes, included obfuscated ones.  A RADIUS proxy will not generally rewrite the content of the attributes it proxies (unless site-local policy requires such a rewrite).  While some attributes may be modified due to administrative or policy rules on the proxy, the proxy will generally not rewrite the contents of attributes such as User-Password, Tunnel-Password, CHAP-Password, MS-CHAP-Password, MS-MPPE keys, etc.  All attributes are therefore transported through a RADIUS/1.1 connection without changing their values or contents.</t>
        <t>A proxy may negotiate RADIUS/1.1 (or not) with a particular client or clients, and it may negotiate RADIUS/1.1 (or not) with a server or servers it connect to, in any combination.  As a result, this specification is fully compatible with all past, present, and future RADIUS attributes.</t>
      </section>
      <section anchor="crypto-agility">
        <name>Crypto-Agility</name>
        <t>The crypto-agility requirements of <xref target="RFC6421"/> are addressed in <xref target="RFC6614"/> Appendix C, and in Section 10.1 of <xref target="RFC7360"/>.  This specification makes no changes from, or additions to, those specifications.  The use of ALPN, and the removal of MD5 has no impact on security or privacy of the protocol.</t>
        <t>RADIUS/TLS has been widely deployed in at least eduroam and in OpenRoaming.  RADIUS/DTLS has seen less adoption, but it is known to be supported in many RADIUS clients and servers.</t>
        <t>It is RECOMMENDED that all implementations of RADIUS over TLS be updated to support this specification.  The effort to implement this specification is minimal.  Once implementations support this specification, administrators can gain the benefit of it with little or no configuration changes.  This specification is backwards compatible with <xref target="RFC6614"/> and <xref target="RFC7360"/>.  It is only potentially subject to downbidding attacks if implementations do not enforce ALPN negotiation correctly on session resumption.</t>
        <t>All crypto-agility needed or used by this specification is implemented in TLS.  This specification also removes all cryptographic primitives from the application-layer protocol (RADIUS) being transported by TLS.  As discussed in the next section below, this specification also bans the development of all new cryptographic or crypto-agility methods in the RADIUS protocol.</t>
      </section>
      <section anchor="future-standards">
        <name>Future Standards</name>
        <t>This specification defines a new transport profile for RADIUS.  It does not define a completely new protocol.  As such, any future attribute definitions MUST first be defined for RADIUS/UDP, after which those definitions can be applied to this transport profile.</t>
        <t>New specifications MAY define new attributes which use the obfuscation methods for User-Password as defined in <xref target="RFC2865"/> Section 5.2, or for Tunnel-Password as defined in <xref target="RFC2868"/> Section 3.5.  There is no need for those specifications to describe how those new attributes are transported in RADIUS/1.1.  Since RADIUS/1.1 does not use MD5, any obfuscated attributes will by definition be transported as their underlying data type, ("text" (<xref target="RFC8044"/> Section 3.4) or "string" (<xref target="RFC8044"/> Section 3.5).
a
New RADIUS specifications MUST NOT define attributes which can only be transported via RADIUS over TLS.  The RADIUS protocol has no way to signal the security requirements of individual attributes.  Any existing implementation will handle these new attributes as "Invalid Attributes" (<xref target="RFC6929"/> Section 2.8), and could forward them over an insecure link.  As RADIUS security and signalling is hop-by-hop, there is no way for a RADIUS client or server to even know if such forwarding is taking place.  For these reasons and more, it is therefore inappropriate to define new attributes which are only secure if they use a secure transport layer.</t>
        <t>New specifications do not need to mention this transport profile, or make any special provisions for dealing with it.  This specification defines how RADIUS packet encoding, decoding, signing, and verification are performed when using RADIUS/1.1.  So long as any future specification uses the existing encoding, etc. schemes defined for RADIUS, no additional text in future documents is necessary in order to be compatible with RADIUS/1.1.</t>
        <t>To close the final loophole, this document updates <xref target="RFC2865"/> at al. to state that any new RADIUS specification MUST NOT introduce new "ad hoc" cryptographic primitives as was done with User-Password and Tunnel-Password.  That is, RADIUS-specific cryptographic methods existing as of the publication of this document can continue to be used for historical compatibility.  However, all new cryptographic work in RADIUS is forbidden.  There is insufficient expertise in the RADIUS community to securely design new cryptography.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>(This section to be removed by the RFC editor.)</t>
      <t>This specification is being implemented (client and server) in the FreeRADIUS project which is hosted on GitHub at https://github.com/FreeRADIUS/freeradius-server/tree/v3.2.x  The code implementation "diff" is approximately 1,000 lines, including build system changes and changes to configuration parsers.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This specification requires secure transport for RADIUS, and this has all of the privacy benefits of RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/>.  All of the insecure uses of RADIUS have been removed.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing security considerations for RADIUS.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to update the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry with one new entry:</t>
      <artwork><![CDATA[
Protocol: radius/1.1
Id. Sequence: 0x72 0x61 0x64 0x69 0x75 0x73 0x2f 0x31 0x2e 0x31
    ("radius/1.1")
Reference:  This document
]]></artwork>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>In hindsight, the decision to retain MD5 for RADIUS over TLS was likely wrong.  It was an easy decision to make in the short term, but it has caused ongoing problems which this document addresses.</t>
      <t>Thanks to Bernard Aboba, Karri Huhtanen, Heikki Vatiainen, Alexander Clouter, Michael Richardons, Hannes Tschofenig, and Matthew Netwon for reviews and feedback.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <t>draft-dekok-radext-sradius-00</t>
      <ul empty="true">
        <li>
          <t>Initial Revision</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-00</t>
      <ul empty="true">
        <li>
          <t>Use ALPN from RFC 7301, instead of defining a new port.  Drop the name "SRADIUS".</t>
          <t>Add discussion of Original-Packet-Code</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-01</t>
      <ul empty="true">
        <li>
          <t>Update formatting.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-02</t>
      <ul empty="true">
        <li>
          <t>Add Flag field and description.</t>
          <t>Minor rearrangements and updates to text.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-03</t>
      <ul empty="true">
        <li>
          <t>Remove Flag field and description based on feedback and expected use-cases.</t>
          <t>Use "radius/1.0" instead of "radius/1"</t>
          <t>Consistently refer to the specification as "RADIUSv11", and consistently quote the ALPN name as "radius/1.1"</t>
          <t>Add discussion of future attributes and future crypto-agility work.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-04</t>
      <ul empty="true">
        <li>
          <t>Remove "radius/1.0" as it is unnecessary.</t>
          <t>Update Introduction with more historical background, which motivates the rest of the section.</t>
          <t>Change Identifier field to be reserved, as it is entirely unused.</t>
          <t>Update discussion on clear text passwords.</t>
          <t>Clarify discussion of Status-Server, User-Password, and Tunnel-Password.</t>
          <t>Give high level summary of ALPN, clear up client / server roles, and remove "radius/1.0" as it is unnecessary.</t>
          <t>Add text on RFC6421.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-05</t>
      <ul empty="true">
        <li>
          <t>Clarify naming.  "radius/1.1" is the ALPN name.  "RADIUS/1.1" is the transport profile.</t>
          <t>Clarify that future specifications do not need to make provisions for dealing with this transport profile.</t>
        </li>
      </ul>
      <t>draft-dekok-radext-radiusv11-05</t>
      <ul empty="true">
        <li>
          <t>Typos and word smithing.</t>
          <t>Define and use "RADIUS over TLS" instead of RADIUS/(D)TLS.</t>
          <t>Many cleanups and rework based on feedback from Matthew Newton.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="BCP14" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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="RFC2865" target="https://www.rfc-editor.org/info/rfc2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney">
              <organization/>
            </author>
            <author fullname="S. Willens" initials="S." surname="Willens">
              <organization/>
            </author>
            <author fullname="A. Rubens" initials="A." surname="Rubens">
              <organization/>
            </author>
            <author fullname="W. Simpson" initials="W." surname="Simpson">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC6421" target="https://www.rfc-editor.org/info/rfc6421">
          <front>
            <title>Crypto-Agility Requirements for Remote Authentication Dial-In User Service (RADIUS)</title>
            <author fullname="D. Nelson" initials="D." role="editor" surname="Nelson">
              <organization/>
            </author>
            <date month="November" year="2011"/>
            <abstract>
              <t>This memo describes the requirements for a crypto-agility solution for Remote Authentication Dial-In User Service (RADIUS).  This  document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6421"/>
          <seriesInfo name="DOI" value="10.17487/RFC6421"/>
        </reference>
        <reference anchor="RFC6929" target="https://www.rfc-editor.org/info/rfc6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <author fullname="A. Lior" initials="A." surname="Lior">
              <organization/>
            </author>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space.  In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data.  This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
        <reference anchor="RFC7301" target="https://www.rfc-editor.org/info/rfc7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC8044" target="https://www.rfc-editor.org/info/rfc8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities.  During this time, RADIUS implementations have named the data types and have used them in attribute definitions.  This document updates the specifications to better follow established practice.  We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865.  We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute.  Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice.  This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC1321" target="https://www.rfc-editor.org/info/rfc1321">
          <front>
            <title>The MD5 Message-Digest Algorithm</title>
            <author fullname="R. Rivest" initials="R." surname="Rivest">
              <organization/>
            </author>
            <date month="April" year="1992"/>
            <abstract>
              <t>This document describes the MD5 message-digest algorithm. The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input.  This memo provides information for the Internet community.  It does not specify an Internet standard.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1321"/>
          <seriesInfo name="DOI" value="10.17487/RFC1321"/>
        </reference>
        <reference anchor="RFC2548" target="https://www.rfc-editor.org/info/rfc2548">
          <front>
            <title>Microsoft Vendor-specific RADIUS Attributes</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <date month="March" year="1999"/>
            <abstract>
              <t>This document describes the set of Microsoft vendor-specific RADIUS attributes.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2548"/>
          <seriesInfo name="DOI" value="10.17487/RFC2548"/>
        </reference>
        <reference anchor="RFC2866" target="https://www.rfc-editor.org/info/rfc2866">
          <front>
            <title>RADIUS Accounting</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2866"/>
          <seriesInfo name="DOI" value="10.17487/RFC2866"/>
        </reference>
        <reference anchor="RFC2868" target="https://www.rfc-editor.org/info/rfc2868">
          <front>
            <title>RADIUS Attributes for Tunnel Protocol Support</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <author fullname="D. Leifer" initials="D." surname="Leifer">
              <organization/>
            </author>
            <author fullname="A. Rubens" initials="A." surname="Rubens">
              <organization/>
            </author>
            <author fullname="J. Shriver" initials="J." surname="Shriver">
              <organization/>
            </author>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege">
              <organization/>
            </author>
            <author fullname="I. Goyret" initials="I." surname="Goyret">
              <organization/>
            </author>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document defines a set of RADIUS (Remote Authentication Dial In User Service) attributes designed to support the provision of compulsory tunneling in dial-up networks.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2868"/>
          <seriesInfo name="DOI" value="10.17487/RFC2868"/>
        </reference>
        <reference anchor="RFC3579" target="https://www.rfc-editor.org/info/rfc3579">
          <front>
            <title>RADIUS (Remote Authentication Dial In User Service) Support For Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun">
              <organization/>
            </author>
            <date month="September" year="2003"/>
            <abstract>
              <t>This document defines Remote Authentication Dial In User Service (RADIUS) support for the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication mechanisms.  In the proposed scheme, the Network Access Server (NAS) forwards EAP packets to and from the RADIUS server, encapsulated within EAP-Message attributes.  This has the advantage of allowing the NAS to support any EAP authentication method, without the need for method- specific code, which resides on the RADIUS server.  While EAP was originally developed for use with PPP, it is now also in use with IEEE 802.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3579"/>
          <seriesInfo name="DOI" value="10.17487/RFC3579"/>
        </reference>
        <reference anchor="RFC5176" target="https://www.rfc-editor.org/info/rfc5176">
          <front>
            <title>Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="M. Chiba" initials="M." surname="Chiba">
              <organization/>
            </author>
            <author fullname="G. Dommety" initials="G." surname="Dommety">
              <organization/>
            </author>
            <author fullname="M. Eklund" initials="M." surname="Eklund">
              <organization/>
            </author>
            <author fullname="D. Mitton" initials="D." surname="Mitton">
              <organization/>
            </author>
            <author fullname="B. Aboba" initials="B." surname="Aboba">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document describes a currently deployed extension to the Remote Authentication Dial In User Service (RADIUS) protocol, allowing dynamic changes to a user session, as implemented by network access server products.  This includes support for disconnecting users and changing authorizations applicable to a user session. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5176"/>
          <seriesInfo name="DOI" value="10.17487/RFC5176"/>
        </reference>
        <reference anchor="RFC6151" target="https://www.rfc-editor.org/info/rfc6151">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <author fullname="L. Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm.  It also updates the security considerations for HMAC-MD5.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6218" target="https://www.rfc-editor.org/info/rfc6218">
          <front>
            <title>Cisco Vendor-Specific RADIUS Attributes for the Delivery of Keying Material</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <author fullname="T. Zhang" initials="T." surname="Zhang">
              <organization/>
            </author>
            <author fullname="J. Walker" initials="J." surname="Walker">
              <organization/>
            </author>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines a set of vendor-specific RADIUS Attributes designed to allow both the secure transmission of cryptographic keying material and strong authentication of any RADIUS message. These attributes have been allocated from the Cisco vendor-specific space and have been implemented by multiple vendors.  This document  is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6218"/>
          <seriesInfo name="DOI" value="10.17487/RFC6218"/>
        </reference>
        <reference anchor="RFC6613" target="https://www.rfc-editor.org/info/rfc6613">
          <front>
            <title>RADIUS over TCP</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="May" year="2012"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Server (RADIUS) protocol has, until now, required the User Datagram Protocol (UDP) as the underlying transport layer.  This document defines RADIUS over the Transmission Control Protocol (RADIUS/TCP), in order to address handling issues related to RADIUS over Transport Layer Security (RADIUS/TLS).  It permits TCP to be used as a transport protocol for RADIUS only when a transport layer such as TLS or IPsec provides confidentiality and security.  This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6613"/>
          <seriesInfo name="DOI" value="10.17487/RFC6613"/>
        </reference>
        <reference anchor="RFC6614" target="https://www.rfc-editor.org/info/rfc6614">
          <front>
            <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="M. McCauley" initials="M." surname="McCauley">
              <organization/>
            </author>
            <author fullname="S. Venaas" initials="S." surname="Venaas">
              <organization/>
            </author>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga">
              <organization/>
            </author>
            <date month="May" year="2012"/>
            <abstract>
              <t>This document specifies a transport profile for RADIUS using Transport Layer Security (TLS) over TCP as the transport protocol. This enables dynamic trust relationships between RADIUS servers.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6614"/>
          <seriesInfo name="DOI" value="10.17487/RFC6614"/>
        </reference>
        <reference anchor="RFC7360" target="https://www.rfc-editor.org/info/rfc7360">
          <front>
            <title>Datagram Transport Layer Security (DTLS) as a Transport Layer for RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok">
              <organization/>
            </author>
            <date month="September" year="2014"/>
            <abstract>
              <t>The RADIUS protocol defined in RFC 2865 has limited support for authentication and encryption of RADIUS packets.  The protocol transports data in the clear, although some parts of the packets can have obfuscated content.  Packets may be replayed verbatim by an attacker, and client-server authentication is based on fixed shared secrets.  This document specifies how the Datagram Transport Layer Security (DTLS) protocol may be used as a fix for these problems.  It also describes how implementations of this proposal can coexist with current RADIUS systems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7360"/>
          <seriesInfo name="DOI" value="10.17487/RFC7360"/>
        </reference>
        <reference anchor="RFC7585" target="https://www.rfc-editor.org/info/rfc7585">
          <front>
            <title>Dynamic Peer Discovery for RADIUS/TLS and RADIUS/DTLS Based on the Network Access Identifier (NAI)</title>
            <author fullname="S. Winter" initials="S." surname="Winter">
              <organization/>
            </author>
            <author fullname="M. McCauley" initials="M." surname="McCauley">
              <organization/>
            </author>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document specifies a means to find authoritative RADIUS servers for a given realm.  It is used in conjunction with either RADIUS over Transport Layer Security (RADIUS/TLS) or RADIUS over Datagram Transport Layer Security (RADIUS/DTLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7585"/>
          <seriesInfo name="DOI" value="10.17487/RFC7585"/>
        </reference>
        <reference anchor="RFC7930" target="https://www.rfc-editor.org/info/rfc7930">
          <front>
            <title>Larger Packets for RADIUS over TCP</title>
            <author fullname="S. Hartman" initials="S." surname="Hartman">
              <organization/>
            </author>
            <date month="August" year="2016"/>
            <abstract>
              <t>The RADIUS-over-TLS experiment described in RFC 6614 has opened RADIUS to new use cases where the 4096-octet maximum size limit of a RADIUS packet proves problematic.  This specification extends the RADIUS-over-TCP experiment (RFC 6613) to permit larger RADIUS packets.  This specification compliments other ongoing work to permit fragmentation of RADIUS authorization information.  This document registers a new RADIUS code, an action that required IESG approval.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7930"/>
          <seriesInfo name="DOI" value="10.17487/RFC7930"/>
        </reference>
        <reference anchor="RFC5077" target="https://www.rfc-editor.org/info/rfc5077">
          <front>
            <title>Transport Layer Security (TLS) Session Resumption without Server-Side State</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <author fullname="H. Zhou" initials="H." surname="Zhou">
              <organization/>
            </author>
            <author fullname="P. Eronen" initials="P." surname="Eronen">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document describes a mechanism that enables the Transport Layer Security (TLS) server to resume sessions and avoid keeping per-client session state.  The TLS server encapsulates the session state into a ticket and forwards it to the client.  The client can subsequently resume a session using the obtained ticket.  This document obsoletes RFC 4507.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5077"/>
          <seriesInfo name="DOI" value="10.17487/RFC5077"/>
        </reference>
        <reference anchor="RFC5931" target="https://www.rfc-editor.org/info/rfc5931">
          <front>
            <title>Extensible Authentication Protocol (EAP) Authentication Using Only a Password</title>
            <author fullname="D. Harkins" initials="D." surname="Harkins">
              <organization/>
            </author>
            <author fullname="G. Zorn" initials="G." surname="Zorn">
              <organization/>
            </author>
            <date month="August" year="2010"/>
            <abstract>
              <t>This memo describes an Extensible Authentication Protocol (EAP) method, EAP-pwd, which uses a shared password for authentication. The password may be a low-entropy one and may be drawn from some set of possible passwords, like a dictionary, which is available to an attacker.  The underlying key exchange is resistant to active attack, passive attack, and dictionary attack.  This document is not an Internet  Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5931"/>
          <seriesInfo name="DOI" value="10.17487/RFC5931"/>
        </reference>
        <reference anchor="RFC5281" target="https://www.rfc-editor.org/info/rfc5281">
          <front>
            <title>Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0 (EAP-TTLSv0)</title>
            <author fullname="P. Funk" initials="P." surname="Funk">
              <organization/>
            </author>
            <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson">
              <organization/>
            </author>
            <date month="August" year="2008"/>
            <abstract>
              <t>EAP-TTLS is an EAP (Extensible Authentication Protocol) method that encapsulates a TLS (Transport Layer Security) session, consisting of a handshake phase and a data phase.  During the handshake phase, the server is authenticated to the client (or client and server are mutually authenticated) using standard TLS procedures, and keying material is generated in order to create a cryptographically secure tunnel for information exchange in the subsequent data phase.  During the data phase, the client is authenticated to the server (or client and server are mutually authenticated) using an arbitrary authentication mechanism encapsulated within the secure tunnel.  The encapsulated authentication mechanism may itself be EAP, or it may be another authentication protocol such as PAP, CHAP, MS-CHAP, or MS-CHAP-V2.  Thus, EAP-TTLS allows legacy password-based authentication protocols to be used against existing authentication databases, while protecting the security of these legacy protocols against eavesdropping, man-in-the-middle, and other attacks.  The data phase may also be used for additional, arbitrary data exchange.  This memo  provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5281"/>
          <seriesInfo name="DOI" value="10.17487/RFC5281"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAEIdQGQAA+19a3PjSHLgd/4KHPvDSj5SrVc/I27O2lb3tmL6IbfUO964
8G2ARJHECgRoFCA1d2b8W+63+Jc5n/UAQEntWTvCjuuNmKVIoCorKyvfmTWd
TkdN3hTmdfLl7Pzi61XyR1PbvCqTo4OjUTqb1eZWf7o9Ohpl1bxM1/B0VqeL
ZpqZm+pmWqeZ+dbg/+Wthaemh89G7SZLG2NfJ8+fH50kL06eH45GtknL7M9p
UZUwQFO3ZpRvavpkm+PDw1eHx6O0Nunr5KJsTF2aZnS3pMnf/uN18lNV3+Tl
MvlDXbWb0c2df2p6jrCM5mnzOrFNNrLtbJ1bXMT1dgMzXby9fjcabfLXoyRp
qvnrZGssfLRV3dRmASAmyZMkM4u0LRoLT+jv2zX/jH+O0rZZVfXr0Wia5CV8
eXaQnJsfqxt4kBFyVqSl+6qqAfB3tTGMOfjGrNO8eJ2k8FT29wv4hbF1AE+O
RmVVr9MmvzUI4u/fXB6dwrLfvXl59OIUvoBPxy+fP3vNH5+fHh/px1fHr+Tj
i5ND/fbl4ekpwJmXi3BU+OHoxL15/Oz05Ws39HP/Ub89efZCh3529EIfeH70
zM19fKTP4g77j6cOoueH+vHZS4X+xasT+HZ0a8qWwFribuoew9+MJSaov89N
syAEwXN5s2pnrxOPuaeO3A7gR9iX6TRJZ7ap0zn8db3KbQLE2q5N2eDm5qWx
ydlmU+RAJ0Aa0w/p1tTJZV0BSVRF8sksqyann5K33xpTIv3YBHCYtNYkdzC/
HIOn1x+uEthF/fMc/j5IkuuVgeeMf3Vj6nXeJM3KJGUweLWAl5M0y3L8My2S
1AOVbBQcnFcOZHULcO6d7/M0n6pkvkrLJawGzgrgKzNIsgLL1/PLxL359PrN
JQMWgpUWRXU3CBUcxLS0GzgWCMciL2DZKwOT4MMCjF3BrFlizbw2TQI4LqsE
zvPSEJqyCSEGpkg+nj+bzlL4Ktmk8xt41ubLEs8vPdA0dT5rG5NUs0VrZfFr
A0cs43XVZg3rzgD8n1amBAhgKrcInJdnQ8g2wKLyqoXdhSMKu424BBwsclNk
+GRtNm29qRAUQNS8Kps0L3EPzDdEPGxRbf65NbZJnsInWH8J+5hnOBKMUU+S
OawHXk6T6+rGlIJR+gwrtRVj1CbrilAFAx8/ey6rJnYyg2W2DTE/RABiuzQI
SGnmuPADIVe/vjkMAm9Zg1PYwZ3xBDLBR3LZjIYWBqDXptjCDt85kgK4LxpE
myWsmW+5bRAc2VjZpSLdAqydTWJGQmcAf2T6g/HObGLb+WqCsyPI87Sut7T7
sCcWDx6Os2ibtnYE5Ea1CNB6Uxg8oY4IOxuNOwNLsYAxWM46B0bpyB8wy9sv
R8aU8yoDOsQ5M8OfF20552OWN1vZOfcCc4UsmW0H6AuZepaMBepbLxTHEzxh
8sNT/OKAmc86z7LCjEZPUDDVVdbSzLi3bvFu6p9/Fqb+66+8JXBc+Etk0vAl
LA4PjJIRnyv4Us8L0I+pmZBDhJ6bOTAEi5ic19tNUy3rdLPK50jYJq3nq2QF
xGJX1R2eKdhTnBdWCyLNzGGXeB78Ep5p4fz44w30iGcOd82zLz6BmdmYEg7M
fIvEjW+v0xvDRLmGk2fzWUFcCjmpoAIhT95dXF5Nj04P4TAAJeQpUIzd2sas
iabdr0B/sxwYA/8GTLmu1gkSuBwnhb6zZuUneFToAUcD8Cgzz3ILe5LD71lu
561lDgnII7SU8lIOS7mDAVfJHQoCIG88Z8BWDCAQB3PcPxyFJqiAq8DD6Qyo
F1ZMO4xC9NdfGdPw3RUzgeQE5+UHTo/5gXWF6wMM1xZo7KcVnvtAcERMgegK
4MS1KWEHQgQmAmmQ7PEEILB//XV/kqAkc1+d0lcI1bn/HqU4fQ+ohAW6KWEz
GsQE7EIOM/G2Ex5S5ERMF7GwuEuZayeoAC5ZosJLk8SANoCSpgwFjfJPWtDM
4E67yQ0hzonEMxayTb42PO8cWXhpW8scxagKeScqJCkdBA+dATr8KBdyUEoy
IlIhAXwknc/NBneQthkQg196zmxz5GHJ+A6IDiT+GPa9ap1yMEHCKfDkkOgD
ofQNERLiRbhSDspsSYSQ+uUwjFUgswU4XrsMDocNRzcWWW4Oz27x2HbYJMhi
OBKCXGKV8M6EGSV9EvnMFCDS4Bb4ZpY6GQVSA7CKc22BmVjgJbcmZCYshPDI
A2uCsxzQH0DBIh0esn2GIUgY3IRIyfC7wRxEz/UU93xOaoApb/O6KlGsyLDh
YHoIid5prQGd4+mi2XRYZPXAIG5ThBT1MFonHLdbUBBIcjAJXtDKacv8Spt4
auJajI6DXQoqCNFH6qh7Zx8uP+0r8IcoM7z8ChDPjIshssPcGuC/Es7KT+cq
lvlo9JWPlJVCMI9Q55mnG9oQWCcf1D5bp40YUHGAPaJcAXBq21RV9hhtp05x
ata0UoC4KszUpgXqjLe5dXpET+gip0DFpMhBj0hBUclj7aMjGQc0DlZMSSMh
YWzbDUHpdQHEaFNtRMnv6ljW1EBDcpR0UCKLBo0ZYetAUaI5B9w22FGEIsVv
SO0EY+rvEqQFVYrp0Y5qH6s3E3wF2cfRwQkSeAHqRM2aMq+NHkA1jlSTGJsx
TycOMENmKAo7j43GRXU3bUsC6Iuo12QzqYI9oKzbaLhIaWfFEtaySWEsUb6F
WFVTt6rHW5pJVXnrQLpwOr03DobMFyQEBaJI56oh6rT0rhv0I7DddGmm8Xq8
7sxiFM1pOKFO1h8c76u+TnoyGSRbYbuiGixg/rkB850ABe5c6dacOZWP9G+k
hq9AW9PL1FqQcbCM6xaMiyL4gtS6q+nHy8u3yY3ZMi3T1Kw208kbN0AjYwEZ
3QgRyKf7pPhW8wbk8s6nnoGuoIZCZJ15gzCw+ZQvhGZgtCtgIiGC6y1phMS+
0ibFZ1jly2hlNyATmE83yJhAAi9XIfsFYifEvYtMEbsxcyAHnpYxwppmhruM
x5LYMh5gNKRi5RJmA+sedsfKeebziA/nxEpxuMIswOQq+ahn333U6Wz3dCJQ
OdOMDywpWWCogPD+q+ju+NUb2FD644Mpl6BlyenaC60Ot2P7fOrcUGuTsp2O
hwD5O5MccANvacjRyyqiYETy4O5GFr3SGatC5H9As7LQxcmzegQfAZIdMNt2
CQ+0uMeragN0OweNFUVbJfw4sMT3yZTNKsNHEwREOm/oZJIWHjzJrBb4QprI
eGRkEH9npYPkh43kKnHuOxae6U7hSuYYIVXErM6AiBGQeTzCkrJ6k4UU38EM
qpVAPjXwp7ZIa+Xifj3Cz6KXnK+ANoGJc+/48OXJ02a+IWjojzbb7AcL7Bsf
5DDral2B8yzUwOAwnYFC+5cKDc4Shmr6q7FM+oDBNFlVSP0hUpxUt+qWICfN
fFWRAVPxn17FWbRA2j2NZW5CYyaeB8cUFS8Ukh/PT9V6ZiOZQJzDoZjA63dg
5dRsnkQwqzmpusSb92eXE2TV/AFlCZBf6qWLP1eyYPEfnOKzPPdPeLYaR2Wo
a1T5nOhC9mlwOMQNqdd0kIq7FMQEcTAxIQK4lW9HLNQfHGZ490COAj1nM845
sdBtowOAZY7hg2QPdQPiyfshde8eeCEI44OH1MQMFQ7XN1ARJqy2kl1V4o7A
1orWI/ouq/f4bEAjuBeEXt6WztyoP1fJAo4Vaa/4+jZhk3KOAQoUv551ggKa
klIIWOXBWDTzZ5TKOO9WVR0Sd2xd2cgC9mJFtqeEAwJ7tOk45uA154Ih7Ax5
XRhmHMixo0H8Os5PNgTbD0p4YEKy2E7UsFZRDdMC18sY1KEzK8Rvxcsgc6HP
AxVukKd1GpIzGK2s6Ac6OFIKUM7+PbSBPEQ9oxYGBWDnaSHaljhPI2pQzhNR
eWCqEpOBeVU+CWV2PZ0iPMhgGVYX94i1g0KBvNnTyj7RA50HMNJBimehbJFD
Jrv/kB6qLLOn8wKWv5YFvM1g3uXoxzJ2Du/xAW1CS3VCLE9WGODKUhiDSShi
1rFPqM8y1PC91+hzFvZ9Dm7ZSG9M7/YZ95zfkY+8y8b6Ghg7xCc9F/kkMc18
mDcSPwB9oqGDSM6vAJN+zycwh4WBxIM+CVzo6jV4cGC3vNjCJSn1UAyrNkIi
peHzytgkzwRamegXp53ho+o8jxyF6MyHklLYmZg6WTyQeP2ikYjoxdX8e8A3
sg6/xhw9+Q8sExYwA2L29izHM6wFEs4ejUWKY6R2KIgRWw5DiFM5NPQCYnUt
zr4dOiAologfkv/4dHpj2Ovko5I7ONPOE7ZCD6IweKRW7xn24cOjgyPGFSxj
0dbEtrxPm/kh8mAdwxtsaqYBdkHzsStYzIR3N9BPSQsNdM4hhsBR0z4poeS4
rXIOTtDAGlB0IRJU89X4gO8HAiQYnLnGCcqqqJZbNtzAHEbPMNDY+OPXq+vx
hP8/+fSZPn95+w9fL768PcfPV+/PPnxwH0byxNX7z18/nPtP/s03nz9+fPvp
nF+Gb5Poq9H449mfxozw8efL64vPn84+jHssl80ACiOik7gGztCQvT6K2PTv
31z+6/87OgVl+n+glXd0hA4H/gPzCOAPxBrPRpyR/4Q93o7QdQ2SB5EFRD9P
N3mTypFmjxhFOUbqahqNfnikm5KGUItAfa/srjzA0SQ9AsajKBko1U3kGkKK
OM/TYgpEhS4OMFvrW1RlA6bfn4BN3En8h3P1Yj4DGiFRdOUHAIEDLIR7F6iT
SOxtbu7ER+KOyiFsHYWWkFQxjrxl0xWYUlUD8EXMsyYYPboxZsPKGnI/GWsc
oAIj+IiOMPaPz9Piz0GfWtbp2qPaLT5JZ/BsOND1m8GBrvHsSnpM8qbCSGXh
xwvCQ9FYH3CPdgxGjItJ4Erd5pvugKfxgOc8Ym9At8KHR+5YjX8XjSXDv82J
hQUyzxulTuQhA/Y8wblR8xIsiDQjpa7ARCNKpfEeNyUEDsVIVNg8MGG01Zhh
JZTflwABTXcUMFGZMZ2AJcFQkJqtQB9vJec0hSYW6DpCPsLaDYUm4QdVCMgg
d+AciKsY4XzUhsO8fwC7vaYoFLHpOyOTyiQDCzLiWYenapLnw+DBUnvQPUl8
eJ3WeH2PGqmSX1w4yj7ZyUFKyYA3Bp8DOSK64SKvQSNY5hpMoXPs3O44hnPD
hROg8FUnPQjARb50vstAPoLU77l6eFoaDu3JosXwPjyoYhnQRVgF5SYgzjsS
0xV66BSuJGsJudZYSa0AdWgjsb0nT/iZT6rdhSR6rdihxQ74dxDv6DIIgxI/
JGPJ00JyRP76w/3ZF7Eqg+FuVKkUaaSOe8RVtX7pfeSoXCAqQgVD/W9iJeL6
aUQS8Oq79KvoTeunnISeOFQ9QEA64xPWgLqtOjbpbdsQukMsiPUWuJHE36Iy
Bwx1TAij6AUqzaSH3jcicZ3a/AXWGw+ialwTjoQKaTAS6modLYvwwqvjJ8PJ
EMWgJxlyyaChxUqJcMtItevl9sjQqAOR15JS4IDn5piwh4w1WRTpUnjbPCWf
VjigZo9E8GicgQEuGP2pT4cAsZ3SMsRFTx4SIIgNn2rx7cdETDwSxb0/s5g2
YPmQfN6gK0J0YVaFPpegjqRCaT52FBBr4KVgBiHJWh3FGIaeBgvGgD2dKfg+
0puIsyMHgndmdW4WJPIYZKRdgczvFswvEWt0vuTL1bQwt6YQ9kQsgN9YEDFh
cAE5SKX+fbUEJUwbxMwp7BxyyIi/ygl1ya2AwqN9dp7wMWJixbxMnD04RGoj
Bq59Tg55Qy++N8Bl+iHlIsfYH3r60SeDkemh1EqrxhWAc7wfHkhhJZofp9FS
OkmSCSE/DqZsEndMlykqDvQUwoN7jTThyeEAeeMFx1RlYiBETjsIshtAd1yH
UHOSXVGpTz5KHzzZTz6r82YSjgymQlsjcV3R34Q4MZ5ZU4FJY0yLy7mLf3qH
zAbELyfHDWEhXJ3ssnOnBHxl4sMl/nfHDIXfeV4WrMg9PcTXZFtPIyqLtjXA
w+Qxm7qXk09vP9pY2umcQ7cTYddzsiB3jiP5Y0gJ6O0oWfFDCbMy85vIhI7Z
bIBIZLfo1rgpgTPxgG78AEOUx2AKIA71fMCLulTvRHWvUhRYItwyRB6mPanT
jKH4PlYqxskO9acqh8NbDmricnSSmcOYLPY5KuPSMRnpZOEqo2a+/SZ6QDlk
V9Fh7mI9bUaKw4CzAkU4MElbIf7osKgOkNeqiwTzhpFpzePjzGuKL0fPojh0
qcdhtmmQcQhTYnySyBFRhaYqJoq5M6KcW6T0JJm1mqUVeCIklhaLY9LBF+nc
WM6BwsD3eu20c/6FgpTOcc3HYkDqYG4WjEw07C0tZeAk+OdsiYqbCvPhOuqD
MI8wvDkk5uONfodDo07rbU3e6TNUUwE3f0yLFqs7fpAoUzJN3vGHINoUvEhq
7JlSrKhnAVHztE7VEaA5zTQUEw5i0QhZeaD3ghxZZ8rCpANujuEctgN4mqF0
Icb/FlCS7OuIPkySyQMOHzupKdvCM67kgi16kqTilR6SJkJJP0jW5TQhYuEA
k6ps+/fRB1H1LVIWQz8zErWiCiNYcEP8hJToDpVH4bBBu+iH7yBBhI/N2ko3
mY56pESLh0sc7oHc7Owzc/VIb+EUq8yGCnjPakBTYOH0DF9gYb3p5nZK2X+z
EwpHbR1Sc2lGHdf8o8ns7E9CAxSiDLGrRCXmF2x4bIEhTyXNKI/UHvYUdC1F
FumhjdI9aY9RnoI9cOfjHn3oB5WaQMyUjZfX5rczuP821DXEWb6PP+3iTfds
ZIQlL8C+Z9YhH0FMVrH1HsGjhLnbP4EcWx4mtZPmJEdUZ9vSnt47Lcg7GDgF
wwAZmJhWgveMi/BwpJ14Lk2onpoc1c9PLrVFvTuOiw6raXxEA72TUDZmiT+m
pA10nk84GWdmyEFBqlWx9flPqe1kc4l13EmW7rqxLhYDKWKozpIiZFwJgtak
YOa+D0TuNDQ5k6Uc8A+ESaYk6tinQ6FXZpyFqSm3YVxWfw4m+LNOME72jo4P
952nWSgFMcGZDIb2xYHNu/oA1OzH9DQ0fOhGFzuUU++swL2pa3YAghq5DHzk
Nm9a2XFbyYuRn6lir5vDPqxwGyfGBed3QQaHnAmYKVlzikUiUb6cvbGJK7RF
02Omea8eU5I/HbklxU17cYl2AHAt2E4MVzLhRENqSsEVK9kFJsKqJsYsjitL
HrmzAjsuZwinskScD0GMvuTA/BwLojC4hYd1ZYoNTR+imA2/PF2WuMO67FuM
ErCXOjrDIQndpVvhAUGOJrMIUvTs70K2E3NE8jvRG2PS28YUjxG5Nx6QPffx
YY5csKHU5RviOCH9TobN8sUCVoGOwJlp7oxUMjV3FT9mu5Z8LskpQLho75CP
qMwKyg7jpPWu1AKcBRQwjDThLX9LpF2UzPsxi9F2te0IdR1t26Gyr6wEYitW
pChJY1kb8TikTVjG8N2o9q6MDorpR+UUkqNQOfeEKBuh3uAcH0+ePEmu0xkx
iqt2vU5rSSHYIE7Y9Ee/CIeH0gSeA3ZRtusZAFJRPn+1BlGRubyRi8BaFpcu
F5TVkXdWWAjwFhjAUEJqoyU3LrmPBFeO5w9RwEA/FSwIbqJSDqIHMr5h2YH7
wAVFaQbNKSehE3kZJF8+ZFYSvAj5ipRxMME/wkP8L/BvlNz3j114nWd0B39R
Qx4+sf0GH4Sgxb+Dj/8yfdS/kf/4C/AsngJHTNQcGf70BoVbAOEv9y4owap+
4IdH4RsjXcd/0nSCrHum+/wjP/v5x85UNNqJG/ckGlctD36UIKVf/Kf7xz12
4x4zbfz8OqGGJf9rfKmUr+fCxzqDFJTxr3xGmZxh/2vM7SWNz5cZ+OINyeV8
jd5AxCoYT4wtsJ0CtjLoiXc1Kl2dP6s6NpaubRo+fv+YXf93PObIZ9J0DWVJ
aDhIOu5ZUaqzAw/QCQAUyElUGq1w8ZnoNfe44cVxAvsYedtcRsVsy8KE1C0j
STe96QYFsq9tccbhhsqyu1Ik9AViUDsLa21E/+iHPQcTfVVaMf3i6z7BwtfN
DQRR7xlNLR0s/Lm8+pGBvJKI/BcXkR+NhhX6I0z7aNRocLHxKJBoUoygBvRD
5dUguvuBf90ZCtdTn42BZ8ho4W9B8aOa7J9//t+YR3X44gU69mp1LnNUQfww
Pj+6V4yCb+R1bQpzm2oAhdQhHEAklcT70C+OctuuMAMyVkTRqQyikyJqF5HX
GVeMB+SunGI1F2moTZPOb0ByRqWYaso5DNKkET05q4v2L7W2mucujhKq/s4O
j7EFx+7zEF77elGa3aIJYI1HBlXWcsYrJ3PEKpf6kmT0MNVaNz1kWV3VT3U+
Lhi9C4jGBobjgJpMOhMthW0PXZ1WJWWODChF21Fn5GsQ01iAs8a4mh5hB7vH
CfUX0XytdYZ+rGdjrAw23yDWueiCADfhVtnhTIIB/1h/1wbt2MiPIiaXJj+D
XVZXGyQhZClkYXmDcIfdpgY5aVu2XQBTwfX92ZWp77042h+ctW/oqRVL/lPN
H9XswSchbi852R2Pp6s4xfAIELy9N5Wq7wmiShCpz7Ja8orHN2pmQK4lxX0A
SOBD6JcqcB4UrAFtolzO1Q4IkN/trsZ0tQbXUXRJjTWSYQRkdBhcxkecyEWS
jgQaBfgiJ8eTITQzYikBqRyQnpMAKUEFqBaG8GooOSOtM78UzWk1+s5K1Qlf
NmqxHieswFYjq1FtSEgrKKBWcay13Z2ykwcrvcXVFdahJMkZFlpq4LZfasR1
AjKA83vPDHrAkA/zGHao4ZQ7KDgvG4K+qhtoj2hEhcNUBffOkt8h8LFw0bJR
OGBnRYUjdAYor9obXCbETMNJuk2jG6tleHW+XDXOSjocUO2PBr47HvjuBF8/
gp9OktPkWfI8eZG8TF59z3ej/zn9jf8bsaFC5cqq9QPZIAPLpkdJx5CRYubw
3y9/Mxh2/eOS//v+/cfD8PC/X+4dwaF0iA4eNcLjYPib4CHobXBwcHDPmM4a
fPKeOZtYhdfxwYu4K9qCSG2adk2U53pBUOYYdjeQSjLfWIJcTNtNoAzIgfY2
TFAD2PRG7ggdpyQPlxOBMecOgS+NcMeiD2/gW6euccQq/mpqTv7lOibS3BVc
zLqgUTAhKdCxNN3EM/qxL9ENivDuEm7t4YzToDOGe0J6dwgatzu6c8Bq+WDr
SsOeBZRFdFfxKu1OZHdf+V50E/Q6f2cpi6qtZX7xUGInMkAKkNN8hUCE66JQ
K6gehotnUm0hwpXm4pns9iER/h9ZJi5OMafgR8vqjHGtCmNXrGTnk0xn+Dn9
gGYE/GkzrW4bgCjeCYO8k5qvuLCzjrOLYO3/55/2nkiu5lTG3pc2a5wBFbWt
kxdctCJ+xQcxHJF6+j/u0f9xSBmmAG0FdON92SGcqiBicLRijf42dD64kEyz
Tv2hTna9LG1Y1ATy8Zfdr3JtA4NPK5ZaQt+40DU2YN3QU+E7XOpOVRuJ0OfG
ucypDgGLcvKEHA280Eshh5+7m/grKjEa++fgH6mwSj+uI0Q4B57xco5BXVY0
vb+728pNkrultyUGRJHSB5phxhOwncW1uIg/rNvn0t+2zLFGXpSr2L6Q5EI6
E6Fp9q5XRtIrkycjUXWw4PA5qs5LtxhZdHjqQtVUGRHRS9obC6fdq82+5WZl
P2kTvNB7kgbANL6faoAQzPeQoPoeWZL0G+VLzOfN9NyAeju9zjmI7Q0mPJfS
APifnJPp2cHx/mR4SX45B+KSlUZZ1AWQU0VdG5uJ23bSlY1kI/t1OJeedBHz
u6r6OzsBkIvKPgcQYTxMovFLqjdq1G7kh3xmJjoEEUHa5GJlttIMhN0FcQnf
ZFd6ZAcjaPPpzCpn0uTkeDrDNO2qxRxJT5ACP9BVxzungdbUvSN2OxV75tjN
D0w06ZsAuMtgGpoftii90TZF7ic5egIXOhaQ7qTPReziIQUCLCuflyMAIOYo
Qk8gzFkKCOfq7VF05LjbRhibJEkLlrXKa5WAhMg4jKmPyEFRaKivonVdFWW5
WMQglDkDQJSda3cEsJLykilCIuVBIbr2GHR8S3I3uuQldR2u1YFYs7wTIoWD
TmGSbORoulNFj22pb9hDql6VrZiPA6ft7E+I/dqwXUzs39NFumhoP22bc0wj
w/NNxFXaVpsLRbQqqSroAQQyl7yusCexit7wXDcBUcjh6TiMaD+D4xfNSck0
adtU6B+dUz2gwJdylxAGW6O467Zo8g21yvSByq5CM0kcXJYSHdZpTu2cxQ8J
/wcjxKdQ/Qqk2Mg64M0AbDmdXDBVThVLvRVhwkl+YzhHUOMCtp0hFqXvJslj
oBVQGufSboI2PsR1OKZ6QYXKnOfTenzkpTZsbGiyKAeJnIpBq2n1p06Y0bjn
iaTwuAsfoCDEAHtid7K+1cvb6jTKCSyLZFl5aT6sYQbeaaCjTd5EOYiOeYZN
9qLMBUnOpxY51HuWWwU0fMBocQ5pvAHSs6or9IbaoB0fPBMl6YtT6lRNAj2p
p7uSphT1sHFpET2vj2iP4qVSBpAZVQZy6diJ6HSJCVZ6r7M4cl0nZ9vQt2d8
S4ogIMeEGY+/Zw6WB0mk9uxHzmzfugC5RfQy9+HxHaXCdNtBk2oyaObggSy6
rd28neKdjmhpEwsIzJYBVQ5oHNdEMd851s5Mw0aT8BWef9wy+dr1GoTlFukm
6OSJi4pOoA2KUWzAu7tLmhDGpSxqRwkfaxnUdMw9IyRALgV6SGHTHA5uREv9
mcw3Cf90csUPxFXMHvMwRNFNKifq03L27uY66DtqvS8grcqgAx7vpPfjSpwu
6kx44PNXOd+vNpECRUJTyvyky5V4I1AslSiWMdXaUgtv9T97R3acRSOSKA8T
f0qJBHJ5isiBiaygix3kJ6r5S0mY9EBW9gKzo9FgvqX4apB/xwTNs2ysabNq
ukMRk7xsFnwwcM7t1lSBVA7cSWEKtsNVJvN38RZSNX1pfNAOtISMvEO7iFLy
zAPXgG/g53QZNDbdoQyCg+4OhWER3QQ9fUL+h2UQSAncRyOj3j2gi+zlB+bA
T7QfuAGkQI7tHN89majCJ84+3Nd10RbqY+m60fYC7xc3J7edMffvdaz1mX2c
Z7GzChqpCTNQG++Mk6tGcrZJlEcg8yFfV93jyk+CuBwFNeC50egj6kZBwznn
wJN+kV4t1zbgyVjO/x2m/bmmg13tXVW1oR4FEpeL5GwTuC0mw92uOHvAuevc
S0NtjUL1I9dOCL2epO5+DzCQlru6w7ykliFYz63XKQQhTktmjAQl86Cp8lBm
+ZCuv8K4Zs+KL8OGcCW1wdtMZ9sp/F8gA0wso0Vltl7f8oO40SmmFXStJW49
c3mjgUddUeE4cOXXj3Yy9lbyJ8dJ6rClK9V8UnhVvRr9WCUlNkqtFTOCzo6L
KRa0Hm6oZJL5H+2aK2Rhru0GYCzltSde0enpZHEeFwHtflduSuXrfGcEN1UE
6Tvx88DzGO3DNT7tr7gSUUDeKUnVr8AQK7XLo+pr2lXLR22x2Ef6MAdtl8c5
HiQDmjL1XE7nNcggyXlpsOOAkj265JeSYuK6VuLlWfEVMJR2iWW4DRooIPHw
CdofoWRPU36XWKjG0Omm5KX34FgpfhLNTr/fY2u3tX4IblmIrk2qP/Yd8t+5
XSAbsJaYTTfS7kXKB+1dL4MFk/gjeWdmmOKQo85ppnh5FImvjasDFgenZtGf
sU/egp0woV2fF2m+tvfuEueTwE6NOeUVVDkT0UGd2xtJ2Pb+bx3KtTaSbe1c
d7Hdha/PpeGsEBydQvRBTrhrDpACc+XGrmT6EDNRjwXYnKw6nVk2LTQG7gVC
bodZ0UQ8PdwWtGPfpLFfl30rxjA1UD4ClsvDhGLEh0lSkbpIVQ3EuXO7kuQc
7vGmHVjFKEGpmG1LEJhz0GakJ11FEHKe3LOX1OJL6EU6yKkqr/3zQg0mA0HC
5T1Vwje75Q3XPavSz4lFQKbFmjfbSk2HTagxLo6aN/lSksaskIHsXE5dJoh5
u64kQf6Gy83UzCmwmIHoGxwd6QF+5qwObncdNZfZuJ7urW3J6UAeTmWDmklE
Q2w1P4tDSr7CJDTGPa3KnT9kEaiLHnsHKDR03PGyPvJCcxKnK1i8ZzloRegg
oh/m0s8WjGqsG6R7ucC+nkfdNsNO3eTnUEBx18otaLgo3kqWEHfsAxvalMg6
YNVdDBCfmiItTiy3pok70HW6ODAL1siIwsQW9tuzy+nlT+eaIvnq5Ihuz6nq
TjxF34pOPlfxNNS7Pxjvmntk04DHL3FAf5MV2r3saJIG11S1J5l+YmPtWg17
UmoQ9tIQd+o8TVRAtasDpKECS+o3RWKwbTSTixA8rza+Rl+7fAnEywp2W1Wm
jseSbTuXpGRK6pUQcg89yWkpX5vM9QIW7010DwKHkqKvejczdPxAGP5wCr+K
QieUMBjRV0lwsU6jSH7HovJ3uy9I0AtAogzZLpxB6At9vk0CEgh9nhrz96FO
udwhCDr5m+iOjl/2Q6OiWOA9KI0zINWTqsGMHcjh2pJ+L1bUUebbIP7TLfLa
uQ2SiR7jEJWi38Xu/EJDXB0P3h0ps9QyilP/3Mh3REVOxfTeBko49prvjK+D
mRXVjJsrKS4S38WawELCFfmN6aLaySNeimrPfoJex+ih/fajiLOetW9MZ0Zg
KLgGSCFW8vX63fQlwyX1nzieqH9BvRCjMViAoq5/twds13vtUd9rvcFiYRZd
XhArS6wKd0FFPPsbJOM3us9Kr36uFQeDnbh+Q02cULXN7YaCHCvg3ZSzEr7t
fKFD/YeFSZJr37/G6aDlIJq4KSq5zJWouqRJxyDaQOE/2MV9+maFSjtQgeTx
DxwjuTNSpRI1f5/ra9KyJYjwSdGhPupneJifnUricLMzW1OTUK5I/sbFgk5j
ihwqqAPuHmri9Ld1ulW9kdooxG5aMdVZR6FlfReXRreq5m2n/x606C0N6GSi
WxoUbBbV0rWeyX0XeBXHVgeRJokL5PO6D0JViml2F9/3mdCOcTj9fxD5WqAY
X/0j6RTxl0PoedmRUr9RCvIxiXwyVp0yqqMKVFyWN31bZpsKzucukE72HY0+
iu0OOGdYqb9Ki8a73LDl7DS+KCdKjY/dRiGKfFESLhZ0cYlmCPdVfhcGnwN0
pnaa96Xk7o36LXLy5X9lObkbJf9fUv4XkZSdLRRO9UewNap6eqXZ9pEHFhhM
9/eAYv3FN9p8LPTYdTmX3/q8RgdHACWyFPXoFlJarxelTTFfbvqj2Ya3p4H0
mt/yl96nKRzr2enLKKR82mei38E7d17D1o3HSshi8IK+bigkc91H3bcu7a0K
rltzeWUeRrnJ2vODQddRILdckFjvjum3DmYv/ODdJSy4/v3X64UGkU823CGq
1R+yg0eRv5HQYzKuN2S28YhLV3w07Z7pJx0G6SJOOegK6KZCE5xu0GFVzofR
4NiO85Kilv798WDc4/mr41cReb7s3tf7iOV0cNK5pppSxC1fzEE9GtytPBrZ
ibzQEljCyFGPpt1tiH0d4iEwSd423MvH+UiyXdebMGb9rTK+fEgkNovMvPkO
EMgLKDWcDyK1saZY0K1vnFu880xgMRtXL8StQO57NpSWXXo4PuooWL/1zHTD
vKHGOIiGiSs85MTBR65kgKmx86igaT+evZl+oTh8/teIyw4v+5ivO7NVvyBN
qyro16GF0QXRDy5O7MLgWjeMRuiN3lR+FwgT1Y4jk0MCGL4Ybsed50GNmo5D
V3Ox164Thgv4iGh8qNtZlxXfuJBvN0Mtiv0OKW2dmUhzDTRzUZy3qsKFRX7D
kqwbvBlcUBRJjtq6u4yUB3qFqSL0bTu0Zd7eLKWZEV0qHF5o9pjxQ7fzI6fh
aLVo+FPOTBNmgOgf+qUnJV+8OjkMKP/0P0dGPgDabxKR4hbZLSnDnBNKPPo+
YTnZJS29hFMjJahX6KSnPIyA8LpbI9fkzaua+Zm7nGX6lrpxSX1RP4dX65DC
+/8eO3/juvjHlyE8UiSXD03yHy+SHwKB0mWoSTo2g6bOEWz6SMKM7KPvL2Ud
89OslTLqPEBdLAay37hIrJeXM4nTUFk0MO+szVrcYEFUJU3smqO2BFtbqnRr
qk0+11q0ulsALx1FwKxr7VQ6JY2CW30Cgn6uHgztXU0RnqBHL9DQcmlsM5hp
xa4OyoXaO9zndPWgxgn3hyg0AkU01n51/h0W02XV0hffS2Q75FAu6h/dVtbN
19p1t7dEXWppVGWk+AxhpkyY0sTum96IdzIVxU0AEl/n5B+F5d2moJqhObV3
/Oz5vvcRadop0Ez4vBJZxzfqUi/g7RiF9EstgVekEJimtzGWumdQaYLT0w1n
xQ7M4nL26GpUdWEA+nr77VcXVvulHRAvpRYO27JQY2+60bDLJgMX+PH/PTke
qkdIKD91h0/ahZ6ZgaSOf0ivywG0uVIvud02rPhCcObsqcUM+aCAspOJGfVi
xB87R2HgHQpo9uthtIt7tiQFShrC572eoA+hJ3A5awotLiEsKYk3LkINu8Hj
ejbNcCJ+aTFftbXCnbz7NtWeWTNg7Nr5KChGQG9BqzBrd5J0gYQnTQvJvx6V
Vfyltc2u3qDA2C7ZQ4/6nL+689tWrhJH8W/Qz2J969jaTNn3YuP0OarioyTC
LPZpUE5DZ3h3S/PS3W1Vm7taSxhE+R3QfXN/m/BeyymSFGinm2eB/IANbjWx
UTV2HXrfJWh1LYQ11c343h8ZF290OvhjDqlM0BbGZdHTiib+Iy/OL4xrCHqL
4yTGvpUSBcEmXU/fpGvFiJ4bf4N+NbyG0bo0rfi2ebkHXQoFw0uQ9UaFXREY
VaRdQWQT5BkmFMrm1ZGJwPhA7PqGUMG4zpkhydxhmYtr8CtZR+4y2kePJvZD
cPdE7rKuYXep6JQy1qr1jKrbiAN2bKKeuYGZL21BZW/Dt5sO3jTbT9QVK5Zs
zenZkiL/ksbA36X8Xed+joVo06fHR9IqTPrd9i8IONugCZh/S964qnHVVY4O
AV86ltwfMHjXKWaHcDNiue8XI2aczyyN4CyhkpNSh25x1XKkuOkc3faeFnzL
+zPl5qCN4vUbmCKqqXV0VUZ+i6kQGgXyF+MEtwK6wsE7UESJbW2Kaiv3aGmu
h8naukrXio3PgJ8vFWaNL32O+bmOZnE0YjBpVkmHMX/bB14ZUwpPlh50PNk6
uKR2oPblno7MQD87rxf2CW6otm0yTa+652IDEYWLBf1e3dtWm3yHwOqA5ZOn
bT5wXcjOmSbdbsVomyy1nGEGfHCREyvPpU4SyLoR73jVaaImZDZMjJgD2Lu+
WI/ffVdjaJ8NysPbVMifuLrQtjO+6a2i5nad3nbUE6KDBnGvGMyWmustfr43
JluZlAhZDTWpO6CbUrpHXIzUqnZtHYe3yAHDpBbctxk/St41OmIipHe6tFwA
fHev+WSPSXBfUvxCaeGSa896lQp6o5EWyWCni0GGyq5ANvDRp3oLT270tngE
nsqsowWgVIgxqAGRPPJ3BawCeO075sRX0tLLDl5b7a9Px2kfvkLddw+VW2Ol
xqzpXqYeOhGQRYhc6HiT86Cohe+7mA1eEPn1/HIidcusZzIDDseQkKZWFug9
8r0lYcQc4Ix5N0UgZUm4il5ViEYnwyihbkIvlWf3lcJhAgqJlYHg5u6SkzB3
YMj14W9V76yOLtLifATp8oEPdRaadlSj2JczkN3jaAGRQ05iLhxxunCIRXLd
bMPI+SyeztVwDJdZ7I25zmFnUJM6j3Pq5M6nMHUype0fLDv1zgKl7l5xUFq6
7OYQeMyg7kiuuCmP4y4i+iXZ2F17YrwK0FWAclBqbvMM00MCdYqL0nfcYM/o
5jZ14ujubrZNxhfiyfRhc0VcP9InfgguWPSJTWYtPtcgnlDk5Q2ffteQSHvn
oV7gG2TmNgj+7upJH4cN/AUYmPuL+SF0lx02p219xpUM3qRU90b9k3wBiTWS
38J6Cqa6qlHvTQTQj6nLZs2tWqt7eQMZukgUggDumrrVy834S8+HSNwMc6HO
fZkUBah6gU9hZMQ/JJ3Z19rRlWnck5SKok1KuCadIW+G5acKAWQNcWmG1kBN
2C6mT9IWUa61pKx8FW110EoxbMcZ8xH2qmkmgwiGGCLXJ8gRuIeELDw7B9oz
QxkBE7oH07dtpob6wMtkHs0ntzuuTGQVt6ttRU7t6ypwMCwoY6qoqs2qKoxI
fJ1EVFcbiQDSfQ846SYNfePlDr7k2RLWNVdZO2dCHKcZbNl8fE+XSUtORyrl
pXV0xBRsYDezJohR3N/MUqWf26HUxe427cxXh3fy+ImFhi1UQr8sPAgaNd0O
EqWIA1QuZWpYRcLKqLguidvfZ6YMJWXY/BYg30i/5FiNwuKotpSieT6+ZGFR
okJn6i2FBeIiXfGOjUZ7Ud8tXiurqa53KJAFmGk5Zl/uDypouVZahsrwXi+K
uq9reFcb42UOafuuTQdIfUm7+UPevG9nSIqrptnY10+fLoE82tkBrP2pH+Lp
Aj5yr9opz/O0gW+e3p4cHB9808Bt1rWekjFGQcbkJ92Q+2qdkoJ4NDk8PEQB
4b1n5P5rc5AqWhMvljeJG/ncdO2mTVpbti7Rpcf2cjcqM4BM7yjrMuVuKSTR
7Ip9lN4S54nExAvM1adcYBNbZKGBHVtnZ2Ftm4CiXWvCSmvpDEQEQ0u9Ukna
XyuBt+bEK7BL+ucON4NdJ3yJu4w0j0bqZFYlF2efznqT0ZdST22sFj5tMtf+
HFd8FhhYH8jA0jBkeLdCsocW5b7/7eIclJDaLNG63uqlwczuYBH19rW0rtUX
Xie+lfLoAtjXFQIFiurr5PDbi2P4z/Mj/M8p/ucVfvcM/3MC/zlewH9O8Ndj
Q5/o9oi9sDfz/uiLkWjea5Gcik8GAyvo56iCFOiDJ7lCQYsVXsiMrXYnYuVx
jZE0hkNfAbqBPLK9vwP5tXiz77Cyis2uO457gd6yjQYj8a+NFFbkrzD12jlu
6OLolAPr5bIibaiuQKq5/j8xjahvjXsnpOUNHb3fm7pEde9sVs3SSfJjWtd5
8r5dgWGJTbjem/zmJk/+CBuK5T/wzVlhvqXUQ+NNUbXUOuMjTJaaIvmC/19n
1OPlfVqi1nENsrxamDIXleIjKFgr2O9PWO9aSpQNbydnnrAA5QjdIkSfb4hB
FNVyNMpqsA+nmbmpbqawhSD1p1ZY1+EhXSrN7dCSL4YVpMFX+I3boyN56ave
UcjtI4Bb450KE9cNBfMu9fJi3xkJNu0ctEd2C9A9ele8z2NuK3mWZZ2iuOHM
jPsBpN6uX/nccY0b1es+9Bq1xEQI6HJbCaWFl+5oM8+PeUm4h/1GLK+db0+1
GrSxMSf4oRlP6D4P4mP3TEqJtSSddIvpCZTSVN8IZDyla6QYOtwZf1YPx+GW
uO/H9Ogbd30wxV0WrObRmYldM1YvSgawx2rxBO/+c1sJj/O3xKbxjSM79rfr
/rChs7zj3KHi/Ydweoo4VaRGeEitmDOo2Yl+yyhTYrkQNdIH/KjgL9C+EPtL
6pinRdFrYNm37qrz2viMBxs2gJUT2Q9+q/bDIf6Jh5IzNKjlgL9MRiENkSjt
Dlihdxnu/PybIsVq5Q7SoyjlpBtpGtJ+abA/YPCLOgQW6J0Lm7KzV5/haDdq
lT51l8qACWD1Qvfv2RkkGFoXAC7hjgcp4NkoWHipbv34xk4bEyv+Ht4ELr8P
+MhCpJKBMmSm9Q1WFEf3WaA7XXKPWOr1dlPxsSHjBbuArojfIazn4rApuZ3S
uCNWI+4gGOC2FsLquJWDSct2o/2lyaTo8yQSBF5G3TXk5Z5Op3RoRv8GkYmp
4BCvAAA=

-->

</rfc>
