<?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-ietf-radext-deprecating-radius-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="Deprecating RADIUS">Deprecating Insecure Practices in RADIUS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-radext-deprecating-radius-00"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>FreeRADIUS</organization>
      <address>
        <email>aland@freeradius.org</email>
      </address>
    </author>
    <date year="2023" month="November" day="07"/>
    <area>Internet</area>
    <workgroup>RADEXT Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>RADIUS crypto-agility was first mandated as future work by RFC 6421.  The outcome of that work was the publication of RADIUS over TLS (RFC 6614) and RADIUS over DTLS (RFC 7360) as experimental documents.  Those transport protocols have been in wide-spread use for many years in a wide range of networks.  They have proven their utility as replacements for the previous UDP (RFC 2865) and TCP (RFC 6613) transports.  With that knowledge, the continued use of insecure transports for RADIUS has serious and negative implications for privacy and security.</t>
      <t>This document formally deprecates using the User Datagram Protocol (UDP) and of the Transmission Control Protocol (TCP) as transport protocols for RADIUS. These transports are permitted inside of secure networks, but their use in those networks is still discouraged.  For all other environments, the use of secure transports such as IPsec or TLS is mandated.  We also discuss additional security issues with RADIUS deployments, and give recommendations for practices which increase security and privacy.</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-ietf-radext-deprecating-radius/"/>.
      </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/deprecating-radius.git"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The RADIUS protocol <xref target="RFC2865"/> was first standardized in 1997, though its roots go back much earlier to 1993.  The protocol uses MD5 <xref target="RFC1321"/> to sign some packets types, and to obfuscate certain attributes such as User-Password.  As originally designed, Access-Request packets were entirely unauthenticated, and could be trivially spoofed as discussed in <xref target="RFC3579"/> Section 4.3.2.  In order to prevent such spoofing, that specification defined the Message-Authenticator attribute (<xref target="RFC3579"/> Section 3.2) which allowed for packets to carry a signature based on HMAC-MD5.</t>
      <t>The state of MD5 security was discussed in <xref target="RFC6151"/>, which led to the state of RADIUS security being reviewed in <xref target="RFC6421"/> Section 3.  The outcome of that review was the remainder of <xref target="RFC6421"/>, which created crypto-agility requirements for RADIUS.</t>
      <t>RADIUS was historically secured with IPSec, as described in <xref target="RFC3579"/> Section 4.2:</t>
      <ul empty="true">
        <li>
          <t>To address the security vulnerabilities of RADIUS/EAP,
