<?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.3.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-aes-ctr-and-cbc-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title abbrev="AES-CTR and AES-CBC with COSE">CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-aes-ctr-and-cbc-01"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Arm Limited</organization>
      <address>
        <email>hannes.tschofenig@arm.com</email>
      </address>
    </author>
    <date year="2022" month="October" day="23"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) data format is designed
for small code size and small message size. CBOR Object Signing and
Encryption (COSE) is specified in RFC 8152 to provide basic
security services using the CBOR data format. This document specifies the
conventions for using AES-CTR and AES-CBC as Content Encryption
algorithms with COSE.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>This document specifies the conventions for using AES-CTR and AES-CBC 
as Content Encryption algorithms with the CBOR Object Signing and Encryption
(COSE) <xref target="RFC8152"/> syntax.  Encryption with COSE today uses Authenticated
Encryption with Associated Data (AEAD) <xref target="RFC5116"/> algorithms, which provide
both confidentiality and integrity protection.  However, there are situations
where another mechanism, such as a digital signature, is used to provide
integrity.  In these cases, an AEAD algorithm is not needed.  The software
manifest being defined by the IETF SUIT WG <xref target="I-D.ietf-suit-manifest"/> is one
example where a digital signature is always present.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and 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>
    </section>
    <section anchor="aes-alg">
      <name>AES Modes of Operation</name>
      <t>NIST has defined five modes of operation for Advanced Encryption
Standard (AES) <xref target="AES"/>.  AES supports three key sizes: 128 bits,
192 bits, and 256 bits.  The AES has a block size of 128 bits (16 octets).</t>
      <t>NIST has defined several modes of operation for use with AES <xref target="MODES"/>.  Each
of these modes has different characteristics.  The five modes are:
ECB (Electronic Code Book), CBC (Cipher Block Chaining),
CFB (Cipher FeedBack), OFB (Output FeedBack), and CTR (Counter).</t>
      <t>Only AES Counter mode (AES-CTR) and AES Cipher Block Chaining (AES-CBC) are
discussed in this document.</t>
    </section>
    <section anchor="aes-ctr">
      <name>AES Counter Mode</name>
      <t>When AES-CTR is used as a COSE Content Encryption algorithm, the encryptor
generates a unique value that is communicated to the decryptor. This value
is called an initialization vector (IV) in this document.  The same IV and
key combination MUST NOT be used more than once.  The encryptor can generate
the IV in any manner that ensures uniqueness.  For example, the encryptor
might generate the IV with a counter or a linear feedback shift
register (LFSR).</t>
      <t>When using AES-CTR, each AES encrypt operation generates 128 bits of key
stream.  AES-CTR encryption is the XOR of the key stream with the
plaintext.  AES-CTR decryption is the XOR of the key stream with the
ciphertext.  If the generated key stream is longer than the plaintext or
ciphertext, the extra key stream bits are simply discarded.  For this reason,
AES-CTR does not require the plaintext to be padded to a multiple of the
block size.</t>
      <t>AES-CTR has many properties that make it an attractive COSE Content Encryption
algorithm.  AES-CTR uses the AES block cipher to create a stream cipher.  Data
is encrypted and decrypted by XORing with the key stream produced by AES
encrypting sequential IV block values, which might be based on a counter or
a LFSR.  AES-CTR is easy to implement, and AES-CTR can be pipelined and
parallelized.  AES-CTR also supports key stream precomputation.  Sending
of the IV is the only source of expansion because the plaintext and
ciphertext are the same size.</t>
      <t>When used correctly, AES-CTR provides a high level of confidentiality.
Unfortunately, AES-CTR is easy to use incorrectly.  Being a stream
cipher, reuse of the IV with the same key is catastrophic.  An IV
collision immediately leaks information about the plaintext in both uses
of AES-CTR.  For this reason, it is inappropriate to use this AES-CTR with
static keys.  Extraordinary measures would be needed to prevent reuse of an
IV value with the static key across power cycles.  To be safe, implementations
MUST use fresh keys with AES-CTR.</t>
      <t>With AES-CTR, it is trivial to use a valid ciphertext to forge other
(valid to the decryptor) ciphertexts.  Thus, it is equally catastrophic to
use AES-CTR without a companion authentication and integrity
mechanism.  Implementations MUST use AES-CTR in conjunction with an
authentication and integrity mechanism, such as a digital signature.</t>
      <t>AES-CTR keys may be obtained either from a key structure or from a recipient
