<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.31 (Ruby 3.2.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<?rfc toc_levels="4"?>

<rfc ipr="trust200902" docName="draft-ietf-suit-mti-02" category="std" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="MTI SUIT Algorithms">Mandatory-to-Implement Algorithms for Authors and Recipients of Software Update for the Internet of Things manifests</title>

    <author initials="B." surname="Moran" fullname="Brendan Moran">
      <organization>Arm Limited</organization>
      <address>
        <email>brendan.moran.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="Ø." surname="Rønningstad" fullname="Øyvind Rønningstad">
      <organization>Nordic Semiconductor</organization>
      <address>
        <email>oyvind.ronningstad@gmail.com</email>
      </address>
    </author>
    <author initials="A." surname="Tsukamoto" fullname="Akira Tsukamoto">
      <organization>ALAXALA Networks Corp.</organization>
      <address>
        <email>akira.tsukamoto@alaxala.com</email>
      </address>
    </author>

    <date year="2023" month="September" day="01"/>

    <area>Security</area>
    <workgroup>SUIT</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document specifies algorithm profiles for SUIT manifest parsers and authors to ensure better interoperability. These profiles apply specifically to a constrained node software update use case.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>Mandatory algorithms may change over time due to an evolving threat landscape. Algorithms are grouped into algorithm profiles to account for this. Profiles may be deprecated over time. SUIT will define five choices of MTI profile specifically for constrained node software update. These profiles are:</t>

<t><list style="symbols">
  <t>One Symmetric MTI profile</t>
  <t>Three "Current" Asymmetric MTI profiles</t>
  <t>One "Future" Asymmetric MTI profile</t>
</list></t>

<t>At least one MTI algorithm in each category MUST be FIPS qualified.</t>

<t>Because SUIT presents an asymmetric communication profile, with powerful/complex manifest authors and constrained manifest recipients, the requirements for Recipients and Authors are different.</t>

<t>Recipients MAY choose which MTI profile they wish to implement. It is RECOMMENDED that they implement the "Future" Asymmetric MTI profile. Recipients MAY implement any number of other profiles.</t>

<t>Authors MUST implement all MTI profiles. Authors MAY implement any number of other profiles.</t>

<t>Other use-cases of SUIT MAY define their own MTI algorithms.</t>

</section>
<section anchor="algorithms"><name>Algorithms</name>

<t>The algorithms that form a part of the profiles defined in this document are grouped into:</t>

<t><list style="symbols">
  <t>Digest Algorithms</t>
  <t>Authentication Algorithms</t>
  <t>Key Exchange Algorithms</t>
  <t>Encryption Algorithms</t>
</list></t>

</section>
<section anchor="profiles"><name>Profiles</name>

<t>Recognized profiles are defined below.</t>

<section anchor="suit-sha256-hmac-a128kw-a128ctr"><name> Symmetric MTI profile: suit-sha256-hmac-a128kw-a128ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>HMAC-256</c>
      <c>5</c>
      <c>Key Exchange</c>
      <c>A128KW Key Wrap</c>
      <c>-3</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-es256-ecdh-a128ctr"><name>Current Asymmetric MTI Profile 1: suit-sha256-es256-ecdh-a128ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>ES256</c>
      <c>-7</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + HKDF-256</c>
      <c>-25</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-eddsa-ecdh-a128ctr"><name>Current Asymmetric MTI Profile 2: suit-sha256-eddsa-ecdh-a128ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>EDDSA</c>
      <c>-8</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + HKDF-256</c>
      <c>-25</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-eddsa-ecdh-chacha-poly"><name>Current Asymmetric MTI Profile 3: suit-sha256-eddsa-ecdh-chacha-poly</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>EDDSA</c>
      <c>-8</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + HKDF-256</c>
      <c>-25</c>
      <c>Encryption</c>
      <c>ChaCha20/Poly1305</c>
      <c>24</c>
</texttable>

</section>
<section anchor="suit-sha256-hsslms-a256kw-a256ctr"><name>Future Asymmetric MTI Profile 1: suit-sha256-hsslms-a256kw-a256ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>HSS-LMS</c>
      <c>-46</c>
      <c>Key Exchange</c>
      <c>A256KW</c>
      <c>-5</c>
      <c>Encryption</c>
      <c>A256CTR</c>
      <c>-65532</c>
</texttable>

</section>
</section>
<section anchor="reporting-profiles"><name>Reporting Profiles</name>

<t>When using reverse-direction communication, particularly data structures that are designed for reporting of update capabilities, status, progress, or success, the same profile as the is used on the SUIT manifest SHOULD be used. There are cases where this is not possible, such as suit-sha256-hsslms-ecdh-a128ctr. In this case, the closest equivalent profile SHOULD be used, for example suit-sha256-ecdsa-ecdh-a128ctr.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>For the avoidance of doubt, there are scenarios where payload or manifest encryption are not required. In these scenarios, the encryption element of the selected profile is simply not used.</t>

<t>AES-CTR mode is specified, see <xref target="I-D.ietf-cose-aes-ctr-and-cbc"/>. All of the AES-CTR security considerations in <xref target="I-D.ietf-cose-aes-ctr-and-cbc"/> apply. A non-AEAD encryption mode is specified in this draft due to the following mitigating circumstances:</t>

<t><list style="symbols">
  <t>Streaming decryption must be supported. Therefore, there is no difference between AEAD and plaintext hash verification.</t>
  <t>Out-of-order decryption must be supported. Therefore, we must use a stream cipher that supports random access.</t>
  <t>There are no chosen plaintext attacks: the plaintext is authenticated prior to encryption.</t>
  <t>Content Encryption Keys MUST be used to encrypt only once. See <xref target="I-D.ietf-suit-firmware-encryption"/>.</t>
</list></t>

<t>As a result of these mitigating circumstances, AES-CTR is the most appropriate cipher for typical software/firmware delivery scenarios.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>IANA is requested to create a page for COSE Algorithm Profiles within
the category for Software Update for the Internet of Things (SUIT)</t>

<t>IANA is also requested to create a registry for COSE Alforithm Profiles
within this page. The initial content of the registry is:</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Digest</ttcol>
      <ttcol align='left'>Auth</ttcol>
      <ttcol align='left'>Key Exchange</ttcol>
      <ttcol align='left'>Encryption</ttcol>
      <ttcol align='left'>Descriptor Array</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>suit-sha256-hmac-a128kw-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>5</c>
      <c>-3</c>
      <c>-65534</c>
      <c>[-16,   5,  -3, -65534]</c>
      <c><xref target="suit-sha256-hmac-a128kw-a128ctr"/></c>
      <c>suit-sha256-es256-ecdh-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-7</c>
      <c>-25</c>
      <c>-65534</c>
      <c>[-16,  -7, -25, -65534]</c>
      <c><xref target="suit-sha256-es256-ecdh-a128ctr"/></c>
      <c>suit-sha256-eddsa-ecdh-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-8</c>
      <c>-25</c>
      <c>-65534</c>
      <c>[-16,  -8, -25, -65534]</c>
      <c><xref target="suit-sha256-eddsa-ecdh-a128ctr"/></c>
      <c>suit-sha256-eddsa-ecdh-chacha-poly</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-8</c>
      <c>-25</c>
      <c>24</c>
      <c>[-16,  -8, -25,     24]</c>
      <c><xref target="suit-sha256-eddsa-ecdh-chacha-poly"/></c>
      <c>suit-sha256-hsslms-a256kw-a256ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-46</c>
      <c>-5</c>
      <c>-65532</c>
      <c>[-16, -46,  -5, -65532]</c>
      <c><xref target="suit-sha256-hsslms-a256kw-a256ctr"/></c>
</texttable>

<t>New entries to this registry require standards action.</t>

<t>-- back</t>

</section>
<section anchor="full-cddl"><name>A. Full CDDL</name>

<t>The following CDDL creates a subset of COSE for use with SUIT. Both tagged and untagged messages are defined. SUIT only uses tagged COSE messages, but untagged messages are also defined for use in protocols that share a ciphersuite with SUIT.</t>

<t>To be valid, the following CDDL MUST have the COSE CDDL appended to it. The COSE CDDL can be obtained by following the directions in <xref section="1.4" sectionFormat="comma" target="RFC9052"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_COSE_tool_tweak /= suit-sha256-hmac-a128kw-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-es256-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-eddsa-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-eddsa-ecdh-chacha-poly
SUIT_COSE_tool_tweak /= suit-sha256-hsslms-a256kw-a256ctr

SUIT_COSE_tool_tweak /= SUIT_COSE_Profile_HMAC_A128KW_A128CTR
SUIT_COSE_tool_tweak /= SUIT_COSE_Profile_ES256_ECDH_A128CTR
SUIT_COSE_tool_tweak /= SUIT_COSE_Profile_EDDSA_ECDH_A128CTR
SUIT_COSE_tool_tweak /= SUIT_COSE_Profile_EDDSA_ECDH_CHACHA20_POLY1304
SUIT_COSE_tool_tweak /= SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR

suit-sha256-hmac-a128kw-a128ctr = [-16, 5, -3, -65534]
suit-sha256-es256-ecdh-a128ctr = [-16, -7, -25, -65534]
suit-sha256-eddsa-ecdh-a128ctr = [-16, -8, -25, -65534]
suit-sha256-eddsa-ecdh-chacha-poly = [-16, -8, -25, 24]
suit-sha256-hsslms-a256kw-a256ctr = [-16, -46, -5, -65532]

SUIT_COSE_Profile_HMAC_A128KW_A128CTR = SUIT_COSE_Profile<5, -65534> .and COSE_Messages
SUIT_COSE_Profile_ES256_ECDH_A128CTR = SUIT_COSE_Profile<-7,-65534> .and COSE_Messages
SUIT_COSE_Profile_EDDSA_ECDH_A128CTR = SUIT_COSE_Profile<-8,-65534> .and COSE_Messages
SUIT_COSE_Profile_EDDSA_ECDH_CHACHA20_POLY1304 = SUIT_COSE_Profile<-8,24> .and COSE_Messages
SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR = SUIT_COSE_Profile<-46,-65532> .and COSE_Messages

SUIT_COSE_Profile<authid, encid> = SUIT_COSE_Messages<authid,encid>

SUIT_COSE_Messages<authid, encid> = SUIT_COSE_Untagged_Message<authid, encid> /
    SUIT_COSE_Tagged_Message<authid, encid> 
      
SUIT_COSE_Untagged_Message<authid, encid> = SUIT_COSE_Sign<authid> /
    SUIT_COSE_Sign1<authid> / SUIT_COSE_Encrypt<encid> / 
    SUIT_COSE_Encrypt0<encid> / SUIT_COSE_Mac<authid> /
    SUIT_COSE_Mac0<authid> 

SUIT_COSE_Tagged_Message<authid, encid> = SUIT_COSE_Sign_Tagged<authid> /
    SUIT_COSE_Sign1_Tagged<authid> / SUIT_COSE_Encrypt_Tagged<encid> /
    SUIT_COSE_Encrypt0_Tagged<encid> / SUIT_COSE_Mac_Tagged<authid> /
    SUIT_COSE_Mac0_Tagged<authid>

; Note: This is not the same definition as is used in COSE.
; It restricts a COSE header definition further without
; repeating the COSE definition. It should be merged
; with COSE by using the CDDL .and operator.
SUIT_COSE_Profile_Headers<algid> = (
    protected : bstr .cbor SUIT_COSE_alg_map<algid>,
    unprotected : SUIT_COSE_header_map
)
SUIT_COSE_alg_map<algid> = {
    1 => algid,
    * int => any
}

SUIT_COSE_header_map = {
    * int => any
}

SUIT_COSE_Sign_Tagged<authid> = #6.98(SUIT_COSE_Sign<authid>)


SUIT_COSE_Sign<authid> = [
    SUIT_COSE_Profile_Headers<authid>,
    payload : bstr / nil,
    signatures : [+ SUIT_COSE_Signature<authid>]
]


SUIT_COSE_Signature<authid> =  [
    SUIT_COSE_Profile_Headers<authid>,      
    signature : bstr
]


SUIT_COSE_Sign1_Tagged<authid> = #6.18(SUIT_COSE_Sign1<authid>)


SUIT_COSE_Sign1<authid> = [
    SUIT_COSE_Profile_Headers<authid>,
    payload : bstr / nil,
    signature : bstr
]


SUIT_COSE_Encrypt_Tagged<encid> = #6.96(SUIT_COSE_Encrypt<encid>)


SUIT_COSE_Encrypt<encid> = [
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
    recipients : [+SUIT_COSE_recipient<encid>]
]


SUIT_COSE_recipient<encid> = [    
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
    ? recipients : [+SUIT_COSE_recipient<encid>]
]


SUIT_COSE_Encrypt0_Tagged<encid> = #6.16(SUIT_COSE_Encrypt0<encid>)


SUIT_COSE_Encrypt0<encid> = [
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
]


SUIT_COSE_Mac_Tagged<authid> = #6.97(SUIT_COSE_Mac<authid>)


SUIT_COSE_Mac<authid> = [
   SUIT_COSE_Profile_Headers<authid>,      
   payload : bstr / nil,
   tag : bstr,
   recipients :[+SUIT_COSE_recipient<authid>]
]


SUIT_COSE_Mac0_Tagged<authid> = #6.17(SUIT_COSE_Mac0<authid>)


SUIT_COSE_Mac0<authid> = [
   SUIT_COSE_Profile_Headers<authid>,      
   payload : bstr / nil,
   tag : bstr,
]
]]></sourcecode></figure>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC8152'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author fullname='J. Schaad' initials='J.' surname='Schaad'/>
    <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='RFC8778'>
  <front>
    <title>Use of the HSS/LMS Hash-Based Signature Algorithm with CBOR Object Signing and Encryption (COSE)</title>
    <author fullname='R. Housley' initials='R.' surname='Housley'/>
    <date month='April' year='2020'/>
    <abstract>
      <t>This document specifies the conventions for using the Hierarchical Signature System (HSS) / Leighton-Micali Signature (LMS) hash-based signature algorithm with the CBOR Object Signing and Encryption (COSE) syntax. The HSS/LMS algorithm is one form of hash-based digital signature; it is described in RFC 8554.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8778'/>
  <seriesInfo name='DOI' value='10.17487/RFC8778'/>