implementations of this specification SHOULD support IPsec
(RFC2401) along with IKE (RFC2409) for key management.  IPsec ESP
(RFC2406) with non-null transform SHOULD be supported, and IPsec
ESP with a non-null encryption transform and authentication
support SHOULD be used to provide per-packet confidentiality,
authentication, integrity and replay protection.  IKE SHOULD be
used for key management.</t>
        </li>
      </ul>
      <t>The use of IPSec allowed RADIUS to be sent privately, and securely, across the Internet.  However, experience showed that TLS was in many ways simpler for implementations and deployment than IPSec.  While IPSec required operating system support, TLS was an application-space library.  This difference, coupled with the wide-spread adoption of TLS for HTTPS ensures that it was often easier for applications to use TLS than IPSec.</t>
      <t>RADIUS/TLS <xref target="RFC6614"/> and RADIUS/DTLS <xref target="RFC7360"/> were then defined in order to meet the crypto-agility requirements of <xref target="RFC6421"/>.  RADIUS/TLS has been in wide-spread use for about a decade, including eduroam <xref target="EDUROAM"/>, and more recently OpenRoaming <xref target="OPENROAMING"/> and <xref target="I-D.tomas-openroaming"/>.  RADIUS/DTLS has seen less use across the public Internet, but it nonetheless has multiple implementations.</t>
      <t>As of the writing of this specification, RADIUS/UDP is still widely used, even though it depends on MD5 and "ad hoc" constructions for security.  While MD5 has been broken, it is a testament to the design of RADIUS that there have been (as yet) no attacks on RADIUS Authenticator signatures which are stronger than brute-force.</t>
      <t>However, the problems with MD5 means that if a someone can view unencrypted RADIUS traffic, even a hobbyist attacker can crack all possible RADIUS shared secrets of eight characters or less.  Such attacks can also result in compromise of all passwords carried in the User-Password attribute.</t>
      <t>Even if a stronger packet signature method was used as in <xref target="RFC6218"/>, it would not fully address the issues with RADIUS.  Most information in RADIUS is sent in clear-text, and only a few attributes are hidden via obfuscation methods which rely on more "ad hoc" MD5 constructions.  The privacy implications of this openness are severe.</t>
      <t>Any observer of non-TLS RADIUS traffic is able to obtain a substantial amount of personal identifiable information (PII) about users.  The observer can tell who is logging in to the network, what devices they are using, where they are logging in from, and their approximate location (usually city).  With location-based attributes as defined in <xref target="RFC5580"/>, a users location may be determined to within 15 or so meters outdoors, and with "meter-level accuracy indoors" <xref target="WIFILOC"/>.  An observer can also use RADIUS accounting packets to determine how long a user is online, and to track a summary of their total traffic (upload and download totals).</t>
      <t>When RADIUS/UDP is used across the public Internet, the location of individuals can potentially be tracked in real-time (usually 10 minute intervals), to within 15 meters.  Their devices can be identified, and tracked.  Any passwords they send via the User-Password attribute can be be compromised.  Even using CHAP-Password offers minimal protection, as the cost of cracking the underlying password is similar to the cost of cracking the shared secret.  MS-CHAP (<xref target="RFC2433"/> and <xref target="RFC2759"/>) is significantly worse for security, as it can be trivially cracked with minimal resources even if the shared secret is not known (<xref target="ms-chap"/>).</t>
      <t>The implications for security and individual safety are large, and negative.</t>
      <t>These issues are only partly mitigated when the authentication methods carried within RADIUS define their own processes for increased security and privacy.  For example, some authentication methods such EAP-TLS, EAP-TTLS, etc. allow for User-Name privacy and for more secure transport of passwords via the use of TLS.  The use of MAC address randomization can limit device information identification to a particular manufacturer, instead of to a unique device.</t>
      <t>However, these authentication methods are not always used, or are not always available.  Even if these methods were used ubiquitously, they do not protect all of the information which is publicly available over RADIUS/UDP or RADIUS/TCP transports.  And even when TLS-based EAP methods are used, implementations have historically often skipped certificate validation, leading to password compromise (<xref target="SPOOFING"/>).  In many cases, users were not even aware that the server certificate was incorrect or spoofed, which meant that there was no way for the user to detect that anything was wrong.  Their passwords were simply handed to a spoofed server, with little possibility for the user to take any action to stop it.</t>
      <t>It is no longer acceptable for RADIUS to rely on MD5 for security.  It is no longer acceptable to send device or location information in clear text across the wider INternet.  This document therefore deprecates insecure uses of RADIUS, and mandates the use of secure TLS-based transport layers.  We also discuss related security issues with RADIUS, and give many recommendations for practices which increase security and privacy.</t>
      <section anchor="simply-using-ipsec-or-tls-is-not-enough">
        <name>Simply using IPSec or TLS is not enough</name>
        <t>The use of a secure transport such as IPSec or TLS ensures complete privacy and security for all RADIUS traffic.  An observer is limited to knowing rough activity levels of a client or server.  That is, an observer can tell if there are a few users on a NAS, or many users on a NAS.  All other information is hidden from all observers.  However, it is not enough to say "use IPSec" and then move on to other issues.  There are many issues which can only be addressed via an informed approach.</t>
        <t>For example it is possible for an attacker to record the session traffic, and later crack the TLS session key or IPSec parameters.  This attack could comprise all traffic sent over that connection, including EAP session keys.  If the cryptographic methods provide forward secrecy (<xref target="RFC7525"/> Section 6.3), then breaking one session provides no information about other sessions.  As such, it is RECOMMENDED that all cryptographic methods used to secure RADIUS conversations provide forward secrecy.  While forward secrecy will not protect individual sessions from attack, it will prevent attack on one session from being leveraged to attack other, unrelated, sessions.</t>
        <t>AAA servers should minimize the impact of such attacks by using a total throughput (recommended) or time based limit before replacing the session keys.  The session keys can be replaced though a process of either rekeying the existing connection, or by opening a new connection and deprecating the use of the original connection.  Note that if the original connection if closed before a new connection is open, it can cause spurious errors in a proxy environment.</t>
        <t>The final attack possible in a AAA system is where one party in a AAA conversation is compromised or run by a malicious party.  This attack is made more likely by the extensive use of RADIUS proxy forwarding chains.  In that situation, every RADIUS proxy has full visibility into, and control over, the traffic it transports.  The solution here is to minimize the number of proxies involved, such as by using Dynamic Peer Discovery (<xref target="RFC7585"/>.</t>
        <t>There are many additional issues on top of simply adding a secure transport. The rest of this document addresses those issues in detail.</t>
      </section>
      <section anchor="overview">
        <name>Overview</name>
        <t>The rest of this document begins a summary of issues with RADIUS, and shows just how trivial it is to crack RADIUS/UDP security.  We then mandate the use of secure transport, and describe what that requirement means in practice.  We give recommendations on how current systems can be migrated to using TLS.  We give suggestions for increasing the security of existing RADIUS transports, including a discussion of the authentication protocols carried within RADIUS.  We conclude with privacy and security considerations.</t>
        <t>As IPSec has been discussed previously in the context of RADIUS, we do not discuss it in detail to it here, other than to say it is an acceptable solution for securing RADIUS traffic.  As the bulk of the current efforts are focused on TLS, this document likewise focuses on TLS.  However, all of the issues raised here about the RADIUS protocol also apply to IPSec transport.</t>
        <t>While this document tries to be comprehensive, it is necessarily imperfect.  There may be issues which should have been included, but which were missed due to oversight or accident.  Any reader should be aware that there are good practices which are perhaps not documented here, and bad behaviors which are likewise not forbidden.</t>
        <t>There is also a common tendency to suggest that a particular practice is "allowed" by a specification, simply because the specification does not forbid that practice.  This belief is wrong.  That is, a behavior which is not mentioned in the specification cannot honestly be said to be "permitted" or "allowed" by that specification.  Instead, the correct description for such behaviors is that they are not forbidden.  In many cases, documents such as <xref target="RFC5080"/> are written to both correct errors in earlier documents, and to address harmful behaviors have been seen in practice.</t>
        <t>By their very nature, documents include a small number of permitted, required, and/or forbidden behaviors.  There are a much larger set of behaviors which are undefined.  That is, behaviors which are neither permitted nor forbidden.  Those behaviors may be good or bad, independent of what the specification says.</t>
        <t>Outside of published specifications, there is also a large set of common practices and behaviors which have grown organically over time, but which have not been written into a specification.  These practices have been found to be valuable by implementers and administrators.  Deviations from these practices generally result in instabilities and incompatibilities between systems.  As a result, implementers should exercise caution when creating new behaviors which have not previously been seen in the industry.  Such behaviors are likely to be wrong.</t>
        <t>It is RECOMMENDED that implementations follow widely accepted practices which have been proven to work, even if those practices are not written down in a public specification.  Failure to follow common industry practices usually results in interoperability failures.</t>
      </section>
    </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>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>
        </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 Transport Control Protocol <xref target="RFC6613"/></t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>RADIUS/TLS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>RADIUS over the Transport Layer Security protocol <xref target="RFC6614"/></t>
        </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>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 to RADIUS/TLS and/or RADIUS/DTLS.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>NAS</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Network Access Server, which is a RADIUS client.</t>
        </li>
      </ul>
    </section>
    <section anchor="overview-of-issues-with-radius">
      <name>Overview of issues with RADIUS</name>
      <t>There are a large number of issues with RADIUS.   The most serious is that RADIUS sends most information "in the clear", with obvious privacy implications.</t>
      <t>Further, MD5 has been broken for over a decade, as summarized in <xref target="RFC6151"/>.  For traffic sent across the Internet, no protocol should depend on MD5 for security.  Even if MD5 was not broken, computers have gotten substantially faster in the past thirty years.  This speed increase makes it possible for the average hobbyist to perform brute-force attacks to crack even seemingly complex shared secrets.</t>
      <t>We address each of these issues in detail below.</t>
      <section anchor="information-is-sent-in-clear-text">
        <name>Information is sent in Clear Text</name>
        <t>Other than a few attributes such as User-Password, all RADIUS traffic is sent "in the clear".  The resulting data exposure has a large number of privacy issues.  We refer to <xref target="RFC6973"/>, and specifically to Section 5 of that document for detailed discussion.  RADIUS/UDP and RADIUS/TCP are vulnerable to all of the issues raised by <xref target="RFC6973"/>.</t>
        <t>There are clear privacy and security information with sending user identifiers, and user locations <xref target="RFC5580"/> in clear-text across the Internet.  As such, the use of clear-text protocols across insecure networks is no longer acceptable.</t>
      </section>
      <section anchor="md5-has-been-broken">
        <name>MD5 has been broken</name>
        <t>Attacks on MD5 are summarized in part in <xref target="RFC6151"/>. While there have not been many new attacks in the decade since <xref target="RFC6151"/> was published, that does not mean that further attacks do not exist.  It is more likely that no one is looking for new attacks.</t>
        <t>It is reasonable to expect that new research can further break MD5, but also that such research may not be publicly available.</t>
      </section>
      <section anchor="complexity-of-cracking-radius-shared-secrets">
        <name>Complexity of cracking RADIUS shared secrets</name>
        <t>The cost of cracking a a shared secret can only go down over time as computation becomes cheaper.  The issue is made worse because of the way MD5 is used to sign RADIUS packets.  The attacker does not have to calculate the hash over the entire packet, as the hash prefix can be calculated once, and then cached.  The attacker can then begin the attack with that hash prefix, and brute-force only the shared secret portion.</t>
        <t>At the time of writing this document, an "off the shelf" commodity computer can calculate at least 100M MD5 hashes per second.  If we limit shared secrets to upper/lowercase letters, numbers, and a few "special" characters, we have 64 possible characters for shared secrets.  Which means that for 8-character secrets, there are 2^48 possible combinations.</t>
        <t>The result is that using consumer-grade machine, it takes approximately 32 days to brute-force the entire 8 octet / 64 character space for shared secrets.  The problem is even worse when graphical processing units (GPUs) are used. A high-end GPU is capable of performing more than 64 billion hashes per second.  At that rate, the entire 8 character space described above can be searched in approximately 90 minutes.</t>
        <t>This is an attack which is feasible today for a hobbyist. Increasing the size of the character set raises the cost of cracking, but not enough to be secure.  Increasing the character set to 93 characters means that the hobbyist using a GPU could search the entire 8 character space in about a day.</t>
        <t>Increasing the length of the shared secret has a larger impact on the cost of cracking.  For secrets ten characters long, one GPU can search a 64-character space in about six months, and a 93 character space would take approximately 24 years.</t>
        <t>This brute-force attack is also trivially parallelizable.  Nation-states have sufficient resources to deploy hundreds to thousands of systems dedicated to these attacks.  That realization means that a "time to crack" of 24 years is simply expensive, but is not particularly difficult.  A thousand commodity CPUs are enough to reduce the crack time from 24 years to a little over a week.</t>
        <t>Whether the above numbers are precise, or only approximate is immaterial.  These attacks will only get better over time.  The cost to crack shared secrets will only go down over time.</t>
        <t>Even worse, administrators do not always derive shared secrets from secure sources of random numbers.  The "time to crack" numbers given above are the absolute best case, assuming administrators follow best practices for creating secure shared secrets.  For shared secrets created manually by a person, the search space is orders of magnitude smaller than the best case outlined above.  Rather than brute-forcing all possible shared secrets, an attacker can create a local dictionary which contains common or expected values for the shared secret.  Where the shared secret used by an administrator is in the dictionary, the cost of the attack can drop by multiple orders of magnitude.</t>
        <t>It should be assumed that a hobbyist attacker with modest resource can crack most shared secrets created by people in minutes, if not seconds.</t>
        <t>Despite the ease of attacking MD5, it is still a common practice for some "cloud" and other RADIUS providers to send RADIUS/UDP packets over the Internet "in the clear".  It is also common practice for administrators to use "short" shared secrets, and to use shared secrets created by a person, or derived from a limited character set.  Theses practice are easy to implement and follow, but they are highly insecure and SHOULD NOT be used.</t>
        <t>Further requirements in shared secrets are given below in <xref target="shared-secrets"/>.</t>
      </section>
      <section anchor="tunnel-coa">
        <name>Tunnel-Password and CoA-Request packets</name>
        <t>There are a number of security problems with the Tunnel-Password attribute, at least in CoA-Request and Disconnect-Request packets.  A full explanation requires a review of the relevant specifications.</t>
        <t><xref target="RFC5176"/> Section 2.3 describes how to calculate the Request Authenticator field for these packets:</t>
        <artwork><![CDATA[
Request Authenticator

   In Request packets, the Authenticator value is a 16-octet MD5
   [RFC1321] checksum, called the Request Authenticator.  The
   Request Authenticator is calculated the same way as for an
   Accounting-Request, specified in [RFC2866].
]]></artwork>
        <t>Where <xref target="RFC2866"/> Section 3 says:</t>
        <artwork><![CDATA[
   The NAS and RADIUS accounting server share a secret.  The Request
   Authenticator field in Accounting-Request packets contains a one-
   way MD5 hash calculated over a stream of octets consisting of the
   Code + Identifier + Length + 16 zero octets + request attributes +
   shared secret (where + indicates concatenation).  The 16 octet MD5
   hash value is stored in the Authenticator field of the
   Accounting-Request packet.
]]></artwork>
        <t>Taken together, these definitions mean that for CoA-Request packets, all attribute obfuscation is calculated with the Reply Authenticator being all zeroes.  In contrast for Access-Request packets, the Request Authenticator is mandated there to be 16 octets of random data.  This difference has negative impacts on security.</t>
        <t>For Tunnel-Password, <xref target="RFC5176"/> Section 3.6 allows it to appear in CoA-Request packets:</t>
        <artwork><![CDATA[
   ...
   Change-of-Authorization Messages
   
   Request   ACK      NAK   #   Attribute
   ...
   0+        0        0    69   Tunnel-Password (Note 5)
   ...
   (Note 5) When included within a CoA-Request, these attributes
   represent an authorization change request.  Where tunnel attributes
   are included within a successful CoA-Request, all existing tunnel
   attributes are removed and replaced by the new attribute(s).
]]></artwork>
        <t>However, <xref target="RFC2868"/> Section 3.5 says that Tunnel-Password is encrypted with the Request Authenticator:</t>
        <artwork><![CDATA[
   Call the shared secret S, the pseudo-random 128-bit Request
   Authenticator (from the corresponding Access-Request packet) R,
]]></artwork>
        <t>The assumption that the Request Authenticator is random data is true for Access-Request packets.  That assumption is not true for CoA-Request packets.</t>
        <t>That is, when the Tunnel-Password attribute is used in CoA-Request packets, the only source of randomness in the obfuscation is the salt, as defined in <xref target="RFC2868"/> Section 3.5;</t>
        <artwork><![CDATA[
 Salt
   The Salt field is two octets in length and is used to ensure the
   uniqueness of the encryption key used to encrypt each instance of
   the Tunnel-Password attribute occurring in a given Access-Accept
   packet.  The most significant bit (leftmost) of the Salt field
   MUST be set (1).  The contents of each Salt field in a given
   Access-Accept packet MUST be unique.
]]></artwork>
        <t>This chain of unfortunate definitions means that there is only 15 bits of entropy in the Tunnel-Password obfuscation (plus the secret).  It is not known if this limitation makes it sufficiently easy for an attacker to determine the contents of the Tunnel-Password.  However, such limited entropy cannot be a good thing, and it is one more reason to deprecate RADIUS/UDP.</t>
        <t>Due to the above issues, implementations and new specifications SHOULD NOT permit obfuscated attributes to be used in CoA-Request or Disconnect-Request packets.</t>
      </section>
    </section>
    <section anchor="all-short-shared-secrets-have-been-compromised">
      <name>All short Shared Secrets have been compromised</name>
      <t>Unless RADIUS packets are sent over a secure network (IPsec, TLS, etc.), administrators SHOULD assume that any shared secret of 8 characters or less has been immediately compromised.  Administrators SHOULD assume that any shared secret of 10 characters or less has been compromised by an attacker with significant resources.  Administrators SHOULD also assume that any private information (such as User-Password) which depends on such shared secrets has also been compromised.</t>
      <t>In conclusion, if a User-Password, or CHAP-Password, or MS-CHAP password has been sent over the Internet via RADIUS/UDP or RADIUS/TCP in the last decade, you should assume that underlying password has been compromised.</t>
    </section>
    <section anchor="deprecating-insecure-transports">
      <name>Deprecating Insecure transports</name>
      <t>The solution to an insecure protocol which uses thirty year-old cryptography is to deprecate the use insecure cryptography, and to mandate modern cryptographic transport.</t>
      <section anchor="deprecating-udp-and-tcp-as-transports">
        <name>Deprecating UDP and TCP as transports</name>
        <t>RADIUS/UDP and RADIUS/TCP MUST NOT be used outside of secure networks.  A secure network is one which is known to be safe from eavesdroppers, attackers, etc.  For example, if IPsec is used between two systems, then those systems may use RADIUS/UDP or RADIUS/TCP over the IPsec connection.</t>
        <t>Similarly, RADIUS/UDP and RADIUS/TCP could be used in secure management networks.  However, administrators should not assume that such uses are always secure.  An attacker who breaks into a key system could use that access to view RADIUS traffic, and thus be able to attack it.  Similarly, a network misconfiguration could result in the RADIUS traffic being sent over an insecure network.</t>
        <t>Neither the RADIUS client nor the RADIUS server would be aware of any network misconfiguration (e.g. such as could happen with IPSec).  Neither the RADIUS client nor the RADIUS server would be aware of any attacker snooping on RADIUS/UDP or RADIUS/TCP traffic.</t>
        <t>In contrast, when TLS is used, the RADIUS endpoints are aware of all security issues, and can enforce any necessary security policies.</t>
        <t>Using RADIUS/UDP and RADIUS/TCP in any environment is therefore NOT RECOMMENDED.</t>
      </section>
      <section anchor="mandating-secure-transports">
        <name>Mandating Secure transports</name>
        <t>All systems sending RADIUS packets outside of secure networks MUST use either IPSec, RADIUS/TLS, or RADIUS/DTLS. It is RECOMMENDED, for operational and security reasons that RADIUS/TLS or RADIUS/DTLS are preferred over IPSec.</t>
        <t>Unlike (D)TLS, use of IPSec means that applications are generally unaware of transport-layer security. Any problem with IPSec such as configuration issues, negotiation or re-keying problems are typically  presented to the RADIUS servers as 100% packet loss.  These issues may occur at any time, independent of any changes to a RADIUS application using that transport.  Further, network misconfigurations which remove all security are completely transparent to the RADIUS application: packets can be sent over an insecure link, and the RADIUS server is unaware of the failure of the security layer.</t>
        <t>In contrast, (D)TLS gives the RADIUS application completely knowledge and control over transport-layer security.  The failure cases around (D)TLS are therefore often clearer, easier to diagnose and faster to resolve than failures in IPSec.   For example, a failed TLS connection may return a "connection refused" error to the application, or any one of many TLS errors indicating which exact part of the TLS conversion failed during negotiation.</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"/>.  For clarity, we repeat the text of <xref target="RFC7360"/> here, with some minor modifications to update references, but not content.</t>
        <t>Section 4.2 of <xref target="RFC6421"/> makes a number of recommendations about security properties of new RADIUS proposals.  All of those recommendations are satisfied by using TLS or DTLS as the transport layer.</t>
        <t>Section 4.3 of <xref target="RFC6421"/> makes a number of recommendations about backwards compatibility with RADIUS.  <xref target="RFC7360"/> Section 3 addresses these concerns in detail.</t>
        <t>Section 4.4 of <xref target="RFC6421"/> recommends that change control be ceded to the IETF, and that interoperability is possible.  Both requirements are satisfied.</t>
        <t>Section 4.5 of <xref target="RFC6421"/> requires that the new security methods apply to all packet types.  This requirement is satisfied by allowing TLS and DTLS to be used for all RADIUS traffic.  In addition, <xref target="RFC7360"/> Section 3, addresses concerns about documenting the transition from legacy RADIUS to crypto-agile RADIUS.</t>
        <t>Section 4.6 of <xref target="RFC6421"/> requires automated key management.  This requirement is satisfied by using TLS or DTLS key management.</t>
        <t>We can now finalize the work began in <xref target="RFC6421"/>.  This document updates <xref target="RFC2865"/> et al. to state that any new RADIUS specification MUST NOT introduce new "ad hoc" cryptographic primitives to sign packets as was done with the Request / Response Authenticator, or to obfuscate attributes 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 the RADIUS protocol is forbidden.</t>
        <t>We recognize that RADIUS/UDP will still be in use for many years, and that new standards may require some modicum of privacy.  As a result, it is a difficult choice to forbid the use of these constructs.  If an attack is discovered which breaks RADIUS/UDP (e.g. by allowing attackers to forge Request Authenticators or Response Authenticators, or by allowing attackers to de-obfuscate User-Password), the solution would be to simply deprecate the use of RADIUS/UDP entirely.  It would not be acceptable to design new cryptographic primitives in an attempt to "secure" RADIUS/UDP.</t>
        <t>All new security and privacy requirements in RADIUS MUST be provided by a secure transport layer such as TLS or IPSec.  As noted above, simply using IPsec is not always enough, as the use (or not) of IPsec is unknown to the RADIUS application.</t>
        <t>The restriction forbidding new cryptographic work in RADIUS does not apply to the data being transported in RADIUS attributes.  For example, a new authentication protocol could use new cryptographic methods, and would be permitted to be transported in RADIUS.  This protocol could be a new EAP method, or it could use updates to TLS. In those cases, RADIUS serves as a transport layer for the authentication method.  The authentication data is treated as opaque data for the purposes of Access-Request, Access-Challenge, etc. packets.  There would be no need for RADIUS to define any new cryptographic methods in order to transport this data.</t>
        <t>Similarly, 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.  However, due to the issues noted above in <xref target="tunnel-coa"/>, the Tunnel-Password obfuscation method MUST NOT be used for packets other than Access-Request, Access-Challenge, and Access-Accept.  If the attribute needs to be send in another type of packet, then the protocol design is likely wrong, and needs to be revisited.  It is again a difficult choice to forbid certain uses of the Tunnel-Password obfuscation method, but we believe that doing so is preferable to allowing sensitive data to be obfuscated with less security than the original design intent.</t>
      </section>
    </section>
    <section anchor="migration-path-and-recommendations">
      <name>Migration Path and Recommendations</name>
      <t>We recognize that it is difficult to upgrade legacy devices with new cryptographic protocols and user interfaces.  The problem is made worse because the volume of RADIUS devices which are in use.  The exact number is unknown, and can only be approximated.  Our best guess is that at the time of this writing, there could be in the order of hundreds of thousands, if not millions of RADIUS/UDP devices in daily use.</t>
      <t>We therefore need to define a migration path to using secure transports.  We give a a number of migration steps which could be done independently.  We recommend increased entropy for shared secrets.  We also mandate the use of Message-Authenticator in all Access-Request packets for RADIUS/UDP and RADIUS/TCP.  Finally, where <xref target="RFC6614"/> Section 2.3 makes support for TLS-PSK optional, we suggest that RADIUS/TLS and RADIUS/DTLS implementations SHOULD support TLS-PSK.</t>
      <section anchor="shared-secrets">
        <name>Shared Secrets</name>
        <t><xref target="RFC2865"/> Section 3 says:</t>
        <ul empty="true">
          <li>
            <t>It is preferred that the secret be at least 16
octets.  This is to ensure a sufficiently large range for the
secret to provide protection against exhaustive search attacks.
The secret MUST NOT be empty (length 0) since this would allow
packets to be trivially forged.</t>
          </li>
        </ul>
        <t>This recommendation is no longer adequate, so we strengthen it here.</t>
        <t>RADIUS implementations MUST support shared secrets of at least 32 octets, and SHOULD support shared secrets of 64 octets.  Implementations MUST warn administrators that the shared secret is insecure if it is 10 octets or less in length.</t>
        <t>Administrators SHOULD use shared secrets of at least 24 octets, generated using a source of secure random numbers.   Any other practice is likely to lead to compromise of the shared secret, user information, and possibly of the entire network.</t>
        <t>Creating secure shared secrets is not difficult.  One solution is to use a simple script given below.  While the script is not portable to all possible systems, the intent here is to document a concise and simple method for creating secrets which are secure, and humanly manageable.</t>
        <ul empty="true">
          <li>
            <t>#!/usr/bin/env perl
use MIME::Base32;
use Crypt::URandom();
print join('-', unpack("(A4)*", lc encode_base32(Crypt::URandom::urandom(12)))), "\n";</t>
          </li>
        </ul>
        <t>This script reads 96 bits of random data from a secure source, encodes it in Base32, and then makes it easier for people to work with.  The generated secrets are of the form "2nw2-4cfi-nicw-3g2i-5vxq".  This form of secret will be accepted by all implementation which supports at least 24 octets for shared secrets.</t>
        <t>Given the simplicity of creating strong secrets, there is no excuse for using weak shared secrets with RADIUS.  The management overhead of dealing with complex secrets is less than the management overhead of dealing with compromised networks.</t>
        <t>Over all, the security analysis of shared secrets is similar to that for TLS-PSK.  It is therefore RECOMMENDED that implementors manage shared secrets with same the practices which are recommended for TLS-PSK, as defined in <xref target="RFC8446"/> Section E.7 and <xref target="RFC9257"/> Section 4.</t>
        <t>On a practical node, RADIUS implementers SHOULD provide tools for administrators which can create and manage secure shared secrets.  The cost to do so is minimal for implementors.  Providing such a tool can further enable and motivate administrators to use secure practices.</t>
      </section>
      <section anchor="message-authenticator">
        <name>Message-Authenticator</name>
        <t>The Message-Authenticator attribute was defined in <xref target="RFC3579"/> Section 3.2.  The "Note 1" paragraph at the bottom of <xref target="RFC3579"/> Section 3.2 required that Message-Authenticator be added to Access-Request packets when the EAP-Message as present, and suggested that it should be present in a few other situations.   Experience has shown that these recommendations are inadequate.</t>
        <t>Some RADIUS clients never use the Message-Authenticator attribute, even for the situations where the <xref target="RFC3579"/> text suggests that it should be used.  When the Message-Authenticator attribute is missing from Access-Request packets, it is often possible to trivially forge or replay those packets.</t>
        <t>For example, an Access-Request packet containing CHAP-Password but which is missing Message-Authenticator can be trivially forged.  If an attacker sees one packet such packet, it is possible to replace the CHAP-Password and CHAP-Challenge (or Request Authenticator) with values chosen by the attacker.  The attacker can then perform brute-force attacks on the RADIUS server in order to test passwords.</t>
        <t>This document therefore requires that RADIUS clients MUST include the Message-Authenticator in all Access-Request packets when UDP or TCP transport is used.</t>
        <t>In contrast, when TLS-based transports are used, the Message-Authenticator attribute serves no purpose, and can be omitted, even when the Access-Request packet contains an EAP-Message attribute.  Servers receiving Access-Request packets over TLS-based transports SHOULD NOT silently discard a packet if it is missing a Message-Authenticator attribute.  However, if the Message-Authenticator attribute is present, it still MUST be validated as discussed in <xref target="RFC7360"/> and <xref target="RFC3579"/>.</t>
      </section>
      <section anchor="recommending-tls-psk">
        <name>Recommending TLS-PSK</name>
        <t>Given the insecurity of RADIUS/UDP, the absolute minimum acceptable security is to use strong shared secrets.  However, administrator overhead for TLS-PSK is not substantially higher than for shared secrets, and TLS-PSK offers significantly increased security and privacy.</t>
        <t>It is therefore RECOMMENDED that implementations support TLS-PSK.  In some cases TLS-PSK is preferable to certificates.  It may be difficult for RADIUS clients to upgrade all of their interfaces to support the use of certificates, and TLS-PSK more closely mirrors the historical use of shared secrets, with similar operational considerations.</t>
        <t>Implementation and operational considerations for TLS-PSK are given in <xref target="I-D.ietf-radext-tls-psk"/>, and we do not repeat them here.</t>
      </section>
    </section>
    <section anchor="increasing-the-security-of-radius">
      <name>Increasing the Security of RADIUS</name>
      <t>While we still permit the use of UDP and TCP transports in secure environments, there are opportunities for increasing the security of RADIUS when those transport protocols are used.  The amount of personal identifiable information sent in packets should be minimized.  Information about the size, structure, and nature of the visited network should be omitted or anonymized.  The choice of authentication method also has security and privacy impacts.</t>
      <t>The recommendations here for increasing the security of RADIUS transports also applies when TLS is used.  TLS transports protect the RADIUS packets from observation by from third-parties.  However, TLS does not hide the content of RADIUS packets from intermediate proxies, such as ones uses in a roaming environment.  As such, the best approach to minimizing the information sent to proxies is to minimize the number of proxies which see the RADIUS traffic.</t>
      <t>Implementers and administrators need to be aware of all of these issues, and then make the best choice for their local network which balances their requirements on privacy, security, and cost.  Any security approach based on a simple "checklist" of "good / bad" practices is likely to result in decreased security, as compared to an end-to-end approach which is based on understanding the issues involved.</t>
      <section anchor="minimizing-personal-identifiable-information">
        <name>Minimizing Personal Identifiable Information</name>
        <t>One approach to increasing RADIUS privacy is to minimize the amount of PII which is sent in packets.  Implementers of RADIUS products and administrators of RADIUS systems SHOULD ensure that only the minimum necessary PII is sent in RADIUS.</t>
        <t>Where possible, identities should be anonymized (e.g. <xref target="RFC7542"/> Section 2.4).  The use of anonymized identities means that the the Chargeable-User-Identifier <xref target="RFC4372"/> should also be used.  Further discussion on this topic is below.</t>
        <t>Device information SHOULD be either omitted, or randomized.  e.g. MAC address randomization could be used on end-user devices.  The details behind this recommendation are the subject of ongoing research and development.  As such, we do not offer more specific recommendations here.</t>
        <t>Information about the visited network SHOULD be replaced or anonymized before packets are proxied outside of the local organization.  The attribute Operator-NAS-Identifier <xref target="RFC8559"/> can be used to anonymize information about NASes in the local network.</t>
        <t>Location information (<xref target="RFC5580"/> SHOULD either be omitted, or else it SHOULD be limited to the broadest possible information, such as country code. For example, <xref target="I-D.tomas-openroaming"/> says:</t>
        <ul empty="true">
          <li>
            <t>All OpenRoaming ANPs MUST support signalling of location information</t>
          </li>
        </ul>
        <t>This location information is required to include at the minimum the country code.  We suggest the country code SHOULD also be the maximum amount of location information which is sent over third-party networks.</t>
        <section anchor="chargeable-user-identity">
          <name>Chargeable-User-Identity</name>
          <t>Where the Chargeable-User-Identity (CUI) <xref target="RFC4372"/> is used, it SHOULD be unique per session.  This practice will help to maximize user privacy, as it will be more difficult to track users across multiple sessions.  Due to additional constraints which we will discuss below, we cannot require that the CUI change for every session.</t>
          <t>What we can do is to require that the home server MUST provide a unique CUI for each combination of user and visited network.  That is, if the same user visits multiple networks, the home server MUST provide different CUIs to each visited network for that user.  The CUI MAY be the same across multiple sessions for that user on one particular network.  The CUI MAY be the same for multiple devices used by that user on one particular network.</t>
          <t>We note that the MAC address is likely the same across multiple user sessions on one network.  Therefore changing the CUI offers little additional benefit, as the user can still be tracked by the unchanging MAC address.  Never the less, we believe that having a unique CUI per session can be useful, because there is ongoing work on increasing user privacy by allowing more MAC address randomization.  If we were to recommend that the CUI remain constant across multiple sessions, that would in turn negate much of the effort being put into MAC address randomization.</t>
          <t>One reason to have a constant CUI value for a user (or user devices) on one network is that network access providers may need to enforce limits on simultaneous logins.  Network providers may also need to correlate user behavior across multiple sessions in order to track and prevent abuse.  Both of these requirements are impossible if the CUI changes for every user session.</t>
          <t>The result is that there is a trade-off between user privacy and the needs of the local network.  While perfect user privacy is an admirable goal, perfect user privacy may also allow anonymous users to abuse the visited network.  The network would then likely simply refuse to provide network access.  Users may therefore have to accept some limitations on privacy, in order to obtain network access.</t>
          <t>We spend some time here in order to give recommendations for creating and managing of CUI.  We believe that these recommendations will help implementers satisfy the preceding requirements, while not imposing undue burden on the implementations.</t>
          <t>In general, the simplest way to track CUIs long term is to associate the CUI to user identity in some kind of cache or database.  This association could be created at the tail end of the authentication process, and before any accounting packets were received.  This association should generally be discarded after a period of time if no accounting packets are received.  If accounting packets are received, the CUI to user association should then be tracked along with the normal accounting data.</t>
          <t>The above method for tracking CUI works no matter how the CUI is generated.  If the CUI can be unique per session, or it could be tied to a particular user identity across a long period of time.  The same CUI could also be associated with multiple devices.</t>
          <t>Where the CUI is not unique for each session, the only minor issue is the cost of the above method is that the association is stored on a per-session basis when there is no need for that to be done.  Storing the CUI per session means that is it possible to arbitrarily change how the CUI is calculated, with no impact on anything else in the system.  Designs such as this which decouple unrelated architectural elements are generally worth the minor extra cost.</t>
          <t>For creating the CUI, that process should be done in a way which is scalable and efficient.  For a unique CUI per user, implementers SHOULD create a value which is unique both to the user, and to the visited network.  There is no reason to use the same CUI for multiple visited networks, as that would enable the tracking of a user across multiple networks.</t>
          <t>Before suggesting a method for creating the CUI, we note that <xref target="RFC4372"/> Section 2.1 defines the CUI as being of data type 'string' (<xref target="RFC8044"/> Section 3.5).  <xref target="RFC4372"/> Section 2.1 further suggests that the value of the CUI is interpreted as an opaque token, similar to the Class attribute (<xref target="RFC2865"/> Section 5.25).  Some organizations create CUI values which use the Network Access Identifier (NAI) format as defined in <xref target="RFC7542"/>.  This format can allow the home network to be identified to the visited network, where the User-Name does not contain a realm.  Such formats SHOULD NOT be used unless all parties involved have agreed to this behavior.</t>
          <t>The CUI SHOULD be created via a construct similar to what is given below, where "+" indicates concatenation:</t>
          <artwork><![CDATA[
CUI = HASH(visited network data + user identifier + key)
]]></artwork>
          <t>This construct has the following conceptual parameters.</t>
          <ul empty="true">
            <li>
              <t>HASH</t>
              <ul empty="true">
                <li>
                  <t>A cryptographic hash function.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>visited network data</t>
              <ul empty="true">
                <li>
                  <t>Data which identifies the visited network.</t>
                  <t>This data could be the Operator-Name attribute (<xref target="RFC5580"/> Section 4.1).</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>user identifier</t>
              <ul empty="true">
                <li>
                  <t>The site-local user identifier.  For tunnelled EAP methods such as PEAP or TTLS, this could be the user identity which is sent inside of the TLS tunnel.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>key</t>
              <ul empty="true">
                <li>
                  <t>A secret known only to the local network.  The key is generally a large random string.  It is used to help prevent dictionary attacks on the CUI.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Where the CUI needs to be constant across multiple user sessions or devices, the key can be a static value.  It is generated once by the home network, and then stored for use in further CUI derivations.</t>
          <t>Where the CUI needs to be unique per session, the above derivation SHOULD still be used, except that the "key" value will instead be a random number which is different for each session.  Using such a design again decouples the CUI creation from any requirement that it is unique per session, or constant per user.  That decision can be changed at any time, and the only piece which needs to be updated is the derivation of the "key" field.  In contrast, if the CUI is generated completely randomly per session, then it may be difficult for a system to later change that behavior to allow the CUI to be constant for a particular user.</t>
          <t>If an NAI format is desired, the hash output can be converted to printable text, truncated if necessary to meet length limitations, and then an "@" character and a realm can be appended to it.  The resulting text string is then in NAI form.</t>
          <t>We note that the above recommendation is not invertible.  That is, given a particular CUI, it is not possible to determine which visited network or user identifier was used to create it.  If it is necessary to use the CUI to determine which user is associated with it, the local network still needs to store the full set of CUI values which are associated with each user.</t>
          <t>If this tracking is too complex for a local network, it is possible to create the CUI via an invertible encryption process as follows:</t>
          <artwork><![CDATA[
CUI = ENCRYPT(key, visited network data + user identifier)
]]></artwork>
          <t>This construct has the following conceptual parameters.</t>
          <ul empty="true">
            <li>
              <t>ENCRYPT</t>
              <ul empty="true">
                <li>
                  <t>A cryptographically secure encryption function</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>key</t>
              <ul empty="true">
                <li>
                  <t>The encryption key.  Note that the same key must not be used for more both hashing and encryption.</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>visited network data</t>
              <ul empty="true">
                <li>
                  <t>Data which identifies the visited network.</t>
                  <t>This data could be the Operator-Name attribute (<xref target="RFC5580"/> Section 4.1).</t>
                </li>
              </ul>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>user identifier</t>
              <ul empty="true">
                <li>
                  <t>The site-local user identifier.  For tunnelled EAP methods such as PEAP or TTLS, this could be the user identity which is sent inside of the TLS tunnel.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>However, the use of a hash-based method is RECOMMENDED.</t>
          <t>In short, the intent is for CUI to leak as little information as possible, and ideally be different for every session.  However, business agreements, legal requirements, etc. may mandate different behavior.  The intention of this section is not to mandate complete CUI privacy, but instead to clarify the trade-offs between CUI privacy and business realities.</t>
        </section>
      </section>
      <section anchor="user-password-and-proxying">
        <name>User-Password and Proxying</name>
        <t>The design of RADIUS means that when proxies receive Access-Request packets, the clear-text contents of the User-Password attribute are visible to the proxy.  Despite various claims to the contrary, the User-Password attribute is never sent "in the clear" over the network.  Instead, the password is protected by TLS (RADIUS/TLS) or via the obfuscation methods defined in <xref target="RFC2865"/> Section 5.2.  However, the nature of RADIUS means that each proxy must first undo the password obfuscation of <xref target="RFC2865"/>, and then re-do it when sending the outbound packet.  As such, the proxy has the clear-text password visible to it, and stored in its application memory.</t>
        <t>It is therefore possible for every intermediate proxy to snoop and record all user identities and passwords which they see.  This exposure is most problematic when the proxies are administered by an organization other than the one which operates the home server.  Even when all of the proxies are operated by the same organization, the existence of clear-text passwords on multiple machines is a security risk.</t>
        <t>It is therefore NOT RECOMMENDED for organizations to send User-Password attributes in packets which are sent outside of the local organization.  If RADIUS proxying is necessary, another authentication method SHOULD be used.</t>
        <t>Client and server implementations SHOULD use programming techniques to securely wipe passwords from memory when they are no longer needed.</t>
        <t>Organizations MAY still use User-Password attributes within their own systems, for reasons which we will explain in the next section.</t>
      </section>
      <section anchor="password-visibility-and-storage">
        <name>Password Visibility and Storage</name>
        <t>Some organizations may desire to increase the security of their network by using alternate authentication methods such as CHAP or MS-CHAP, instead of PAP.  These attempts are largely misguided.  If simple password-based methods must be used, in almost all situations, the security of the network as a whole is increased by using PAP in preference to CHAP or MS-CHAP.  The reason is found through a simple risk analysis, which we explain in more detail below.</t>
        <t>When PAP is used, any compromise of a system which sees the User-Password will result in that password leaking.  In contrast, when CHAP or MS-CHAP is used, those methods do not share the password, but instead a hashed transformation of it.  That hash output is in theory secure from attackers.  However, the hashes used (MD5 and MD4 respectively) are decades old, have been broken, and are known to be insecure.  Any security analysis which makes the claim that "User-Password insecure because it is protected with MD5" ignores the fact that the CHAP-Password attribute is constructed through substantially similar methods.</t>
        <t>The difference between the two constructs is that the CHAP-Password depends on the hash of a visible Request Authenticator (or CHAP-Challenge) and the users password, while the obfuscated User-Password depends on the same Request Authenticator, and on the RADIUS shared secret.  For an attacker, the difference between the two calculations is minimal.  They can both be attacked with similar amounts of effort.</t>
        <t>Further, any security analysis can not stop with the wire protocol.  It must include all related systems which are affected by the choice of authentication methods.  In this case, the most important piece of the system affected by these choices is the database which stores the passwords.</t>
        <t>When PAP is used, the information stored in the database can be salted, and/or hashed in a form is commonly referred to as being in "crypt"ed form.  The incoming clear-text password then undergoes the "crypt" transformation, and the two "crypt"ed passwords are compared.  The passwords in the database are stored securely at all times, and any compromise of the database results in the disclosure of minimal information to an attacker.  That is, the attacker cannot easily obtain the clear-text passwords from the database compromise.</t>
        <t>The process for CHAP and MS-CHAP is inverted from the process for PAP.  Using similar terminology as above for illustrative purposes, the "crypt"ed passwords are sent to the server.  The server must obtain the clear-text (or NT hashed) password from the database, and then perform the "crypt" operation on the password from the database. The two "crypt"ed passwords are then compared as was done with PAP.  This inverted process has substantial and negative impacts on security.</t>
        <t>When PAP is used, passwords are stored in clear-text only ephemerally in the memory of an application which receives and then verifies the password.  Any compromise of that application results in the exposure of a small number of passwords which are visible at the time of compromise.  If the compromise is undetected for an extended period of time, the number of exposed passwords would of course increase.</t>
        <t>However, when CHAP or MS-CHAP are used, all of passwords are stored in clear-text in the database, all of the time.  The database contents might be encrypted, but the decryption keys are necessarily accessible to the application which reads that database.  Any compromise of the application means that the entire database can be immediately read and exfiltrated as a whole.  The attacker then has complete access to all user identities, and all associated clear-text passwords.</t>
        <t>The result is that when the system as a whole is taken into account, the risk of password compromise is less with PAP than with CHAP or MS-CHAP.  It is therefore RECOMMENDED that administrators use PAP in preference to CHAP or MS-CHAP.</t>
      </section>
      <section anchor="ms-chap">
        <name>MS-CHAP</name>
        <t>MS-CHAP (v1 in <xref target="RFC2433"/> and v2 in <xref target="RFC2759"/>) has major design flaws, and should not be used outside of a secure tunnel.  As MS-CHAPv1 is not normally used, the discussion in this section will focus on MS-CHAPv2.</t>
        <t>Recent developments demonstrate just how easy it is to attack MS-CHAPv2 exchanges, and obtain the "NT-hash" version of the password (<xref target="SENSEPOST"/>).  The attack relies on a vulnerability in the protocol design in <xref target="RFC2759"/> Section 8.4.  In that section, the response to the MS-CHAP challenge is calculated via three DES operations, which are based on the 16-octet NT-Hash form of the password.  However, the DES operation requires 7 octet keys, so the 16-octet NT-Hash cannot be divided evenly into the 21 octets of keys required for the DES operation.</t>
        <t>The solution in <xref target="RFC2759"/> Section 8.4 is to use the first 7 octets of the NT-Hash for the first DES key, the next 7 octets for the second DES key, leaving only 2 octets for the final DES key.  The final DES key is padded with zeros.  This construction means that an attacker who can observe the MS-CHAP2 exchange only needs to perform 2^16 DES operations in order to determine the final 2 octets of the original NT-Hash.</t>
        <t>If the attacker has a database which correlates known passwords to NT-Hashes, then those two octets can be used as an index into that database, which returns a subset of candidate hashes.  Those hashes are then checked via brute-force operations to see if they match the original MS-CHAPv2 data.</t>
        <t>This process lowers the complexity of cracking MS-CHAP by nearly five orders of magnitude as compared to a brute-force attack.  The attack has been demonstrated against databases containing tens to hundreds of millions of passwords.  On a consumer-grade machine, the time required for such an attack to succeed is on the order of tens of milliseconds.</t>
        <t>While this attack does require a database of known passwords, such databases are easy to find online, or to create locally from generator functions.  Passwords created manually by people are notoriously predictable, and are highly likely to be found in a database of known passwords.  In the extreme case of strong passwords, they will not be found in the database, and the attacker is still required to perform a brute-force dictionary search.</t>
        <t>The result is that MS-CHAPv2 SHOULD be considered in most situations as being equivalent in security and privacy to PAP.  It offers little benefit over PAP, and has many drawbacks as discussed here, and in the previous section.</t>
        <t>There is one situation where MS-CHAP is significantly worse than PAP; where the MS-CHAP data is sent over the network in the clear.  When the MS-CHAP data is not protected by TLS, it is visible to everyone who can observe the RADIUS traffic.  Attackers who can see the MS-CHAP traffic can therefore obtain the underlying NT-Hash with essentially zero effort, as compared to cracking the RADIUS shared secret.</t>
        <t>This document therefore mandates that MS-CHAP authentication data carried in RADIUS MUST NOT be sent in situations where the MS-CHAP data is visible to an observer.  That is, MS-CHAP authentication MUST NOT be sent over RADIUS/UDP or RADIUS/TCP</t>
      </section>
      <section anchor="eap">
        <name>EAP</name>
        <t>If more complex authentication methods are needed, there are a number of EAP methods which can be used.  These methods variously allow for the use of certificates (EAP-TLS), or passwords (EAP-TTLS <xref target="RFC5281"/>, PEAP <xref target="I-D.josefsson-pppext-eap-tls-eap"/>)) and EAP-pwd <xref target="RFC5931"/>.</t>
        <t>Where it is necessary to use intermediate proxies such as with eduroam <xref target="EDUROAM"/> and OpenRoaming <xref target="OPENROAMING"/>, it is RECOMMENDED to use EAP instead of PAP, CHAP, or MS-CHAP.  If passwords are used, they can be can be protected via TLS-based EAP methods such as EAP-TTLS or PEAP.  Passwords can also be omitted entirely from being sent over the network, as with EAP-TLS <xref target="RFC9190"/> or EAP-pwd <xref target="RFC5931"/>.</t>
        <t>We also note that the TLS-based EAP methods which transport passwords also hide the passwords from intermediate RADIUS proxies.  However, for the home authentication server, those EAP methods are still subject to the analysis above about PAP versus CHAP, along with the issues of storing passwords in a database.</t>
      </section>
      <section anchor="eliminating-proxies">
        <name>Eliminating Proxies</name>
        <t>The best way to avoid compromise of proxies is to eliminate proxies entirely.  The use of dynamic peer discovery (<xref target="RFC7585"/>) means that the number of intermediate proxies is minimized.</t>
        <t>However, the server on the visited network still acts as a proxy between the NAS and the home network.  As a result, all of the above analysis still applies when <xref target="RFC7585"/> peer discovery is used.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The primary focus of this document is addressing privacy and security considerations for RADIUS.</t>
      <t>Deprecating insecure transport for RADIUS, and requiring secure transport means that personally identifying information is no longer sent "in the clear".  As noted earlier in this document, such information can include MAC addresses, user identifiers, and user locations.</t>
      <t>In addition, this document suggests ways to increase privacy by minimizing the use and exchange of PII.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The primary focus of this document is addressing security and privacy considerations for RADIUS.</t>
      <t>Deprecating insecure transport for RADIUS, and requiring secure transport means that many historical security issues with the RADIUS protocol no longer apply, or their impact is minimized.</t>
      <t>We reiterate the discussion above, that any security analysis must be done on the system as a whole.  It is not enough to put an expensive lock on the front door of a house while leaving the window next to it open, and then declare the house to be "secure". Any approach to security based on a simple checklist is at best naive, more truthfully is deeply misleading, and at worst such practices will serve to decrease security.</t>
      <t>Implementers and administrators need to be aware of the issues raised in this document.  They can then make the best choice for their local network which balances their requirements on privacy, security, and cost.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>There are no IANA considerations in this document.</t>
      <t>RFC Editor: This section may be removed before final publication.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to the many reviewers and commenters for raising topics to discuss, and for providing insight into the issues related to increasing the security of RADIUS.  In no particular order, thanks to Margaret Cullen, Alexander Clouter, and Josh Howlett.</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>01 - added more discussion of IPSec, and move TLS-PSK to its own document,</li>
        <li>02 - Added text on Increasing the Security of Insecure Transports</li>
        <li>03 - add text on CUI.  Add notes on PAP vs CHAP security</li>
        <li>04 - add text on security of MS-CHAP.  Rearrange and reword many sections for clarity.</li>
        <li>05 - Rework title to deprecating "insecure practices".  Clarifications based on WG feedback.</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"/>
            <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"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <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"/>
            <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="RFC8044" target="https://www.rfc-editor.org/info/rfc8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <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"/>
            <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"/>
            <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"/>
            <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="RFC2433" target="https://www.rfc-editor.org/info/rfc2433">
          <front>
            <title>Microsoft PPP CHAP Extensions</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="S. Cobb" initials="S." surname="Cobb"/>
            <date month="October" year="1998"/>
            <abstract>
              <t>The Point-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP defines an extensible Link Control Protocol and a family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2433"/>
          <seriesInfo name="DOI" value="10.17487/RFC2433"/>
        </reference>
        <reference anchor="RFC2759" target="https://www.rfc-editor.org/info/rfc2759">
          <front>
            <title>Microsoft PPP CHAP Extensions, Version 2</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document describes version two of Microsoft's PPP CHAP dialect (MS-CHAP-V2). MS-CHAP-V2 is similar to, but incompatible with, MS-CHAP version one (MS-CHAP-V1). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2759"/>
          <seriesInfo name="DOI" value="10.17487/RFC2759"/>
        </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"/>
            <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"/>
            <author fullname="D. Leifer" initials="D." surname="Leifer"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="J. Shriver" initials="J." surname="Shriver"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <author fullname="I. Goyret" initials="I." surname="Goyret"/>
            <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"/>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun"/>
            <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"/>
            <author fullname="G. Dommety" initials="G." surname="Dommety"/>
            <author fullname="M. Eklund" initials="M." surname="Eklund"/>
            <author fullname="D. Mitton" initials="D." surname="Mitton"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <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="RFC5580" target="https://www.rfc-editor.org/info/rfc5580">
          <front>
            <title>Carrying Location Objects in RADIUS and Diameter</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="F. Adrangi" initials="F." surname="Adrangi"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <date month="August" year="2009"/>
            <abstract>
              <t>This document describes procedures for conveying access-network ownership and location information based on civic and geospatial location formats in Remote Authentication Dial-In User Service (RADIUS) and Diameter.</t>
              <t>The distribution of location information is a privacy-sensitive task. Dealing with mechanisms to preserve the user's privacy is important and is addressed in this document. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5580"/>
          <seriesInfo name="DOI" value="10.17487/RFC5580"/>
        </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"/>
            <author fullname="L. Chen" initials="L." surname="Chen"/>
            <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"/>
            <author fullname="T. Zhang" initials="T." surname="Zhang"/>
            <author fullname="J. Walker" initials="J." surname="Walker"/>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <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"/>
            <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"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <author fullname="S. Venaas" initials="S." surname="Venaas"/>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <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="RFC6973" target="https://www.rfc-editor.org/info/rfc6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </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"/>
            <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="I-D.ietf-radext-tls-psk" target="https://datatracker.ietf.org/doc/html/draft-ietf-radext-tls-psk-03">
          <front>
            <title>RADIUS and TLS-PSK</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
              <organization>FreeRADIUS</organization>
            </author>
            <date day="24" month="August" year="2023"/>
            <abstract>
              <t>   This document gives implementation and operational considerations for
   using TLS-PSK with RADIUS/TLS (RFC6614) and RADIUS/DTLS (RFC7360).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-radext-tls-psk-03"/>
        </reference>
        <reference anchor="I-D.tomas-openroaming" target="https://datatracker.ietf.org/doc/html/draft-tomas-openroaming-00">
          <front>
            <title>WBA OpenRoaming Wireless Federation</title>
            <author fullname="Bruno Tomas" initials="B." surname="Tomas">
              <organization>Wireless Broadband Alliance, Inc.</organization>
            </author>
            <author fullname="Mark Grayson" initials="M." surname="Grayson">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Necati Canpolat" initials="N." surname="Canpolat">
              <organization>Intel Corporation</organization>
            </author>
            <author fullname="Betty A. Cockrell" initials="B. A." surname="Cockrell">
              <organization>SingleDigits</organization>
            </author>
            <author fullname="Sri Gundavelli" initials="S." surname="Gundavelli">
              <organization>Cisco Systems</organization>
            </author>
            <date day="14" month="June" year="2023"/>
            <abstract>
              <t>   This document describes the Wireless Broadband Alliance's OpenRoaming
   system.  The OpenRoaming architectures enables a seamless onboarding
   experience for devices connecting to access networks that are part of
   the federation of access networks and identity providers.  The
   primary objective of this document is to describe the protocols that
   form the foundation for this architecture, enabling providers to
   correctly configure their equipment to support interoperable
   OpenRoaming signalling exchanges.  In addition, the topic of
   OpenRoaming has been raised in different IETF working groups, and
   therefore a secondary objective is to assist those discussions by
   describing the federation organization and framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tomas-openroaming-00"/>
        </reference>
        <reference anchor="I-D.josefsson-pppext-eap-tls-eap" target="https://datatracker.ietf.org/doc/html/draft-josefsson-pppext-eap-tls-eap-10">
          <front>
            <title>Protected EAP Protocol (PEAP) Version 2</title>
            <author fullname="Ashwin Palekar" initials="A." surname="Palekar">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Simon Josefsson" initials="S." surname="Josefsson">
              <organization>Extundo</organization>
            </author>
            <author fullname="Daniel Simon" initials="D." surname="Simon">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Glen Zorn" initials="G." surname="Zorn">
              <organization>Cisco Systems</organization>
            </author>
            <date day="21" month="October" year="2004"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP) provides support for
   multiple authentication methods. This document defines the Protected
   Extensible Authentication Protocol (PEAP) Version 2, which provides
   an encrypted and authenticated tunnel based on transport layer
   security (TLS) that encapsulates EAP authentication mechanisms.
   PEAPv2 uses TLS to protect against rogue authenticators, protect
   against various attacks on the confidentiality and integrity of the
   inner EAP method exchange and provide EAP peer identity privacy.
   PEAPv2 also provides support for chaining multiple EAP mechanisms,
   cryptographic binding between authentications performed by inner EAP
   mechanisms and the tunnel, exchange of arbitrary parameters (TLVs),
   and fragmentation and reassembly.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-josefsson-pppext-eap-tls-eap-10"/>
        </reference>
        <reference anchor="EDUROAM" target="https://eduroam.org">
          <front>
            <title>eduroam</title>
            <author initials="" surname="eduroam" fullname="eduroam">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OPENROAMING" target="https://wballiance.com/openroaming/">
          <front>
            <title>OpenRoaming: One global Wi-Fi network</title>
            <author initials="W. B." surname="Alliance" fullname="Wireless Broadband Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="WIFILOC" target="https://www.wi-fi.org/discover-wi-fi/wi-fi-location">
          <front>
            <title>Accurate indoor location with Wi-Fi connectivity</title>
            <author initials="W.-F." surname="Alliance" fullname="Wi-Fi Alliance">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPOOFING" target="https://networkradius.com/articles/2021/08/04/wifi-spoofing.html">
          <front>
            <title>Wi-Fi Spoofing for Fun and Profit</title>
            <author initials="A." surname="Cudbard-Bell" fullname="Arran Cudbard-Bell">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SENSEPOST" target="https://github.com/sensepost/assless-chaps">
          <front>
            <title>Cracking MS-CHAP</title>
            <author initials="" surname="Sensepost" fullname="Sensepost">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC7525" target="https://www.rfc-editor.org/info/rfc7525">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="R. Holz" initials="R." surname="Holz"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP. Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and their modes of operation. This document provides recommendations for improving the security of deployed services that use TLS and DTLS. The recommendations are applicable to the majority of use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7525"/>
          <seriesInfo name="DOI" value="10.17487/RFC7525"/>
        </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"/>
            <author fullname="M. McCauley" initials="M." surname="McCauley"/>
            <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="RFC5080" target="https://www.rfc-editor.org/info/rfc5080">
          <front>
            <title>Common Remote Authentication Dial In User Service (RADIUS) Implementation Issues and Suggested Fixes</title>
            <author fullname="D. Nelson" initials="D." surname="Nelson"/>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="December" year="2007"/>
            <abstract>
              <t>This document describes common issues seen in Remote Authentication Dial In User Service (RADIUS) implementations and suggests some fixes. Where applicable, ambiguities and errors in previous RADIUS specifications are clarified. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5080"/>
          <seriesInfo name="DOI" value="10.17487/RFC5080"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9257" target="https://www.rfc-editor.org/info/rfc9257">
          <front>
            <title>Guidance for External Pre-Shared Key (PSK) Usage in TLS</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document provides usage guidance for external Pre-Shared Keys (PSKs) in Transport Layer Security (TLS) 1.3 as defined in RFC 8446. It lists TLS security properties provided by PSKs under certain assumptions, then it demonstrates how violations of these assumptions lead to attacks. Advice for applications to help meet these assumptions is provided. This document also discusses PSK use cases and provisioning processes. Finally, it lists the privacy and security properties that are not provided by TLS 1.3 when external PSKs are used.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9257"/>
          <seriesInfo name="DOI" value="10.17487/RFC9257"/>
        </reference>
        <reference anchor="RFC7542" target="https://www.rfc-editor.org/info/rfc7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </reference>
        <reference anchor="RFC4372" target="https://www.rfc-editor.org/info/rfc4372">
          <front>
            <title>Chargeable User Identity</title>
            <author fullname="F. Adrangi" initials="F." surname="Adrangi"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <author fullname="J. Loughney" initials="J." surname="Loughney"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document describes a new Remote Authentication Dial-In User Service (RADIUS) attribute, Chargeable-User-Identity. This attribute can be used by a home network to identify a user for the purpose of roaming transactions that occur outside of the home network. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4372"/>
          <seriesInfo name="DOI" value="10.17487/RFC4372"/>
        </reference>
        <reference anchor="RFC8559" target="https://www.rfc-editor.org/info/rfc8559">
          <front>
            <title>Dynamic Authorization Proxying in the Remote Authentication Dial-In User Service (RADIUS) Protocol</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>RFC 5176 defines Change-of-Authorization (CoA) and Disconnect Message (DM) behavior for RADIUS. RFC 5176 also suggests that proxying these messages is possible, but it does not provide guidance as to how that is done. This specification updates RFC 5176 to correct that omission for scenarios where networks use realm-based proxying as defined in RFC 7542. This specification also updates RFC 5580 to allow the Operator-Name attribute in CoA-Request and Disconnect-Request packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8559"/>
          <seriesInfo name="DOI" value="10.17487/RFC8559"/>
        </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"/>
            <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson"/>
            <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>
        <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"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <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="RFC9190" target="https://www.rfc-editor.org/info/rfc9190">
          <front>
            <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9190"/>
          <seriesInfo name="DOI" value="10.17487/RFC9190"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIABYHSmUAA+1963IbV5LmfzxFDRUbTbYBSqSoi9Wx3qEp2ua2JXFFej0T