structure.  Implementations encrypting and decrypting MUST validate that the
key type, key length, and algorithm are correct and appropriate for the
entities involved.</t>
      <section anchor="aes-ctr-alg">
        <name>AES-CTR COSE Algoritm Identifiers</name>
        <t>When using a COSE key for the AES-CTR algorithm, the following checks are made:</t>
        <ul spacing="normal">
          <li>The 'kty' field MUST be present, and it MUST be 'Symmetric'.</li>
          <li>If the 'alg' field is present, it MUST match the AES-CTR algorithm being used.</li>
          <li>If the 'key_ops' field is present, it MUST include 'encrypt' when encrypting.</li>
          <li>If the 'key_ops' field is present, it MUST include 'decrypt' when decrypting.</li>
          <li>If the 'protected' field is present, it MUST be a zero-length byte string.</li>
        </ul>
        <t>Since AES-CTR cannot provide integrity protection for external additional
authenticated data, the decryptor MUST ensure that no external additional
authenticated data was supplied.</t>
        <t>The following table defines the COSE AES-CTR algorithm values.  Note that
these algorithms are being registered as "Deprecated" to avoid accidental
use without a companion integrity protection mechanism.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Value</th>
              <th align="center">Key Size</th>
              <th align="center">Description</th>
              <th align="right">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A128CTR</td>
              <td align="center">TBD1</td>
              <td align="center">128</td>
              <td align="center">AES-CTR w/ 128-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A192CTR</td>
              <td align="center">TBD2</td>
              <td align="center">192</td>
              <td align="center">AES-CTR w/ 192-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A256CTR</td>
              <td align="center">TBD3</td>
              <td align="center">256</td>
              <td align="center">AES-CTR w/ 256-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="aes-cbc">
      <name>AES Cipher Block Chaining Mode</name>
      <t>AES-CBC mode requires an 16 octet Initialization Vector (IV).  Use of a
randomly or pseudo-randomly generated IV ensures that the encryption of the
same plaintext will yield different ciphertext.</t>
      <t>AES-CBC performs an XOR of the IV with the first plaintext block before it
is encrypted.  For successive blocks, AES-CBC performs an XOR of previous
ciphertext block with the current plaintext before it is encrypted.</t>
      <t>AES-CBC requires padding of the plaintext; the padding algorithm specified
in Section 6.3 of <xref target="RFC5652"/> MUST be used prior to encrypting the
plaintext.  This padding algorithm allows the decryptor to unambiguously
remove the padding.</t>
      <t>The simplicity of AES-CBC makes it an attractive COSE Content Encryption
algorithm.  The need to carry an IV and the need for padding lead to an
increase in the overhead (when compared to AES-CTR).  AES-CBC is much safer
for use with static keys than AES-CTR.  That said, as described in <xref target="RFC4107"/>,
the use of automated key management to generate fresh keys is greatly
preferred.</t>
      <t>AES-CBC does not provide integrity protection.  Thus, an attacker
can introduce undetectable errors if AES-CBC is used without a companion
authentication and integrity mechanism.  Implementations MUST use AES-CBC
in conjunction with an authentication and integrity mechanism, such as a
digital signature.</t>
      <section anchor="aes-cbc-alg">
        <name>AES-CBC COSE Algoritm Identifiers</name>
        <t>When using a COSE key for the AES-CBC algorithm, the following checks are made:</t>
        <ul spacing="normal">
          <li>The 'kty' field MUST be present, and it MUST be 'Symmetric'.</li>
          <li>If the 'alg' field is present, it MUST match the AES-CBC algorithm being used.</li>
          <li>If the 'key_ops' field is present, it MUST include 'encrypt' when encrypting.</li>
          <li>If the 'key_ops' field is present, it MUST include 'decrypt' when decrypting.</li>
          <li>If the 'protected' field is present, it MUST be a zero-length byte string.</li>
        </ul>
        <t>Since AES-CTR cannot provide integrity protection for external additional
authenticated data, the decryptor MUST ensure that no external additional
authenticated data was supplied.</t>
        <t>The following table defines the COSE AES-CBC algorithm values. Note that
these algorithms are being registered as "Deprecated" to avoid accidental
use without a companion integrity protection mechanism.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Value</th>
              <th align="center">Key Size</th>
              <th align="center">Description</th>
              <th align="right">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A128CBC</td>
              <td align="center">TBD4</td>
              <td align="center">128</td>
              <td align="center">AES-CBC w/ 128-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A192CBC</td>
              <td align="center">TBD5</td>
              <td align="center">192</td>
              <td align="center">AES-CBC w/ 192-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A256CBC</td>
              <td align="center">TBD6</td>
              <td align="center">256</td>
              <td align="center">AES-CBC w/ 256-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="iana-cons">
      <name>IANA Considerations</name>
      <t>IANA is requested to register six COSE algorithm identifiers for AES-CTR and
AES-CBC in the COSE Algorithms Registry <xref target="IANA"/>.</t>
      <t>The information for the six COSE algorithm identifiers is provided in