</reference>

<reference anchor='RFC9052'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname='J. Schaad' initials='J.' surname='Schaad'/>
    <date month='August' year='2022'/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services 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>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='96'/>
  <seriesInfo name='RFC' value='9052'/>
  <seriesInfo name='DOI' value='10.17487/RFC9052'/>
</reference>


<reference anchor='I-D.ietf-cose-aes-ctr-and-cbc'>
   <front>
      <title>CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
      <author fullname='Russ Housley' initials='R.' surname='Housley'>
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         <organization>Arm Limited</organization>
      </author>
      <date day='25' month='May' year='2023'/>
      <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 9052 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>
   <seriesInfo name='Internet-Draft' value='draft-ietf-cose-aes-ctr-and-cbc-06'/>
   
</reference>


<reference anchor='I-D.ietf-suit-firmware-encryption'>
   <front>
      <title>Encrypted Payloads in SUIT Manifests</title>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         </author>
      <author fullname='Russ Housley' initials='R.' surname='Housley'>
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname='Brendan Moran' initials='B.' surname='Moran'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='David Brown' initials='D.' surname='Brown'>
         <organization>Linaro</organization>
      </author>
      <author fullname='Ken Takayama' initials='K.' surname='Takayama'>
         <organization>SECOM CO., LTD.</organization>
      </author>
      <date day='26' month='August' year='2023'/>
      <abstract>
	 <t>   This document specifies techniques for encrypting software, firmware
   and personalization data by utilizing the IETF SUIT manifest.  Key
   agreement is provided by ephemeral-static (ES) Diffie-Hellman (DH)
   and AES Key Wrap (AES-KW).  ES-DH uses public key cryptography while
   AES-KW uses a pre-shared key.  Encryption of the plaintext is
   accomplished with conventional symmetric key cryptography.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-suit-firmware-encryption-14'/>
   
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-suit-manifest'>
   <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='27' month='February' year='2023'/>
      <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-22'/>
   