c9koAAdAWYUqTFWBFO3wPss+yz7Z5v3kKRRo7WzH/Fr/6KaAwqlzyZPXLzMn
k8moK7oyvMnehk0TZnlXVMvsqmrDbNuE7LrJZ10xC21WVNnH87dXP92M8um0
CXfpD+SreT2r8jUMNm/yRTcpQreYNPk8fO4m8/g0flRs28mzZ6NR2+XV/H/k
ZV3Br7pmG0bFpqG/2u702bOvn52O8ibkb2BKXWiq0I3ul2/wdZf/cJv9XDef
8O3fN/V2M/p0H5+avMUJjOB9b7K2m4/a7XRdtG1RV7cPG3jT1eXtd6PRpniT
wX9PslleZds2ZHnT5A/ZYbHI8rLMHkJ7lNVNtsrbVbYKTRhlWVfP3uAX8Gdb
N10TFu0bGmIeFvm27Fp4Qr9/WPPX+M9Rvu1WdfNmNJrAVsKH58ewgX+tP8GD
vGXnJUxCP6obWOV3TQiysVkW1nlRvoF5wX79/QK+4U08hidHo6pu1rC1d+EN
PPntxfXJGezRdxevT16dwQfw1+nrly/e8J8vz05P5M/Xz87OYEZFtfC/hy9O
ntszp2fPn+ufr158/cbGexn/fC1/Pn/xSh94cfJKH3jx4vUzfffJCx335emJ
/uzly5Pn8c8z/fPrV/rpq+cvaYSrydtjT1Nd2U427Sf9qqvXeTupN6Fq6nwN
hKFf/FK3cBBtXU02mw3+MOQb+jH8Pz5z+fanjx/O3+Gf8J/ch4Mw3+I4B/yp
nl/G//GZySP8IW+iPXH7D7dAGauu27Rvnj6VJ+m4suzD9eV7fOPV++97L/0A
s/8os88+VCFblvU0L7Ofi8l3RQaUfQ80/9iUfi6aUIa2zb6F982nQC1AWWWR
V7PwBdO8h3fxw8ezev3U7eVT+MHPV99d/fjhojfl8xmwirwLQNfzGq5LWeM1
r6vsvuhWMvFZXVUBOMld0T08NvsDflxnfLB/yjbj+/vj+2KyKHBrn86Ldlbf
hWZCHz2l/53ohOD3N9cfPny3u+v81ptNXS+Qn8D7su+2VYabd93AZ92jcz4H
rlFlF1vY7WY++TaU5RfMW45SbjFudt4Ap4Wje3r67PTk6bPXT5+dwQJg/q3M
63jVrUtcxOX7m8vrDze3vVVcALMmfvjuZnLxw/n1Y5O+CcDiN3Xb/fFMl3CM
2ylNsdVfPc3bFqlsMlvlG+Bud6HaEvNYIitWBg3/Zq7F9/Xv8e7KDeBB32SR
kz3dlRDH8BQwzMkky6dth6JoNGKGmM2ah01XT/JlUQJJZfd5my2Kpu3ghdUc
iHGe4SfbDoUY7nM2fUBOkiH3O4YFrkJWbztYE/z/IutWeceP4UAdfLnZTstC
6BgekLciaWW3P95khzQWMKsjIhL/9Vv7HtnWEc4jfN6EpliHqoObDDJyi3+2
NA3gTCDs8grOuOmyTVODgKnLFmTOXcimIVQoeO+LeQAqADk4JzGF9AnrfADJ
kjckmnN6Bva5WtKChLr4HeGBh4PR4ZxweUWTbTveOZheEzZlPgs0KRqbNgBk
fFFv2+ynt9e8HJQhvNzbi2vbgedHcf74up/x0tN+fqrq+zLMl2FMAwILgKPd
Bl4CzLFQJSP+nt4umwlSN2th23AO+NIqLElEZcV6o0fDP9g0xV0+e6CnaEhY
1/FodLsqWtttpvCyfMiUzECn2bZ4W3ByP7V4cnmXL5t8jXeejiE7hMXzkolI
QnaLUxVNIruAFTXwVHwcNoYOfOhE49KO8UzaZN2g42RAI+uiQ9KFncHThHfK
DulxjrPpttMDbJHjwj+QhPSBDJbcwskCmSEnBL68DHM4le/g5ajS1PDbJgvV
XdHUFR04H44cye6BtNvZCld0dQ3foTKE1A0v0WuGJw56U9nW9MYtCJ58Pi/w
cIDW9TTgF+0WNpwkgpwvnENZP8gccIuXeLhwNPUaPpwn56tK6P2qgOkU1Qyu
AszYhsefCxUcM8NYF/N5GUajJ6gSNvV8OyMJMMKLLxPQo8l++000pN9/d4yE
NFNg6MWvdCLZyddfv8LNqrdLmAJsTVPX8L/LOpsC283WuFFwHcsCNhh0QHj8
uTAaexHscpu9e/uC34hKFrwRnm2LZQXqJPCiDQwVUIkELVW2Bb6vp4ttiySb
zULT5Xjfu64pgBZCPCEk4ck18GUgBDyW8xaOq1gWlVA9viTMxxmIa2TcH8O/
wYl09sZ70G+BMDpUHx6ybYVSA/+Jr53zTICeyjkwJaAPEOQ0LIkmZrZy/LxZ
tEBUB2GBN4H2Pjs7fn58ChO7Ao7azHmXkMvg7aRFqJwbM/9oN2EG4k+YMOjX
BcyfqPUdLAAIe3Ie54j0rXuSHQ69Hl5+JAQEU6/vYSwiLt3xGqyApgFaouPI
SXJMc1wP/PiHd+cXEzi5Y6YgoI2OLgweplHh/eAuoM77++9jeXUZ6EQ7P4jQ
o40zDciWkP+Gez/QGdFLXM+wGOPfmSBr0HCocLvhATeOTgivEvKcnkBtgDyA
FKJMENZlAhjHBwYLGw/bT6RAvGPOd/zqGqY5JrII7QyO5TGyOAUb5JvstkbO
0aDqSruju3G3LStQEaY4rwLo3Tbs6eX59Rh+iPKAJiosgzYC+WBCPzc/fPjp
x7dAaBviy8TP4MeHZOI8OwG2DTboUmb/10v94usjWv0nkKHA8oDo8EVIxMQP
L2+u4xgvj/jXFdgZ1RaYLbFRlDv6crg68n69UjoNGIh/nMefh4rOBCcfR8If
uauJPO0bW1R8zbZlOkORj6IEZMuEKR3l8AI+gt/neNK4g+mAYzipLiyNsZJ6
8EBcjI8Mlw87ZG8b0dsGtokvi8gWIgm7ekJFMEXcFGQBxL87YD7jKMj5X7Om
FqJQ8x5m8AMMA+rWWJQr2CwYZ0Vj0zVAOYU0ClRHqtJ9/gAkQbTS0Fz7ZIMv
jTIJB6l4zijiVkUZZAVyM4AtwHvZ+9E+tF1Y6zGM7d0wQr4xZQU0ONCysrKY
NnnzQLcXFZRisQDWC9MfI4PdlHqFcL1e8cvn9UbVUXwBruGH29vrGyCUFraq
5XUXHb26XnSg6oGULGS5biLE7PBUcBi3Tr3bT/FzZhWg4cJVjSru07f2HWq3
KDBRbiD5GIcuHH9fh9Cx9vcIe0kZE2yMmwZqgY+pwfkU+B/cmjmodPOApDsr
t3M8FLG4YWgx75Hn4UrWdUN6Brwb2JYzuOFRZ5jLun/7bdC14Of5Vifa4kTJ
+CZnUqRbtiaMfFmNg5OCux7ge/oJDrDell0BJNAnTjia81Z10Hu4mTjbQT43
1kmh2m7KIO4cSvUW+U5gI0D0GKR5ULdalHIozXDNB7DBq3p2gLwC7C7WnVgM
mH6tlwJ/Y4c0bepPARlIh+/OM9BPupyvE8s8VkOc0COaRaU0OJPnEMZ7CN0R
7A9KdeBbND35SSr1TVirdoiqNEwamDmSIFL3tAGlYAKznwXYSGMcbOXUU9ho
0UxxLeuQV3qVFqgMgGyFUyIXIQnWbSWM2XGxJl/AAcjW5rB30+kDyEaZPMwD
fz1D85y0cLCg2wLea5J/lSNDgb1tAt+HUCxXwKrhc1B9Q4OqHBEWbPsN6Xuy
KzguKd+wfqAdvCWgDMCqwEYhrkuvE6WwJQ2n4CuqVo+pjFF/gk26xIXw+nUr
RXxE5WgNpFvPiduQAGBmyzf59OQ1XjdkRqQ0VjVYYFtUE7yM37UKYH3v6hbX
IS7JuoqeZ6JnJCZcZQm69qQLnzu+1HWFY2cLOCCnGyMtrMASCHh2uenROCrP
XomGlF78FHmDkT/SQ3IFTKFngzOxRPU6IpOocIVEiEhquKHnIILqKez3HWti
KOWRbaQURLcGCYOUftb0QaxM0RZBeZ3l63oLGwADgPBpycZiWb4o6Hd+3w6v
r66OhEHCATU6e5sGEg8IXGAPqxrfXNbLJTIWpA6+rmJWoq6YI6e4IyusQ48C
ro7sZ/xSZAB/6oZZACGKFUM2Kwihpv5crFHxNTfh4bbdkgY5A75ypC4E/XrC
Org/1NaLGqI3dDETe+eFxrHXOarT8HyHxnXFShHSGxp0L/BWtSik+IptO/Rf
itlFRHlAX01KOEXYe/Jz4rGTn7M9gHeLR5SkwXmVbi3dSxQEcsbwezw83Bpn
dNjUgOTuM9JBeRV4IkDV8I3ZgR1zEKCI9RpUCBEIBUpa9CwpER2CFlGjxoAa
TX1f0T/okfYISPFnFNaplOD7+4i8wg9tU8l3MwcTcA7nxjxoA7ohUWj5wAYi
LpDOB6R1OekKMFDsnE+egXlebcljDC+4w3mN04PhI2GChfUp5eGrYHgledWi
5XV0Bg+O3RFJAseY0+1/hOPpwNPg2CeOR3yQ3UToUY0/rVFra3EdQM2lU47J
6GF/V0sXdaZeWfKzoCVWPjANyFAF6aVFmTd67QZ/mggJ5JPs5BVjF8M0prFI
rOb334948GVF+gHpO/BKUZ1UlNOMgVPLHkTjfianSFdBVwrMu942eBhBZMTO
5PClyPDRAQjX+5/+5fDJmj3FR0diE+z48BJXTqSurM0XoRO+kjdLuQvqC+TR
WpMk+BhJgk3e4GLXoCktyby9X7Hns2frmBhQySgkaD4q5DNyyXAxcM7oPQk8
aXVEzYc9Uex2C59zVObG7ODZ83ryf4A9izJhzH/QX6ED84NsJnohke/7fB0S
nye5g+sm7LjvSE7YbdA7IPYYjC8CQT54d35h0hlGmMMl+JVniZRRAomqCEjF
s1xGWRGQcE7bX8y2SNJgfG0XoMTAxBpUz8FSytmdig9uq+LftkGG7Sln7d7d
wmNGAstLsupYrUVjIP08v8vhVoFY1IvMxNqGKPxDI7bydgoTKbp626LJSYxj
XtNgcrXZfcrU7pcvLslWeCZqIfpajgc4TmtulKfoQU/c5udwjnShiFDhbETu
ASkky+a19m1XUp0Tbwzbf+2nYrNB505o5IhCBuy2mIutAEoU2UroKVB25PRH
YC0aMANewq47MqZnMDeQkyxsaRNxp1j7vc9JGWC1PlN56CbAVvmsbhrcVrz7
7ERUjxRq4J03DPAHYAnAmVp0ggSkSM+ZPAwTw7u7pOfvUWs1+REvAU2W3AAY
FAFuPGdCVEcmz3fMPA9M1Q6OkdV1Nlz7E+jyTwHfnOUzJX84hQ3wU6DmK2GF
JNbhedAAwqYj0nCBjq429RMVzp6V9cgY+K5AXgu6lD702tOfSVvOUFv2Uh6t
wia7em8+lTRiQpu/QL7iQiYWtCFfttlxYllzUKAdCClEio7cqcwfWMj3Iwiw
HcS0HwkfuJABUeTfIm7w5El2w5TBEp/9PTHmQTReod2cOLbyXb4boyZuBHXT
4AUrgW4H41bs1ABWkxoGPfUSlXXkx0y9KGfJY0wmfS5h9oy01pZnOCsLPFIi
LRyBDhtNXNJ2B0wCZpVNIKbDdhXf9hpNkvfnN8RwaevTz3GmFmhKyLBVUwyt
Aman8trW+/OKLt1rInO4+ge43bShB2pRoL12hxKf7CV+I1EKX3yZPU1SKYh9
3rjkilVVkXiBdcRcrw7qw2is5LMVUIaT4zI/M+HpvKpo6dNtniEjZfbHoULz
EODMkbgbcQdQUPHHG3sQPagwIhMOiNHcacJoHNJrJBJDnBr5dF5G5Z8MZBI8
xBQVeMFuXfWNoVRxb8ThrxbOT7ds8g3slEkedSPDYoG9i54HlAsC4r+gK/DF
6Qvn0X95/PxozOczhQtHGiy6UPSNMhpxNU8hbKryOcqzLQey8D4pZXy8vPjw
7t3l+7eXb4Xvw+qHp61ecLmfCh2oK6Q5YRR7lmb+rf6S79Gf5vUCr6zKpIXC
6azYCYI/0liXnCEaUm5T6Ccc+cGLS4FbEk3yNO4KSNxKeOM47tBodH5+Lve6
RR840gap68WvgfWVNRicpA223nk0VUaXqwG5IhaygVM4NIYa5gSCIxOOOTir
glOWDQweMCMlJarb3kdqYwjiYK5uyFwVa/Z9EQU0AX6h44bPoNzgPzw9w6xg
Cehv4UVUwKTi9+rQN4yiE0r4pwZH3U9gxu/hUM37t+cx/GpW1rgVsgk77xY/
0FjtqlmOb243W8YzhKapFbiBHpEHH5IXE2lBb5XjN3ZDP6Hz5phD0Yr7BWkJ
1e6H+IgndHzQmba4d822wv3LgUGC4krzogF6vIaC/XBByMIoi0+oqsDP+FRA
yWxRBsu+xsj65we9OXRqq7ygu3xVSWy36LaigyKxP6S/XBF2B67MXWGKV1F1
tYahGXZRmxfXvGddqlQT+dXlljaAdqkgn0tyOarteso+OfJNkY5zV5d3dMdE
jttNeftQ5Wt403VAvIiAzRwffA18kM/PCx+HiBA5RCJrQzeSNQ58hIi4r0sQ
WASt7s48jKahqexqBQUigxcYi+nACGGd5gNMET3XTFbDI00DEHmbupb2KV0Y
ZWuzX7YwDrqsxF8g3BnD6CTYnNnjYwYSKxJN8THsyVguMIeP2QMpAW6LHYm3
vqhM1+N3DEJJkAZgvvCWhiAHdIGMJa2LZZOLQsVnzQayjtZul0vYOlMuRZmM
jE/0N2RgyqyiDic06WVwruquuNQGnBMRPDTonuDZwXXAIQMf1KBOiT5s1PV9
MIk1DIvcRNyCAr/KBw0T4IVD08Fp+/dBzWPV2Ysu0h3uIfwbL8FY5DkFYkST
k+hQ5W0Zu6bR/Ek2UJVgti2m2/KT7pmeZ1gsDEq1ALoW5Aa5UVJiRyZ2X7T6
WCuPeSXUG/t8DZqc+CZfbFJUugEoEZkxGGp9wMXyHserjL5X1CnS6cAFCq1E
wolFhxVzVdOFA4rGvClKCjmEZgFSxlRccXEnCq4oAR5ESDQy58gjP0SmMGLZ
YFnzLcccUF5Q6KkmS5N8O+JWxbArKmYrRQGllr7wu2Vdz3cML0G3IVSUaUaW
LvvJN32a46gw5QJFY/yhnRbFkOpmSkaEMVmkJNp03Ls18lXUWaoZHYBcWtET
vVtKp4i/PxBQwgGLw148VRj0NLAMp8ueIpPq0LrJ8cscPyJhOg1ggS1IXJtn
Qu0vW3Z0JuFwuEMwfgzXpa8FvoVPreCJtmNbps2LuRDSgaEJD/AskyXuoqtI
MpNnTrGa7Jxh7ruJFxPlYTykorXjfzDnWzyiHX+RQV9NsLLcfPEMwzc0Aga3
0XOFqwDOYTOJGpNi7GwwC4+o83KVN2tQH9xE40VoBUtg5zMaffsgDl4S5Rzc
9HOVu4OUgQhSrzDoHo8NFUKTeVo3cRviNBKrNGfEIDm1keMRex2ifwwZULTL
08zQg5UozhFHWvl5GNw4/lZYB91ZVKbx+BErtqErRDO6N0deQnzAxlGOfNh2
ilQl92e7Qq+Nf5Lxpck9pSXriuXSRo5BrKC3Ojq+ZYMO+LpZ5pX6OMnKBbvE
czV6FumQjlvJCbXH/tXm42iDe3mkk0W9rfQu3eXlloTU9CF6XtHWIjDWHLVJ
RKd3fMRvQXyqEwptuq73jmVAOBvOP8bs0S0eEW4cAkFRAOPYp9PQ3RMFs97C
wjCXQcbpxIRJh8+hmSHrBNYlzupQMeIPpSvaLINbzeatqQHJxWH/9xy0P8Iw
3aQcIY82Au8dczt1he7Y7n1H9qKmWIfgVVg/CLsCJZ6TYtrrjAPVMShVJ7uu
3EkJAuOiYn9xrLNPGt+BHkP6aK2TElLVxbvBNbDJZ9HyicJBEEJMHcc8Ht6a
J9kthXzrsl4+sFaObh92UB+8++nm9mDM/5+9/0B/f7z8bz9dfbx8i3/f/HD+
44/2x0ieYDBe/Cv+0nYc/wmfZslHo4N35/94wCz04MP17dWH9+c/HvBBJ6YG
b8VUYrZAHZxjMUrwnd9eXP/v/3VyBmz97zAGeXKCQE/+B+aiIVxshVaxITb4
nyg/RqA1oZMazwQdOvmmwIA1BSfR4mADDnZv9GfNNkTQKOpgYY1G+3mqO78F
m2QC8oeQ/TdoAc0iEns8BCJgBPg4/YcFVDGhDWXUGiP0pNPiUf7Z2Tk4H58I
ovHmgbwCezuqkhTG/LOLDA0NdGu+5Z2sA0XqPf/9dz/OjzePj/Mjet/RZ8c2
wqY/3Fky3Ns949na/nhgDxvEkWXEL5oVXMjvjW8SF7tHA2/BDlfyz/colmyU
vJGnGolyOWShyGm3PjqG9+c0q/eMfBG0PBEQhYVUQcvNm0iedbrVamgPG8/e
K6BCMKoSg1AoIu81ggE0EUY1LoOMI3Jv3UdMHajhhmGfAwlm1VPO5xkCL6GL
e9uwi3EA0Ee6Hx15BFritSRfgeZHOLC7RL4Tl/QAineMDmAjD5FZrH3sCYZp
FBe/4qhgZ5hDlJdbkn6sLtTE5x14qkQm3HYUlmCUS06mQYFOM8qkUmUdZAGt
ScJF6/xTIAM3cfqTvc6O2gj4w0Aq2GeI1HaoQ/O4mneExBSIVISSItKCQkKf
e0BAtBctQAF6L1BerRHsvqsHDYz6nh0+V2nURSFzFxQEvAVLHhS3aJTvgOYG
E0rGA0EpGzylN3G8sTDEezcHHoEw7RrjX0Rbu/RvVKnxm5/d/WbS+vrVc+XI
JqxLVjQ08vDCsiB83pdsEZq55nGJ6F30UDmAM0bm8Ypq2gHHWff6A0AldLNL
XH8cdB10yCQAAryceJFxqxj4pfAmxaLRpxrbbT3kLYVC7oHKWwDFedvcj6KX
SX5uMV6fVTYUgWZyG2AYo9F5hO0Sqhij7gm7QFt8h22oe8TgwKbIkxlZMaHS
wEJyzI7ASEf8vxuL2IPZJGMliqCmdS6O6AWzPRtWvFrkwrPou3d9069gM9Df
TpjJ+pOmDLvpmcaLHKSulIwwV0HhCvg03BE4BolI6lQoZoa7xmYNWU1ssm8J
qSo/QeONt2cAesInc8FsRdyShiYbRB2zHrqDPMvRakrAXRY8XdasRZsZhkyD
uTBT9hQdsBjwXoV8IzFnuT8WVWA4mjpXFOEOS0OqKVwID2Hj6m1j9KSMZ5FX
O12iHMrnKtHZI25mquJgegtnuslQhtmjZ0C3XRSf1S9sg6BMmikWk+woYMhi
lYcU6c2hT3Sps5TgQMq9Zca614jvy8kK2ttdTB1qR8i38Gpx0KPgpC9NB+hp
PzCNg3qh6LxQLg7YgJmzQ5hlpcSmdJtgasAWgAJOnj17p/caxA3KNJxHXc05
UnwfJAjYQ66j7xzU+OYpOpsa9PrAgF1HjIx5vXA0FjoHxMfz8sAh3UlvoxN8
eRYFrkPCk0qQykmK1QpySBQkfOr1xH6mj6o3AvnR6b+evXZvqNfTojJ1KEow
07k4KoC+dNjiZrJsKCoGREAQXYw9kZ7gMM5wkM9PQfw9sHvXHbIjwddZDTPs
sqe4YDdhShYaXOxtTFzAyTFsjO4RacYSBWdUKmqvJFgqTFk9/P76p/bIgGTH
2Xm2KparCWpc8BUFCfMNY9cWqsngz4kDkroAkwSLtqSI2gBxnGuQBpY/TpfZ
X1u0HMkI0gvH7I2FRLqXXytuuNXsbgkjyP1S3XyBcRnmuHPBjMWcjGOQjGnk
BgOBGktw9NKxiB8G8zJrTkEqUwVgkuMzeUc6Ljz79XNP0o5uiQupNqnReTwa
hnwI7390X4sqZkXliGvqTaYM1bJTVbLHZZxy1hhsoBrcAlHy7eojR4xLQl1h
TEKSJp9XOvUcKGiyd8otMF6wsLuV8Qm/U/I0p5Qw8i4hkNMz0eOFPHZVcHND
RpQzgmzKMpTFrwIVfS/Zeh1B2YgVtVvUdwlCFfHPBD/EfMFsta1AR5+3jN8G
IyunhKqFxRjnYc6J1ILwbs0kUKcuwuQVbuvIIc8OiM+r4XCAo+oyBTmO0QlU
LCRmRKllLAhjvAMzwAtcAzA0vKU2TScULoA3EGuIJA2L2gq3ErgSTobcmjYJ
cqwKUlJsxPsQPnGigZgZ4udQGcABoSagb5JgHJy945JD8G6v8a8GDskctaqk
EZyGdZCAChBKmKiGCIckejWDqyeo3Ah9LUazn4ijjnv+XdUPBWE8h/ndhf7g
tD+iQiuxwLExplr3QGbZP17dIYw5V7JrHGbDPaQoKapLbUcxFVRcQBoRl0jn
KT5LejI6KpEVmvtXZ9gXL9/tyBxLEkcwN+d4YKCMU5DGEv+m2y3XueUMUFr2
Ol+C7MEACoVPLBa8cuvA3JuSnHHsDwPjLI8WarzGtFCfQJfOc5wg8TjnLpBi
Q9YTFsUgOxEBDoIEBF6D0BR17hLOD3V0xAPm5TbEgij9/IufNeupx0K3Yhbi
VPyZEE2L0WLTGCes1SmLOPl5U29wJMsKHdhUNjRcUBbpQXOghzIROZmjnuPW
Ky9z6YnsbRo+fZjKJtQbRiGJJB6jOwZvBGsAyHrfhnZTiNJN/hNEoNLrqTYR
2jUc1+bc1LwfA2KlB5MlDmZlvZ0z3JNhBDHejqA95j6EgXbGvCZXma6vpvCu
n4JtNBIIQ5Po3SnJmj6A3W66gwHam+sj+zcw3hrySyD7mAtc0CC9ibagzK+N
UyMenbfk+bAAimSC4K23KjEPkgC5XBGYQy48PhiDBFotILoA0+Rs2LLeaijM
T+yJfE74BKb48FMTeeqILdDbbVWF0mVcwbsv6vOd6iO/Pen4yVmd/556SqOP
qHVeYZe1Sw7k/nvUnTWORg26wNyrcSqE4CLQXn9GJCQJgwb8oMzZMNCd4bib
uno7MhXKcIdpC2nwEzbBBw/UTXV6/Ny035ZBVH1rVaeTJjsvilDOlSO1Vi7m
zWj0P+G/0eCPRljU66rKegtkzpMOTxyPvdsnLydslsB9xQH+SQrW/Ata8yCD
t+sxzriUiiyDb2bSxV8Pr4asDbOuiZNiahNa/3krwGr89bklTuopjXWf2Uz4
J6lI+C/HvA8j5s0ayPFb/5xC17ph4mJ/f37jy3i5RE2BxRNtMziv0Supi6IZ
DpwSzGt34kbwJnhyVJInOIh6Pcg74N0OrFQBGwr5GgmODqZlVFcbSwHQTl8A
Z8++yq7MhQj/+JEV/q/gULNfQ1PrAF8RPQeWDur9/QpHSSXaISNMvyKoM6eB
IOgM/uBrcSQbAsMnNEMLMZrC5KSIZRnasbiKvRunB3ybf6Ko7zJw0IKvA8XU
CnaSOhcfvGCA57BHO6aA+uTwlDKNy3wMqGunU2fINg6FWxsE5EoYVWQ6+PLh
ikvjR+65K7AlDgu2L3WHvT6J3vXdYiJkyfmSaSA7yBvrCqShotdjnONsiF89
P37JSYgUBekI4Sax2oGNdZfr+PiYiHKFdekm9YIqNtWNGjpSxwmLpWaeTQAB
XPyVKxG+P/8rlVdFz4KclBv42VdSsDB7lvzx8mu82T2ZcEjY7hdH7vf6UUY5
0QqSU5Rl7ldnKYl2VXCABvHlHN+qpNCiJU3SovWKRYWRZtUbBrnL7tvbLREO
QpmSieQkleTq83g0SFr3AAR4jcqFlfCZsQbSUV6/i/gcorDma2X4R2WdrxMq
eEHMk29Vf3fREWV1MdyNGSBvRyAXlLqyo0PfSHWONmzn9UQI/eT09WQK9LeX
7x4q3oZRY+2m5qDK4P07yj6OlZmsRG+WYkvqh9l7N93NI+9gsw2PXHQ18d0r
xD63Hw7cIvJhCNrLkpf3qjnmKh++krydZO+Kxm/8g0pVCFPusUCWyGW3Dy3R
I46/6LHewG9UtOLfKhBhxHsTPkWljiiCO0VPP6fJqSTgBOFKUkPY72VlsRA1
E39GH3OYlPBUFS0TB3l862qs69BIxYpcVFs5ynOKdeEYIn98TD7m1WdIl4dl
WHT4zZFONS4eRyBAz5SRb4cnR+amqDqtgkRz9ztm8xGhGKek5Vh0UN4nuccZ
u78o6wLH3WK4ERgFKpd9GRn9jgzSIyI5eYEr4jkh2mRjWPD+NnqSOdyUWyve
Btf4yKWvajWAQjIPyNbRGh0SXo9eNvRooYEzkFwX62V0vd0bmJ6HdFP0TE0s
XZWAaNFwZhgkZRCzLcdGKrowpWIURvLE68fpsM7qRLuXMdTR28WR4t1sba5g
cN+zFbxNxhDOWPcxqX/CqsDQba+bxywahKhgaiaZr9kNM9wbMeoios5lCY1G
P1VUmyoNvEllG80ztJwVCRdnh1TVbpxZBYOjHTearJW9FZmmb/ekAJzp64Ea
SK4m2Hod5gX7ftO6Hef/vtedPHv0fT6BSjw8iVvFcwTzE++fDcFhe1OSKnhp
IZ9BRIYWs3T1u7iKZmqtk0cf39RfAQUGJHuk5fxQzBTuoT5QOPnCJ/SJlh6x
mgG2Qz771DleMLV2bx0E4SwlqsuKLnqot+rU8js0VD5l6HSI1gcbGsRcHKnk
qXknqNVW0UlisCTe5C0HggwqNKnLuU86fZDcp8gaFGthI/qnzVmkeVDokGuq
XhqrTxx5kq5HQSuEVmmTVe2HtSii1NhHHeHbPcQHuT9611qYoYXZmKFL4Ctf
SFwgACNp0XO54WCvXJBWapmkJVGKhRTSVPmvIGdUFCR4IpnEDOjVgAqCH2Jp
pQGiijRI47scz9HohqvtYKGP/ZtlxW6V0cpuxPKWfrNi4lB61YWGKWTg6Jgu
KtEU+RU4mGDBw3PPV1Y1A0JaxbCj0iPJnzxHzkpB/sFYRXiKXFP94nQMXNi2
JO0U1yRRMVRs3LbkduhrkieLYrltxKyhd0boehezoBQWxiaxExDuXsm4cArv
JV3BDSBVCqo6+VR8MPdp3hE6lQkStGeeh+F4eWxYtpnkQwFVVq5CLWoof5t5
2IG1VV1vOOP90dIvlNCmLJh8BWOr/aLXYexfD0x+UxeViN/48nKnzLakycK2
h0qCn7RTnEX24PyoNSb+Ujj9pzYig4auA6qiVZKmLBaClAjpAcsFGUbcDQe+
2eW+pIrIdVb4W0/P2M+fmJch5cvpScHhiO8duy0ncG+2k4IwZlzrRhIjMdva
g/RY4UsAtwQcTsfVWCaCjNVZp+VUQXsqPoXs8O0RTSgphOuDvL40K3nXDeoM
OrsetO3dhOqmOFgsFT0TPEikbUf7/l4oiVRhWXeFFHRDn/9E0u3NuU5hx4eN
oCwzcXTE+tXJtaCyfCfPnv0nNUzKum0tcCuYSeTaZG1lou1w8k4v5YgSxsh5
IsFldcvGbbLK/XnnM6UzAzHvYwux3iNVDkkuD2E2pTYLQrBo3Lxx1Ut3J/Im
OnQVvTLE9cqi+mTIsR4/wbvuThkz/yX1RBEaOkE69z7PYOIiK7HdM0m/KmvK
sJNK/wiBkaGqs6JcPtgsSpCSt0uEWngB156iIBsVaOYixKgdFfmyQjFOsSrG
YhPKoMV8ew72ap4Mchwtv5wqDTk9A3SIb3Y1F5C6QOXdNmg1H7gvYFrITQ84
idBstLhBXDwMK3RWgaOr8DeV7NGsQ/J7U20pIh+Yy4zhFWZ4/miFRShZUvDG
nMbs7poAM7ka8jlXQxbo5RdXSGYBYHVrDETLxZrPUcbNi8/ZhZixlTlpTp4d
n9hYnIghGtkMBD+VAqS0ik0QD5imffuCz5yxy/YOBmkxkQnrz82dKUs4QFJs
iTGiQ7qNkCkx2lETizXg+2tkr4AP//Xz+QUx5IKCG6wyxmCLKipA+EXdgg2k
pYk0O2xnQDRr4e+W4kpW80F4PjN7vmO9GlbJSp7/e1eCbSSwYAaDaDX176GX
E+KPIga1fCUIZLho1oFBkdaCiHM868/RZiQiSZzXyh8QBxvmkfVj+zTlZ+ij
7Ce7uQJJMOVvMZE3oedkp5OZvdidmYRczS1LrhM9dauNpzn3XPCYRBA10dDQ
iK8agdEof84U29CjprgwVUaPfpa9RbmuKivuMR4+mrE7GzsVPnAF6yowj6iq
6KwaUBmWmDkQy8Q5FqF8Ptm8l3s3L99iBXMU3judDP5wd3ZvwU6Z/58ZQlJh
mUosW6O1VbjzEiyj6nWx2Ck2x+yiTXqxBMRZHXNJvbxzThJ3udO0ZLNwC2n6
wtQS65kn9vWmQW8gC05BmJuHq+VuHmTw9oMZT+EvDC60vTAmiZGkXUtatTgd
sVeKFo35HeelRQB4tRNd7Z56VxYUys0h2utjlSZ1EuxH2jL1yT1Wk0zZUb9K
BhU+SmbDzoLEMjRvStEmJRx+Zia8rJhgop6NFghh9BgjRGmnA62vHA8iriAt
e1rRBYimRUqBfIJVu1SjnQRqqVlvOElggjXCbSgDWCo7+ApSzGa5OLhUUItg
5IJbwaBiRdVnUWsQO94tkY1Uz4HMXyKvXe4JQ5F3cpgMW62MNTzoPEwigaYe
RYHyqUvMLF26HYQz3fVvxXYsuCBtIMSe/1j7Hc3lpHClNALYpR53KcnmxMmH
9YZ08ANWpw9Sv/u5UOFQVccdLJMQpIZNBEgm0KydOo6iCIshJSxQtdJzimso
ZtEKhWjtSHFrObQo42ot2QR37xDThmqOGEVPWGWutWGFPuYnAHuZaXUOvFWa
1j98I7WqsSbKmNAkUCJGM9l1YxvA2qVOwJhZ343H5c/2FC9yXqrdmQnnkpLr
Sm+xggUzpcH5qAjpvWeq1dhi5Vy6D1iIzSai0oZzh4+5LFndBi1U4i00Yt35
DlFYCuhQiWJNCkq/i/HioB0K601O9Y/xG+u8t21AeWI1No0oW/OuixVCryos
h01e1SQjqglxJ6sa9kI4etQjNPdcROmwMPFtXOLiWYAg5CTxow6Es96d/6O+
qEoTTM2lvhN01ndbresoH/fl68fcz+NTOujFLqrly+LXXrLNYyxPfBfuqivi
MUIWhXM+FhyVbhk7Pnjfg8yVyvrjg6fOrj4kHIt4xtg2Hr5GDAknSzxV3gPq
MVcI5xy4TlEGdqOESVO4lpIfqZqHlmCPIyMWsi24G6BAapfcu+IRYaqt7LSQ
8JdtoJR6CVxQ6U60hnlNHmfqYsG+OJe4yzIQW5eSXOHLxhN3AVYu+Iz+c5Mj
hlO3GpC6IWq/PsneUdk4nN91LliGj6l1N6TlsK4RN4fsZU4oE6VfOx5wR7EB
KWk5u5ofTEbYIp+FgRSxgVRLXNcdSPq1L9xob7WiQnxAMiK7PcSOjYIq+put
qG5M5UCa+LBtGOu/3BLaRP2eaSIjsRbJZtQ8PePpilBppJOdpdywNc8pNwZG
X3OGWtvTTnR5aBTnBTdEYi00Oq+IXToeKYUBSaLhCVt5wJ2AoisWmCfmfhyh
7cLGihDr0sgkcD7Q8kHT34WOXJ8BxS0MJ0FKGe2B4orDHROl1sqejpBRZgwE
BFAF4NaS2v/F+6A80JndH9qibsHFsCfXN3/NuJ9ZXpLXKSnVlpbpSNztfTBF
r6+fjC3VvFOMw289jPrvgs7uCRKDCH8jzCx6911Ze4IMTH3O7Ev4AYObVDXh
mLAAmvIU38IFELhhr0h+7OTH4/rOfdZZhJlqi8npK7jCxMs0qU6zzr+Rkrs0
ipc1qEI/IESJIFfPjiRjnu8cx9mRU8IArjdN0g2EjJG5ptalLqxegYA5UBLl
fwIx3lM3LnotIjY6LeOjLZ16x0lz1sPc7Ytlu/38VPZ67PMZ9v/w5Vk8m6uh
d97nTbWT8GHH3W9vYp59YDjMzE+eGTRXYCOGcEMbZRABMpAq4td4emZr5IgQ
yinNCY04PpnJTnoZxYVY1Ptqh7E8F3Z/ILdS0jFsZ71jlS+GSOE9Fw+ftiHS
hNQY4b14NNNMjSOfl4gN7838LCzjJpfGjRlXI/TZJ1anm6bNX2v2I1CCr98R
k8YcsEBkua8OHGtekcOukHiFTEH0uH4mHWcVxgZ0tGLep9UWGHKpHjOpzvBN
9s9P/u7ptm2eTovqaaju0Ogp4WNc77urd5dv3nwLHP/56V/kMwoZvHnz00c6
5sMj/ByMXJjmL6D8HP5p8iesDo6X9/Dg8Pzs6M8H46ycISyynof/MaWxDtNB
3rzZMtEcnpwewX/j7OCfq4O/yA2XzcSyn2329UsDBHrwqyQuJbmOY3mnloTl
Zbi6CYb3c90pJa9MyriR1iM6R6R8n3+kkTIstHNwWt2fTs5mi2JSFbP7yfPl
aTF5cff53w6UD9NjfFPw/t6LS8nKy7GvpMeLtJQqs5R24FoOSeHR6PtCmqwz
xRQzK7+h1EId9foVCZiDhs8z9XLxRb/HWiA7yas+IEB41AhKQY/TSlrszDGp
WJvaWo2heP1KbsQnWu6XDqIIOIO/jEYfKOBZlpoLao6YvHxoC06F3rn8SdOr
PFENzI6Ietn+0oFcyRLnPrhRlFPEZs1uVVpX5d6/fxfxjGVKX5+d+ayIy+NX
Uh4Ov/z69MWrpKsx7AqXd6e35tg0AJFtfbkXojhQkd/V2i++J49i9wrNa+Wm
K7T0Pdm8ty4Vel6LjaTNvJI+uFy+8pomQXRKbi+aTVKfJnA5G26l2jFccThT
0rB0svGCChnSRdmj9UeNve8HDPndNt+aWk3JHScHlOFPhpNaHNO66+q1BUt2
R4hNfonUhqfFzUPYWtjXVF1NauzoJaMgaQmWQopZsearLyt8Oq9mlxRap0u6
Y2j5fJLzl7ED8sqqJarusifOCbq7aGnoyEEPeYJ9wtwhvNNqKf7BwUjdTUuV
tunF3pDJVlNcWdbdDiybi5NwVs4XvJ5JmgudkEjal3ElkG7CJ5g60NV9LZcB
MdT1WuqIGoQ69Xv2/TQaeZTsvt22gbFOrZvy8Op22vGJAp4GGginEVpp/8Ad
WvHeqlOn162G0BaUC0T7mk6OknPxE/MykX96MP4gvc4lR36Gu1RpdpHObG9p
pMdK5NVJ4EgxMt4XyfssDb3UHhnoWpVGjnvkTTq/VnbeT2KPW8h0vQXdl3R0
UwDfPoBfvxWW7+32JfQujmksn8jO4uiCQa+WFqWODeVw0EdJlQrpJFzKugFn
Uv2SjL4A1LgvpUpS7gfX55IbWlDXyQTGABm21sl1LmZM6c3I/2gnvM9WGrZ8
Aa8w9otMhwKMGg+S5njsnI89EVTWSHDfisIyO2OxZm4/iZajHuG1QTEZRRuM
jhU+cavtQaJ5u056I0R4p0lW0SH70n4Yhxz1Oe9+ETMprZCJxQLUB72r3jKZ
mf+Ge6Cm/UX/oCem1sX7EsVOREjftUOoCwrqMhTNrSf1/bqmgy1rlNoO2Byv
Li6inMH5YmPVx8L7V7mzwEbiIbGkontdulGUP0Qdg6gnKYPK8JcuyK5dUHr7
LXklrCl7qOpOT4/Uq8E1M/Y+nxBCLOhAdI797ovQLSa4B5+7SVe2k037SWtv
xtYfESi2Vq/Ok37lq5sdmtcmGOQYor5YnOzkdtJnNzgeEkH4DoaclHSr6VCw
1lkR/rBNi5z7fcwuiPzb+detVhoLs/+LBtyquSl3jPqNNiAiab7TAY1VqF/R
f0bgAvMkSON1MX4l5mJY1zi8CABGNdbVg76KbAGOw6CfaShyyR5kUiOHwumS
SG4B6FSxpHP4sl33ok97phSh3YHA46x/TB7XvmseXqIea9T9uKmgVKB80Br8
RTOfUDmskLBJHDvWjSzmSVah72jl30CcQDLPtGlU7BWF/Tg4qEVKe1PnVJ/J
N/jqlWSl0Ih2G3T9qXT7dmiK3cPcq+pLGlqJJyMEv2kuB+HxngYWEklyHow1
tjHRMXHxxKUJyYl1UDRSjEnpVsAxeYkZu608ksJfKyXAsdGS9gJrtT9NpFfd
SVZCqDGlOO8OqHhJCUujQmoHlPL5FBtfHDj3QOIkjZku89CXbGOteEo8mzPI
4DZMupoqKtpETOO3GVEiG8GV7JC1oDP3HhNTORLCtbKbK89uHPNAf0NIyMjd
QsNhaZXlHaqJjO366irOuMfDvPdcSlFFiNccgVBDBBSf0oQPUQct1zvvYt1T
1YBiwgrOyM3FkI9cUUGNm7FwYuL9riKWcUCBW2mvtrPTJFJ1phnZ2tY1/s6N
2yvVSEbUCkM5eBwTwiy42iv8qrPnr/BVms/IyZjK3bTokm8GJqXsu3rDRba1
tvfb3e7bspFTS4Qx5R9tWOniTS+itT/S4zvJd6uZkMnxL1FT2R1GE+OcVgVd
991gkNarA83yl8B9J0FZpRC9VS/m3m53sLBNnyVGBYMUTGltrsjHIZlDZtaQ
FO2LyLhbVhEjkZHaz9EnOjMTTZIlcWjmYdyO5lfXT8ZZGh9I/aqbyfvzm12q
eP3iBbpCxGbTMgY2l2y3MyoME6xWQ8JDYQN+HGr9fOhLheudYzrxdiL6NMqW
WtvGHXINhomTA1uhonGuFaULCLlEuwqbo2AE4DhFibFmiTjkdoLNMUUy4s3Q
eCtC+WDXqo8iNM/fX/dDgmBsgOyRokdD/a7FITDcCrt1nr3a7H+5zMp4WAXw
68DQegxQp98m6dzTIK70z2zEGVMdnE7KZSVlVTWVB+9gf4JJI4N8BtNHYinC
fc9khxc/XR2l/MiSDJNj50ISUtRXS+UL0E6CiBQ/WYVywxnMn1mIEK8wMZ23
1vd2KgUUErhLR9UGuXW0lJ23Moeu96/UVHANNBlym1MipPax4/doJ0LilsRG
pLqDAoGNa8NeaIYDKiXcgVRXi9uZd/Jz5EQsLHcGWaEFKv4pIlF13+e6h/ga
Gj8nuIfVl6aSHC2liM37LMqDvsWhQQEMep6edRulBDJ+fEJaFarDGTEkAWfU
Z46sn1Gha/Pd4RIQyCd0TVPZd1zpANrf2PXc80scHprQ3TquonW0oOaXDE1g
nsp6+JI/yIk8p9ntWw29wJYkb0pmLn4LIiDV3nAx4g6RUriOZKehCoui88Bf
doYauJ1uQyzPtK1scDd7ylXWtHYM3Y13cHDYhovcZo4C3U12wmaxLcceC6bF
X1hMEz0QszIN0l/vBFxOd3uvXmH14u+lillENSXXEVR9BAPS7c5ju5gdIpNO
DgxZQVGI6X5U5yxwQz0FI1A3UMEzY0Nryp7fP03WnmONF6qHksf54By5lB2X
E6ftOKQwbVSRjnr0Ykg3/bdk6MfypdTEIWgFI/aEk+Dleh4Frj+vAvbtKesl
91DW1kTpKCR+dCiqf0W1JGl61l9y79XtgX2BNbPVLx3Lp4wBpEQus/p2MrrA
xjLdYNFjtK3jtP6KDZfaN4Ik3DVmLCwWVhsioUTNqWU4aqKbxUvLDidpnJr+
XirIg73CbsNljXi0wUdtl4n0RVPDk2EphmJqasjKAa4eyUIKmKOlLOxIcgc4
U9XDv1LKgXF+avXEowtVG16wz5h9o7HAUmo/+5Oup4TA7b2DeGhLXZhoJMJn
8oG43w62WE5QMRacFmUNiIE1qYRlDYcoo4qR9jWkvLQHCeeDfThnoyISIrXo
KrlxDNEjNz9APPd022A7Tgkw9bzMHKmRxPtxhG+gxoeFOe1ekAhFoFuGTiBR
DvK2rWeFYi6R6tlPr718uCs77eYntJrQW4zdQ6gIcN7l6BdQNUvHSowyrSCs
Zid2fAqVlswcSL2YkXzgZprcor568IVNLYQVGAURsBDx0BTEao0lCch/ToEb
nM+iowpQGICueTpILQTDHXpdnr4NI5mPPzTe2dGByXXcb8XEaE7nY3l7FSrc
pX+TJDCQuUaIfofq6rT1Db6Ui01UqOZSkXmq1SsTKtoITorYe2J5ImZ3VOk0
EwVnXIjZ55WZlHCEZ+dMdOlGC18hRYZenHgYjCoF3d7XrI4Ty4FXhPdG5m2q
q00enyM3Ded8WyefbtWrYe731PH05OxiSVjy0MHCJqqmwHUoInjCwFGWycLj
1QqexgglhlGcLuaVHueyKdI2brjxzbSAE6fe2mIS9M44FoKVaExVu84YcK2o
ZJwY0AL8Ii8Xmi+ULxBbqjHcVsp2wWGRwlmxqIZza2arAn3bW7hpMKATrfH6
AUUKWfMhhM8wffaDMjrB+K+sQTQm4QnOMSa4c+zXkD84WxQWbACfoIhlSfna
0SyRVseDaCYrvc9qk40vA1B3Z/Et8CBSEmuv+DQ6iFqaNeTWC5AYEL1RWlHA
TX0UIBMxVL306PgTPtPTlZw1/i2zVPEIsMY9hAu1E7j3Rgn5ZMQGj+7HEwE2
tUZ7VNdM5sQ5K5iw8yfM+auWfxLfzutnZ2dpGtORFgkYeIVCuFLoDe04HVK9
8JSfdnpFPUnS1TruuJgA+OBXZY58ytxfh3uytGiGBDny3jOtkh817X6iWK8l
p3OoHb4/vzrK2K8ylOvFvl6PBs05+Zk1OTOeVRFi1mJt+PaR5dihm8jb8h7J
0MJJgqygFOO8RHZAzZL59e1ACX64GoTI5BIGXMpC4wFikCyboNMhvzDr9SLK
cOeiI0dVBqy9l8dMZX9q98ITHZ5a13Tw1cG+ct9avhdf95+zH85vfjjsuxKI
XL/qdzOETz6FhyOrulu0blorMY65hYF02kJ1dpvTbsDWdtxz9xt65+ib0Tff
ZOe9vCgqOb4A+1mMum92vBw4Nf4ttq5VtqRzbAfZDzyNP7jV3Ecnv1fezUv+
hB79q/PVcKEnRzSv3t6M5A0EngsTtmB6zwgP5rRDLC8TU1yjiLnGDzG4TyWn
Ot5kN9tUuejHebyHm+Ku9C6aMByd7rngqDlLmeM29aDhhevBYhGFb3uex9wX
BJIzPzPErzrCSflXA9T1benhxNCo6KsxPjVxr0Oh5+cxG561HJy0aHE5VZ8A
2iKmZPOMuHQkU/XceDbi4qGi6DCsm4SucmKcL7UBMTNk/1qG9MmobsVRLBtG
3Uvs5g2fyTo0ln8AizxQ6YxPYnIRgoRo0Uk6SaST6Evsq4dkmzrcsORKciao
ajtRurGQ1FInaJ34GiQuS3KPFm0Hq1qIek7n2FbKObtYq5unJcfUbUDEuynC
TBWUZL83DAUTDddtsNwQ3kGq1ZyW/R97B0hCLK4UF+8wvr93oJQmNQhVyrXy
I2bv5NTAkXVW2i9z82jeq7ed/F3goXoWB1rABCwFYaoyEg8cjrFRO4x7aG47
dKjp9lLRKwkUUUIKK1Wgl46xwHnF6bVoEVo8F8MGAWvEcTaac1W4O4MNLP/e
dYaUfnAkS+1uUq0rCeZoce7YeJhhxh3X9m5la+MCh7zFfJeGstuQPeJKpaiR
eemlU5ffTtL5CpeIFO2NWL6a6a0vnupmR2oi6F25ouhIhSR7yzv8xqq2JMfe
fx8P3u7YhgUngPegGcxB7E4QG2MpvaXKeZ34dVKFjcqT9cYnThHJjOPbqnST
E6W2DBUmz2QmQ0Bm2QtdLOk5lTskXylerZ9cO6O1qRZz+f7i4z9e3x7ChR4P
qgy72szfQI+Rtw6qMiQqDe5mC1HdJpHISPVpWXx0Eyd0TRYS1W3atp2WZLEC
BOTDJ4sMb7g67+KQ/1+T+ttpUoY96xzWhPZdUNPRb5IWVL2quHR7krfI9oze
9hKzxXKLQSUQgtYBZaguICZ2lSZknFBPwqEOLDfFlDS6RWiGiLsV6xWUPRcs
1SRBAaaZ6PEFZrJIM2hahS9O1crxCu90NbJVdLLvQf3Z1O5SFBdkCljIUDzE
FjpoLXbgfsrOUV0S9d/sCs1R2i3Odd3Un7E+KptaotxEYJNzMpHfSqF34sd8
tAeQ68Xe72fQm4fdCOpQX8T8lRXjVB7Y50Tt9+5gIzA6ATtSrFt9ijUUbTy4
b/hC83+ImNO2ebG0dtTzr/gApGuLawkjYE0ObeI1OIyp/Ud4uZBrkyI2UAXm
jwu+eOqkGRlAdvdYSALRJjEPXBRNSxXl63TWfiaaIcZvdspJEyaIDJDD1vLF
tJBtN6XSqNYwJMF68gRUSLiTt/e7Yy00Q8xaZ2Fg0Fd2XQdg3UOoehOU8Ubv
wFZJX6B61dIkaEZUUCbskrwQFAzUlBthdR32F2yDxS3CZ3jnlp101B9F6o+Q
7WRJKHovuIQpowSpRBr3U/AeIV8Oh3V1VWIY1y4ixsEeYCqXlvISEarJS+W3
FmsnwehfK12rsZRe4BYyQ8dEBqgZk9IFnBtSuwrSRftp4Gx6tbK5CnXiCuuk
q+We+9l6VLlPOkcU0RfA1K48apO4WqJGjq1E0DBE3IGFOMfpguulc/VsTtga
rtKB4g5eCSrOes0K+mxF5p0sGbUd9HEXm+B2mixEpnQjJC7XHGtOoI5Kc/mQ
bCQCTFiJxVfv3U5pudUR9BidGlYiYEGpgFwIPIUbUV/IolKff0W2hvUYABli
L/rveKO5MCrVqoDbnC+DpF2mB49Cky0uB+AVH7cD0fNEVRGzGp15if02yOs+
dHBRtaHuHbGRx9gkKMJ/z6+tbrfU3uObQ14bCv60yy0WzWNKEmi1HleixLTM
as0FQel0xByo8raliY6HVhjj0nip7ld1yX2hLcHI1g1TphthxYZx83prNOOQ
YgekNm2JmzfU7Nog4nhnLXF9HM/cHTej2QgHa9BcSlWleSiqjsqYJ5U1zHo3
PH47IIWJuHx/hdwJB1TwxFu2k1fYW7BvIoDJLSZVGVvLLS295Et1KVZJNYkv
6pH1Qi1twhtFf0Ch0NS6McOFfTtafbIvrekFYtseYudLvB3v3p7h6rEHM+hN
5cMR0R73hQGmW8I0Y6+iacORCHINwGO+JYmWaNlJD9CiBHwKXI2ChTEoSrzf
B+mRWLUXBUyJMWrKDZm4sIKDDLTCupEBF/nMudt6ubZe1zLrMUSCTNPy1Gkv
hygOf9fu0RqnoN57X7vKpEkANp2Eax0UvTtIp6qDDHfAO9SmQJYnfGQONcbC
RJK6t+IsrtZauru9WZBAHnwxn3MvQbjXlfu7tGMYE9pj+yTRXUZBWWUE5hbi
A0a7eGp5zPM0J48hvtwqjTBnsZEy84BdwuNSyeiZAs3LUAr3hWs7JOmKW2pb
LCBlYgscKdY0CudvWSxMzyZifjzNS9qUslFLjeQpooycGVEzDXtWyS+qJYGY
dfXe0+qbWvOSCpxFmVxn18HnbO+yS7ZpXaJT0i7WRtU2CyjqiMnOn2KxYmZV
XCWhZlgON/RmUJVU76pjTBUePSDvxgG7QNZmkMLvyGszoJqT6k+pO8taFiWD
9LhkdDAjjcUXRZ1Gm00g9Wq9Pvuyv2hS7ng/TEfKWYaiO1u8prsCJxmERYrr
Qd9iRqqYS1oQxJ8A5zMlyfzi8iRHqcvqR2JGmCjWgmJI2R7jps2sRWc8UZuy
cDX11S2EzbBYiEKtUIezjeV/weqLRCI01Eku0Lqsl9RZmn28lKdYllvKUkIT
Xeuujv3B7hyaJuCxwiJWx639g+/s8C4g33x/K8R6FMlqZ0+coamlEjytWVqv
8sL9Ix3T1B4jQnqL5bDtVClXbdDvu243ZYlGMSVlQR9tObx773u7a7fe7Rvd
4rBZgUHBEUTZWjEJai6H4axi7fFCrpc2bibMP7om9cWiH/RvTtqXp397zNhl
tW5NldBj3mXPVPbeml7RS0f9BiFzU6H4F/rwiedKO0zYE456pGAwcYHYLGiO
yXkz7IXeum0oDsmqtPdKDqqSsTqFWNVfcGo9Jjb2BrnDrjk+IK6vdbFckc1g
/YRZM6XRgvdy89vVbkX2wxBW7xYbootc21w47OUQDYSeryVJ/ZNyd33J5HtS
NqRIoyf986Iou0YLS4g106+PQjS6kpRS8nTGjm4DXhnh+tjEPAZbhpjuMMba
XDIq2RMrq6MG69xyjnGTTF5kHjkC6BEr4VeUcbDrhv61a4z9YRmIXg4pqt1f
ZOdx4qwQ7m9P1u1ktso3v49G+tnh3Ul0KZ49fy4FPe5O46evMDXviM5inf9C
4ADy9y7K/F723XX2G2inGGvJs9ufvIAyAXw9O7cZmMp1aOeqqloaaFGlHnEy
DBc1fI1MVQc7xVqacAMQJRHzKdF5uuZMKSCjX1AmIayRmuqy8dJZ8z8bCREC
DNYXTTtKsYP3txOUWweZdjhS15p1V//tt5vL9zeX1x9ubmHvEtpGvZX68qB+
drctK9cpZk/J6eQkzOX7+vhMFdfcvC1CmNoLQe69nvbMahklWE5xPDchZG8v
b6JINZMfOYula+OAJy8nVPYPRPjkB4IZSVXBnjBJTNxk7FiR6BVXECQeRlVS
B18QmxPPC+5SgGgYkn+yyNMTKzq6YIZo6Y1aiyuZwXGv6en+bXa1ZsiUJWf5
K/c2/NTthHsK30hxVHOLvfIFE8XTU2ObHX0SmNYd90yE1Z32n6aWMvqwEFby
GRnjXIuNuM2voamtCK9Zwj0ennTvXdVcv5pqRwRPQPFW8OwsGK6a2em/nrzs
0VCSKJE2rOZ5n/Y20gqMy45qkNwJB+rj27euLM9Hu7FGuQxvlsFC2kLV9WD3
uccM8MQy1J+VvpyAHJvsxIQrcnKD4sfx/xlWMaAIHTt0aOPxTeLfiVomFl+Q
q+dLf7mNIy+wpg9h/LDjSEPcocitDMTPrhiSlCVcvkYB6YQmsOqbgjVQvjDF
o8TmBXAkd1JYnM5jnS+roiOLu1fcYaBeWcrmrBWxY75zK9use9n68nCg8tCq
fT1zX708CnGsjitAzi0owhMuUSSRh3FUKhMOwA5f60pDhYtAp2BQU92rqU5z
0ffzFWVbnV04RavDEMRVE2IdUSITSslQEsPj0pEYSAphIwBKhalKmj/DlgTT
QVGLUoq3CHgKWzsI+IHqVBqlK9B1nVdbjmg/aD1ZjhFgbkC9bRFpBftSzAih
FJ2GWPIKC3JbyY9pEOcwtzDYvzqVRYFQ+EEqUlEZJ67P5faB6JlEuPB0e8Wg
5RcvPuVJsE84Zq4r80lp0sEkuczCsOYXr5BDC0t5KFbjyRHkqjia2wSncJeX
UohjsEQQzO5aNbw0JVbyYDmAfI1hByqPTEoWaN/zJr+fErYzqb3G/QbzuFcI
CqXIdoy23MYEVld9UqDMznWQlirjhgikpMJs/uLQ3PoT7diStjW37E5n4SfV
Knu/JgxYLxCugCYX7aUoLQc5d6XRTue5c+vppI9rfR99vbZjlrKL2pwzKnWu
m7pKcsZqtbhedjyjKBXH5k61G+Ope/2x+4szCqgjpcjBhjmzvGmK4BsR+br2
WhNmsORo/yDcZsftTTxbeyay80aihX3tnckCuTy/JiHOtd8E2bYnLJdL3wkx
AqSYmW8h4fFJsQrw1JcmcyEegX6UkqVtitRAobrsEIs+IhqDWHDUH/hzhGxw
0YgXp69PEAJBqCgu5fELCPkFmJ7VZLPZYKW4kG+oWhz8P5gAHBTAYTb3WiX5
xdfPT6hgIqOc9+AXhwpsWeySSXS+xfIhMOrl258+fjh/J0acLx7y228fri/f
45dX77/HqRf9BtD6vkuyK30EdJxxXDQ1Wft+DzPbDCwu/xdvO+o6sSDmEMzM
9hmdl5f0IifbKEmF0/m0qpv2WGPp2G+27hjU2LZLzlhLVZ98jUA6eN++w5FG
Iik0dngZAgaJlfPiDlElOa2p1nMBJ0fswAi9+mxKuQTy6N0evr0a3vRzYp8U
tQ+UEkTqDNIQDLuAuawOehXQqt22cui99FGpzEVSnbMME0991BDY9XCJcOaK
E8CueUUshaculzi/q4t5z9+UlnQLMky8AHruaZmq+UMF5D4DjUCKSNUE9jnU
KlevX6Ano+e7ioxl8KppHIwqR/UQi+LmFt1xpwYh7To5fsleYZiRD7q9P78x
HcdnSxz32jE6b6Eclp6dvMMXDPSL7e9EYaV4n8B5sI5ykRTD1LBDsUYeJB6W
fq9MJBquHMFN0iOG0LSggRKbVqrsrTRO5NjTTqPB+OxYsFio6w21GfJHqSUo
0SXA2FbG8qQVjyJIZgDNd+z6GKI5VHC15WTtosT7YWdkK3Jg0hXVQFOzB7UV
XxJ9qkWQJNs+ds5Nt9qyE6lrosfBuPojvRqJW+nSEY11KmRHp241SP+fj31Q
4f0PP3bSll3pWFcfmDhVbFjb677qWvRg50c2uri4LSc09y4+NaGC+90ozt55
J6XppfXk3Q1zK/SHgkn1Hl+zeYIphkgNMsm+2XYc6dhg27Y7sgg/6SAgQNDb
WdeNYKfrLXtEymCepI4i6tUctB9yQRGaEj0NlQuuzQPChYPwIqm8ATPWPqPH
FBXwJRVtlbu1Ja20JNFMx+y+ygvcJVICO7DUVpg48cB5NWHDYCpsw1NoWz1K
TkYvGldxjy0rSJqxOVBbKUofWvv3VPF04q3Ji1bj7e4CeCBE9x9f2pMqCp+/
Px+6uo3a9/xE7xruLGQ0AhGRXQLLqZs37BpUz7rkWsGc6rtYBJBdda6BMs3m
fIZOgDLMuVUKTSWvPhnAes2pbHdFuNeD4FwiOheCE8JOE4lieUfuOMTXitdN
7XCsCQcmEmA4zFy+elyCBEnLfIpvtVdsl90UWCw+piiR04eur8z9Xd4sc8zq
vNiiv3ycnYPBkqOFmF2UoCZphv5/rcFM/AF3oOPjuSB+W9bL0ejP2bOTbCJd
MaTmW6xqueDOuWPpHHIXrAA1Xc6WgJcmc2i0UxjtnHtscCD4sfLSV8pfb61Y
MA3ynKdkQ3AdGhiWxB6RIKmAAovU/aPfnvV+6zc3GgYfQXJyJzdm4hQQWQtX
dJVxMDeB7iqM/AJG/hg43bzoNDksSosDExfGBFBYX1B+gzVZNTb08/fZAi44
+k9g/MlkkuGfo/8DfSQBvuDtAAA=

-->

</rfc>