<xref target="aes-ctr-alg"/> and <xref target="aes-cbc-alg"/>.  Also, for all six entries, the
"Capabilities" column should contain "[kty]", the "Change Controller"
column should contain "IESG", and the "Reference" column should contain
a reference to this document.</t>
      <t>Ideally, the six values will be assigned in the -65534 to -261 range.</t>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>Since AES has a 128-bit block size, regardless of the mode
employed, the ciphertext generated by AES encryption becomes
distinguishable from random values after 2^64 blocks are encrypted
with a single key.  Implementations should change the key before
before reaching this limit.</t>
      <t>There are fairly generic precomputation attacks against all block cipher
modes that allow a meet-in-the-middle attack against the key.  These attacks
require the creation and searching of huge tables of ciphertext associated
with known plaintext and known keys.  Assuming that the memory and processor
resources are available for a precomputation attack, then the theoretical
strength of AES-CTR and AES-CBC are limited to 2^(n/2) bits, where n is the
number of bits in the key.  The use of long keys is the best countermeasure
to precomputation attacks.</t>
      <t>When used properly, AES-CTR mode provides strong confidentiality. Unfortunately,
it is very easy to misuse this counter mode.  If counter block values are ever
used for more that one plaintext with the same key, then the same key stream
will be used to encrypt both plaintexts, and the confidentiality guarantees are
voided.</t>
      <t>What happens if the encryptor XORs the same key stream with two different
plaintexts? Suppose two plaintext octet sequences P1, P2, P3 and Q1, Q2, Q3
are both encrypted with key stream K1, K2, K3. The two corresponding
ciphertexts are:</t>
      <artwork><![CDATA[
   (P1 XOR K1), (P2 XOR K2), (P3 XOR K3)

   (Q1 XOR K1), (Q2 XOR K2), (Q3 XOR K3)
]]></artwork>
      <t>If both of these two ciphertext streams are exposed to an attacker, then a
catastrophic failure of confidentiality results, since:</t>
      <artwork><![CDATA[
   (P1 XOR K1) XOR (Q1 XOR K1) = P1 XOR Q1
   (P2 XOR K2) XOR (Q2 XOR K2) = P2 XOR Q2
   (P3 XOR K3) XOR (Q3 XOR K3) = P3 XOR Q3
]]></artwork>
      <t>Once the attacker obtains the two plaintexts XORed together, it is relatively
straightforward to separate them.  Thus, using any stream cipher, including
AES-CTR, to encrypt two plaintexts under the same key stream leaks the
plaintext.</t>
      <t>Therefore, it is inappropriate to use AES-CTR with static keys. Extraordinary
measures would be needed to prevent reuse of a counter block value with the
static key across power cycles.  To be safe, implementations MUST use fresh
keys with AES-CTR.</t>
      <t>Data forgery is trivial with AES-CTR mode. The demonstration of this attack
is similar to the key stream reuse discussion above.  If a known plaintext
octet sequence P1, P2, P3 is encrypted with key stream K1, K2, K3, then the
attacker can replace the plaintext with one of his own choosing.  The
ciphertext is:</t>
      <artwork><![CDATA[
   (P1 XOR K1), (P2 XOR K2), (P3 XOR K3)
]]></artwork>
      <t>The attacker simply XORs a selected sequence Q1, Q2, Q3 with the
ciphertext to obtain:</t>
      <artwork><![CDATA[
   (Q1 XOR (P1 XOR K1)), (Q2 XOR (P2 XOR K2)), (Q3 XOR (P3 XOR K3))
]]></artwork>
      <t>Which is the same as:</t>
      <artwork><![CDATA[
   ((Q1 XOR P1) XOR K1), ((Q2 XOR P2) XOR K2), ((Q3 XOR P3) XOR K3)
]]></artwork>
      <t>Decryption of the attacker-generated ciphertext will yield exactly what
the attacker intended:</t>
      <artwork><![CDATA[
   (Q1 XOR P1), (Q2 XOR P2), (Q3 XOR P3)
]]></artwork>
      <t>Accordingly, implementations MUST use of AES-CTR in conjunction with an
authentication and integrity mechanism, such as a digital signature.</t>
      <t>AES-CBC does not provide integrity protection.  Thus, an attacker
can introduce undetectable errors if AES-CBC is used without a companion
authentication mechanism. Accordingly, implementations MUST use of AES-CBC
in conjunction with an authentication and integrity mechanism, such as a
digital signature.</t>
      <t>With AES-CBC mode, implementers SHOULD perform integrity checks prior to