</reference>


<reference anchor="IANA-COSE" target="https://www.iana.org/assignments/cose/cose.xhtml">
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author >
      <organization></organization>
    </author>
    <date year="2022"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
n15HbDeat0kMN5u2EcKfO60VbDfbYFdYBFunNs99jjmnm6Zzd5107nv7z5ht
71/OqRf+I5Opwf4Ckw9fDPHd3zt/ffryBzTYDz9n++Mx2tVz15We+/4zCK5L
jk+ZIy5irDrdvQuuyWLVrLXEtDZvM+HU8w5uNq+dGzbm9tfmdVN4PY2YuSHm
d23XusKFWIetv66Bf8N6RIZ28MQTWIfeTefqVAtrfp7aDbfrVnvwh9VuOOS2
Bfo3Vd7ppt1acWDurDpVb+r+mjoVYnqUhzL+ZkVpNa2ScSJtJesSXVre+mRV
Ca/L7trPeRv5syul/Yfnwc31t7HQZ9F+fHNhGtxvRlsjvr7+ukLM1mb68b1G
oGUiHm1dEWN79WDbrlfbYH1HXvzqjW0IbeKvRLYcTLXLdbHVDV0Hhva8JhME
f2OvFH3sf9a63aov0WxJI90lj67v0FAkkL4e5h7TrY/7nxmqy2zRMRfc3RHU
c6dlYT9bo1pHlQbzCpEL1wLXlUwjbz9r1JBM6NMlVFoFEGOSLZWs7GTpryDt
bCpybMTZfwFA99XrCmSLCuGSzNxB3rHWoQrNXTwNGP3HAutFE/9PCG4+5M9T
nvt5O3ZSmbWnNbJu5yQe3A22qcDSH62Wffb0G2afOa336AM++yxbBp/aPtno
rSdvF+5yy6fs9uPeVwd3usPxbrA+vzXxxzUn2rCnk3RbqC4KvS13WSYTN0JX
vNxd/A7Yj/fXQsSOVKreBe82AK0IANWNYXnOWoHg4XUssxGq1nD764bb3265
/T/RdN24uxnEnfjjO9uY9G6XjmbyddCdoMPnuhl7/bYJvvnvBXvujcZ6wOta
P/X1cQJVH+UXAPb3Pw5tCxs7X+kw+d5VNt/7wkZfhdqRFZxnPLmzItTt0O0E
6uF9TsRtdWlUDf6hfds+iO5z2MIMHQnNn8La9va27m/vT9/gO2qcg/8CPPIM
OeArAAA=

-->

</rfc>