decryption.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Many thanks to David Brown for raising the need for non-AEAD algorithms
to support the SUIT manifest.  Many thanks to Ilari Liusvaara for the
review and thoughtful comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4107" target="https://www.rfc-editor.org/info/rfc4107">
          <front>
            <title>Guidelines for Cryptographic Key Management</title>
            <author fullname="S. Bellovin" initials="S." surname="Bellovin">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="June" year="2005"/>
            <abstract>
              <t>The question often arises of whether a given security system requires some form of automated key management, or whether manual keying is sufficient.  This memo provides guidelines for making such decisions. When symmetric cryptographic mechanisms are used in a protocol, the presumption is that automated key management is generally but not always needed.  If manual keying is proposed, the burden of proving that automated key management is not required falls to the proposer.  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="107"/>
          <seriesInfo name="RFC" value="4107"/>
          <seriesInfo name="DOI" value="10.17487/RFC4107"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS).  This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <reference anchor="AES">
          <front>
            <title>Advanced Encryption Standard (AES)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="November"/>
          </front>
          <seriesInfo name="FIPS Publication" value="197"/>
        </reference>
        <reference anchor="MODES">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Methods and Techniques</title>
            <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="December"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-38A"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC5116" target="https://www.rfc-editor.org/info/rfc5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms.  The interface and registry can be used as an application-independent set of cryptoalgorithm suites.  This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="I-D.ietf-suit-manifest" target="https://www.ietf.org/archive/id/draft-ietf-suit-manifest-20.txt">
          <front>
            <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
            <author fullname="Brendan Moran" initials="B." surname="Moran">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Koen Zandberg" initials="K." surname="Zandberg">
              <organization>Inria</organization>
            </author>
            <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
              <organization>Nordic Semiconductor</organization>
            </author>
            <date day="7" month="October" year="2022"/>
            <abstract>
              <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the that code/data,
   the devices to which it applies, and cryptographic information
   protecting the manifest.  Software updates and Trusted Invocation
   both tend to use sequences of common operations, so the manifest
   encodes those sequences of operations, rather than declaring the
   metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-manifest-20"/>
        </reference>
        <reference anchor="IANA" target="https://www.iana.org/assignments/cose/cose.xhtml">
          <front>
            <title>IANA Registry for CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAChMVWMAA+1b+28byZH+nQD/h4YWOEsHUhYpW7tWEFz0cizYsmRJ9iYI
kqA5bJIdzYOZnqHElbV/+31V/ZgeitJ6k0Nwh4sBrzkz/ah3fdXV2+/3u51K
V6naFxtHh+eX4nz0N5VU4kpPc51PhczH4iRPyuW80kUuNo/Or0629sXByVX/
6PqSP/Pvw6ONbkeORqVarP0qbnU1EzS72xkXSS4z7Dgu5aTqa1VN+klhVF8q
00+qso95/WSU9HcGGCwrjBzuDIf9wU5/uNvtJHgzLcrlvjDVuNvpdvS83BdV
WZtquLPzZmfY7Zh6lGljQHG1nGP66cn1W5BXKrkvrlRSl7padju3RXkzLYt6
vu8Iu1FLvBtjfF6pMldV/5gopD1MBaL+KtMiV7yX6nbmel/8qSqSnjBFWZVq
YvBrmdGPP9MUWVezotzvdgRkLPBH52ZfXG6Ld0VtUrW0L60kLmtj2u+Lcrov
vuipTgPFPfHhw5H96iXdHmC/qUzqdF/M7Gq/W9AQo5LtpMhWaHm3La5NMism
KtfTmJx3Ms+VefQRNMlc/yTJFKDlMhMfdKYrNW5vzJO3qzD5d7LM7O7dTl6U
GeYvFMlFXL49Gg4Gb/zvHwbfv/K/Xw12vve/X++9HjZj3G8Y1r7d19vvwXgh
80S1DPaK9CbLsdjE+K0NJ72gGRFE/ZG5kil0b7BgXSlRTMJ0w7Z8rZJZXqTF
dCk2P55eXW/ZFbyJ7gz6g4F9ZVSpldH5pAi7bLw9vbgSF/Uo1QnvtQGSB2++
Z5rOzo8fsXOpILNMYX/mZFKU4jAtkhtxpOczVYqzYgwdgcjzuSqdTs4UOIup
1X+vlVnPNpvA2bY4Jj/QuX9tLeCsKEttVr/9T0pq+LSkaIa4mqtEY5cVif2w
s9Pf/eFggx0fs1bM6fVgsMe/T/vH2xxZTK2rfga7nShT2U8HHw/asqY34lJN
tanKJUv6m2OhW0eWU1XB9qtqbvZfvry9vd3WMpfbkNhLiUg0zaHJyrykOMf/
2b6bVVlKXPT7ffgzdpYJh5rrmRJHRZ5oo8ShziUocoRcqnmpDNaRjgAQuUVC
lcIKQkBlMArsRj5JfJhMpqlIYCrC6J8U82DfZcoYObWvt5/it9t5xDDtYUg3
Ew1X0zlJXZBXiqoQ87JYaOw1kkYniJouMJGWFzqBudaGVq6IRdoxoh2xaEbk
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
AAA=

-->

</rfc>
