<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.4 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cbor-cde-00" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="CBOR CDE">CBOR Common Deterministic Encoding (CDE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cde-00"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2023" month="November" day="27"/>
    <area>Applications and Real-Time</area>
    <workgroup>CBOR</workgroup>
    <abstract>
      <?line 57?>

<t>CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
its Section 4.2, providing some flexibility for application specific
decisions.
To facilitate Deterministic Encoding to be offered as a selectable
feature of generic encoders, the present document defines a
CBOR Common Deterministic Encoding (CDE) Profile that can be shared by a
large set of applications with potentially diverging detailed
requirements.</t>
      <t>This document also introduces the concept of Application Profiles,
which are layered on top of the CBOR CDE Profile and can address
more application specific requirements.
To demonstrate how Application Profiles can be built on the CDE,
a companion document defines the application profile "dCBOR".</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-cbor-cde/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Concise Binary Object Representation Maintenance and Extensions (CBOR) Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/det"/>.</t>
    </note>
  </front>
  <middle>
    <?line 77?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
its Section 4.2, providing some flexibility for application specific
decisions.
To facilitate Deterministic Encoding to be offered as a selectable
feature of generic encoders, the present document defines a
CBOR Common Deterministic Encoding (CDE) Profile that can be shared by a
large set of applications with potentially diverging detailed
requirements.</t>
      <t>This document also introduces the concept of Application Profiles,
which are layered on top of the CBOR CDE Profile and can address
more application specific requirements.
To demonstrate how Application Profiles can be built on the CDE,
a companion document defines the application profile "dCBOR".</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
        <?line -18?>

</section>
    </section>
    <section anchor="dep">
      <name>CBOR Common Deterministic Encoding Profile (CDE)</name>
      <t>This specification defines the <em>CBOR Common Deterministic Encoding
Profile</em> (CDE) based on the <em>Core Deterministic Encoding
Requirements</em> defined for CBOR in
<xref section="4.2.1" sectionFormat="of" target="STD94"/>.</t>
      <t>In many cases, CBOR provides more than one way to encode a data item,
but also provides a recommendation for a <em>Preferred Encoding</em>.
The <em>CoRE Deterministic Encoding Requirements</em> generally pick the
preferred encodings as mandatory; they also pick additional choices
such as definite-length encoding.
Finally, it defines a map ordering based on lexicographic ordering of
the (deterministically) encoded map keys.</t>
      <t>Note that this specific set of requirements is elective — in
principle, other variants of deterministic encoding can be defined
(and have been, now being phased out slowly, as detailed in <xref section="4.2.3" sectionFormat="of" target="STD94"/>).
In many applications of CBOR today, deterministic encoding is not used
at all, as its restriction of choices can create some additional
performance cost and code complexity.</t>
      <t><xref target="STD94"/>'s core requirements are designed to provide well-understood and
easy-to-implement rules while maximizing coverage, i.e., the subset of
CBOR data items that are fully specified by these rules, and also
placing minimal burden on implementations.</t>
      <t><xref section="4.2.2" sectionFormat="of" target="STD94"/> picks up on the interaction of extensibility
(CBOR tags) and deterministic encoding.
CBOR itself uses some tags to increase the range of its basic
generic data types, e.g., tags 2/3 extend the range of basic major
types 0/1 in a seamless way.
<xref section="4.2.2" sectionFormat="of" target="STD94"/> recommends handling this transition the same
way as with the transition between different integer representation
lengths in the basic generic data model, i.e., by mandating the
Preferred Encoding (<xref section="3.4.3" sectionFormat="of" target="STD94"/>).</t>
      <ol spacing="normal" type="1" group="1"><li>
          <t>The CBOR Common Deterministic Encoding Profile (CDE) turns this
recommendation into a mandate: Integers that can be represented by
basic major type 0 and 1 are encoded using the deterministic
encoding defined for them, and integers outside this range are
encoded using the preferred serialization (<xref section="3.4.3" sectionFormat="of" target="STD94"/>) of tag 2 and 3 (i.e., no leading zero bytes).</t>
        </li>
      </ol>
      <t>Most tags capture more specific application semantics and therefore
may be harder to define a deterministic encoding for.
While the deterministic encoding of their tag internals is often
covered by the <em>Core Deterministic Encoding Requirements</em>, the mapping
of diverging platform application data types on the tag contents may
be hard to do in a deterministic way; see <xref section="3.2" sectionFormat="of" target="I-D.bormann-cbor-det"/> for
more explanation as well as examples.
As the CDE would continually
need to address additional issues raised by the registration of new
tags, this specification RECOMMENDS that new tag registrations address
deterministic encoding in the context of this Profile.</t>
      <t>A particularly difficult field to obtain deterministic encoding for is
floating point numbers, partially because they themselves are often
obtained from processes that are not entirely deterministic between platforms.
See <xref section="3.2.2" sectionFormat="of" target="I-D.bormann-cbor-det"/> for more details.
<xref section="4.2.2" sectionFormat="of" target="STD94"/> presents a number of choices, which need to
be made to obtain a CBOR Common Deterministic Encoding Profile (CDE).
Specifically, CDE specifies (in the order of the bullet list at the end of <xref section="4.2.2" sectionFormat="of" target="STD94"/>):</t>
      <ol spacing="normal" type="1" group="1"><li>
          <t>Besides the mandated use of preferred encoding, there is no further
specific action for the two different zero values, e.g., an encoder
that is asked by an application to represent a negative floating
point zero will generate 0xf98000.</t>
        </li>
        <li>
          <t>There is no attempt to mix integers and floating point numbers,
i.e., all floating point values are encoded as the preferred
floating-point representation that accurately represents the value,
independent of whether the floating point value is, mathematically,
an integral value (choice 2 of the second bullet).</t>
        </li>
        <li>
          <t>There is no special handling of NaN values, except that the
preferred encoding rules also apply to NaNs with payloads, using
the canonical encoding of NaNs as defined in <xref target="IEEE754"/>.
Typically, most applications that employ NaNs in their storage and
communication interfaces will only use the NaN with payload 0,
which encodes as 0xf97e00.</t>
        </li>
        <li>
          <t>There is no special handling of subnormal values.</t>
        </li>
        <li>
          <t>The CBOR Common Deterministic Encoding Profile does not presume
equivalence of floating point values with other representation
(e.g., tag 4/5) with basic floating point values.</t>
        </li>
      </ol>
      <t>The main intent here is to preserve the basic generic data model, so
Application Profiles can make their own decisions within that data model.
E.g., an application profile can decide that it only ever allows a
single NaN value that would encoded as 0xf97e00, so a CDE
implementation focusing on this application profile would not need to
provide processing for other NaN values.
Basing the definition of both CDE and Application Profiles on the
generic data model of CBOR also means that there is no effect on CDDL
<xref target="RFC8610"/>, except where the data description documents encoding decision
for byte strings carrying embedded CBOR.</t>
    </section>
    <section anchor="application-profiles">
      <name>Application Profiles</name>
      <t>While the CBOR Common Deterministic Encoding Profile (CDE) provides
for commonality between different applications of CBOR, it is useful
to further constrain the set of data items handled in a group of
applications (<em>exclusions</em>) and to define further mappings
(<em>reductions</em>) that help the applications in such a group get by with
the exclusions.</t>
      <t>For example, the dCBOR Application Profile specifies the use of
Deterministic Encoding as defined in <xref section="4.2" sectionFormat="of" target="STD94"/> (see also
<xref target="I-D.bormann-cbor-det"/> for more information) together with some application-level rules.
See <xref target="I-D.bormann-cbor-dcbor"/> for a definition of the dCBOR Application Profile that
makes use of CDE.</t>
      <t>In general, the application-level rules specified by an Application Profile are
based on the same CBOR Common Deterministic Encoding Profile; they do
not "fork" CBOR.</t>
      <t>An Application Profile implementation produces well-formed,
deterministically encoded CBOR according to <xref target="STD94"/>, and existing
generic CBOR decoders will therefore be able to decode it, including
those that check for Deterministic Encoding.
Similarly, generic CBOR encoders will be able to produce valid CBOR
that can be processed by Application Profile implementations, if
handed Application Profile conforming data model level information
from an application.</t>
      <t>Please note that the separation between standard CBOR processing and
the processing required by the Application Profile is a conceptual
one: Both Application Profile processing and standard CBOR processing
can be combined into a encoder/decoder specifically designed for the
Application Profile.</t>
      <t>An Application Profile is intended to be used in conjunction with an
application, which typically will use a subset of the CBOR generic
data model, which in turn
influences which subset of the application profile is used.
As a result, an Application Profile itself places no direct
requirement on what minimum subset of CBOR is implemented.
For instance, an application profile might define rules for the
processing of floating point values, but there is no requirement that
implementations of that Application Profile support floating point
numbers (or any other kind of number, such as arbitrary precision
integers or 64-bit negative integers) when they are used with
applications that do not use them.</t>
    </section>
    <section anchor="cddl-support">
      <name>CDDL support</name>
      <t><xref target="RFC8610"/> defines control operators to indicate that the contents of a
byte string carries a CBOR-encoded data item (<tt>.cbor</tt>) or a sequence of
CBOR-encoded data items (<tt>.cborseq</tt>).</t>
      <t>CDDL specifications may want to specify that the data items should be
encoded in Common CBOR Deterministic Encoding.
This specification adds two CDDL control operators that can be used
for this.</t>
      <t>The control operators <tt>.cde</tt> and <tt>.cdeseq</tt> are exactly like <tt>.cbor</tt> and
<tt>.cborseq</tt> except that they also require the encoded data item(s) to be
in Common CBOR Deterministic Encoding.</t>
      <t>For example, a byte string of embedded CBOR that is to be encoded
according to CDE can be formalized as:</t>
      <artwork><![CDATA[
leaf = #6.24(bytes .cde any)
]]></artwork>
      <t>More importantly, if the encoded data item also needs to have a
specific structure, this can be expressed by the right hand side
(instead of using the most general CDDL type <tt>any</tt> here).</t>
      <t>(Note that the ...<tt>seq</tt> control operator does not enable specifying
different deterministic encoding requirements for the elements of the
sequence.  If a use case for such a feature becomes known, it could be
added.)</t>
      <t>Obviously, Application Profiles can define similar control operators
that also embody the processing required by the Application Profile,
and are encouraged to do so.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFCXXXX with the RFC
number of this RFC and remove this note.</cref></t>
      <t>This document requests IANA to register the contents of
<xref target="tbl-iana-reqs"/> into the registry
"<xref section="CDDL Control Operators" relative="#cddl-control-operators" sectionFormat="bare" target="IANA.cddl"/>" of <xref target="IANA.cddl"/>:</t>
      <table anchor="tbl-iana-reqs">
        <name>New control operators to be registered</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">.cde</td>
            <td align="left">[RFCXXXX]</td>
          </tr>
          <tr>
            <td align="left">.cdeseq</td>
            <td align="left">[RFCXXXX]</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="IEEE754" target="https://ieeexplore.ieee.org/document/8766229">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="IANA.cddl" target="https://www.iana.org/assignments/cddl">
          <front>
            <title>Concise Data Definition Language (CDDL)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.bormann-cbor-det">
          <front>
            <title>CBOR: On Deterministic Encoding</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="9" month="August" year="2023"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
   its Section 4.2.  The present document provides additional
   information about use cases, deployment considerations, and
   implementation choices for Deterministic Encoding.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-det-01"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-dcbor">
          <front>
            <title>The CDE-based Application Profile dCBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="5" month="November" year="2023"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
   its Section 4.2, providing some flexibility for application specific
   decisions.  The CBOR Common Deterministic Encoding (CDE) Profile
   provides a more detail common base for Deterministic Encoding,
   facilitating it be offered as a selectable feature of generic
   encoders, as well as the concept of Application Profiles that are
   layered on top of CDE.  This document defines the application profile
   "dCBOR" as an example of such an application profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-dcbor-04"/>
        </reference>
        <reference anchor="I-D.mcnally-deterministic-cbor">
          <front>
            <title>Gordian dCBOR: A Deterministic CBOR Application Profile</title>
            <author fullname="Wolf McNally" initials="W." surname="McNally">
              <organization>Blockchain Commons</organization>
            </author>
            <author fullname="Christopher Allen" initials="C." surname="Allen">
              <organization>Blockchain Commons</organization>
            </author>
            <date day="8" month="August" year="2023"/>
            <abstract>
              <t>   CBOR (RFC 8949) defines "Deterministically Encoded CBOR" in its
   Section 4.2.  The present document provides the application profile
   "dCBOR" that can be used to help achieve interoperable deterministic
   encoding.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/BlockchainCommons/WIPs-IETF-draft-deterministic-
   cbor.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcnally-deterministic-cbor-05"/>
        </reference>
      </references>
    </references>
    <?line 313?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>An earlier version of this document was based on the work of Wolf
McNally and Christopher Allen as documented in <xref target="I-D.mcnally-deterministic-cbor"/>; the
parts directly based on this are
now separated out as the dCBOR Application Profile <xref target="I-D.bormann-cbor-dcbor"/>.
Nonetheless, we acknowledge that this work has contributed greatly to
shaping the concept of a CBOR Common Deterministic Encoding and
Application Profiles on top of that.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Va63YbR3L+30/RgX4EVIAhQdKyCFu7S5FUludIpCLJZ7Nx
vFJjpgGMOZiZnQtJiKZPHiIPkB95kuRN8iT5qqp7LiAoWz5nV+BM3+r21VfV
Mx6P1fVUHyhVxVVip/rk5eU7fZKtVlmqT21li1WcxmUVh/osDbMoThd6eHJ6
tqPMbFbYaz/h9ExFWZiaFZaICjOvxrGt5uNwlhXjMLLjxFS2rFSIfxZZsZ7q
WZirsiqsWU31+dmHV0pFeDdVYZaWNi3rcqqrorbKYMhUD47zPIkxO8ZrbdJI
v7MmGX+IV3agbrLialFkdS6HUVd2jUfRVKlrm9ZYU2v3enCSpWFcWv0yTk2x
1pezn21YYa28sNi14vX1GxOnlU1NGlre6uwWf5W885A22BlgxZWJEyxIAv6J
RA2yYkHPF3G1rGf0xsyy3chWA6VMXS2zgs4xxv+0jlNIdxLol1mxMmnKz0R1
J6YosVnvDRae6h/S+NoWZVz9739X+mVhVxj04d/OeQCp0VZT/TYrq7kJl/rg
YO/wcI/fhXEFZcsEeZBF2Od0vP/84Jsj96ROKzLJP1vadM0P82WWYtw/HR6N
D/cn4/3J8/Gzg6P9Cb+0IjxJ+Kfqc0yiK5XSkSuckuR8/+H06HDKg8cYCCXx
7xdT/e7VyfOjQ9r5/Ozs7Ntv3KjKFAuSYVlVeTnd3Y2ttbd5khU2oJ+0xS4c
rIYY1e7zb58929+X0zu3pcX0+wrmMkWk51mhXyUZjpMuxm8zmFMfFzDMysKR
eVprEpxQVExL8N/siHpuktKKfm0R2zJO55mM1363aKohwHh/b3LkXpxenk/1
ZC+YTPaOdmkUFBHQ+6A9M2ng2WQPaomihPRwfHEc0G84rKJdOno8H58GM/EF
iSU4VKNW/N46hP6/HeSUT8NWCNAkWdMibVzzJDdunBUxTDkej7WZwa1MWCn1
49/wezL+qf0li3PgDyGgPjockVSaDLuDY83j1JZ60IMP2lggxEY8dYAwkGio
Sv0eYUihdxjsj3ReZNcxI02ZrayeJ/Y2nsUJPJkNa1oo0GVuw3jubBrhN4dp
wH9+yGDDkObBno9hWZXpmdXZfG4LnMsAW2DuBKcxs0SsP7emqgsaoxc2hSuE
2rIYRTnS1dJqhx3au2ejANOq6XcAqn5bZPM4sVjTVIitlA5WLg2da7Z2iyUU
JjhhRccxXUy8gXvrPAN4VDHrOiLAWNDyMDfi1Ua8QmH/XscMBxX0JIpaxmV7
erh9BtNURRbVIaQgEQHKoc150w4Q+xOXI17mZhkDe3BenHLN6sSQKstpFi3i
E0UjKGEryWmiCCoseZEVIn6rhTcO7gwcWaiVHBUWXmY3W0/ndTmr46TiM9Fh
Ts/k1AbCrXKT0owHFqSR3cPk7uSDiD04kFBZxQheq9QTfe7URoO7gaOePIEL
pNdkHJ/ATmmPmP9W6gM2QtrSlLcQOW9+eP9hMJJ/9cUl/3539i8/nL87O6Xf
7/98/Pp180O5Ee//fPnD69P2Vzvz5PLNm7OLU5mMp7r3SA3eHP8Vb+hUg8u3
H84vL45fU3hC/p5nwDQSL5QfC/h9xTGjIluGRTzDH5jz8uTt//zX5FDf3f0D
MGF/Mjm6v3d/PJ98e4g/bpY2ld2yFI4qf0LVawVdW1PQKnBh2C1H7CYIM8Rl
CfOmegm/gtaf/kia+WmqvweNmBz+wT0ggXsPvc56D1lnD588mCxK3PJoyzaN
NnvPNzTdP+/xX3t/e713Hn7/xwReqMeT53/8A/nQ74ESH1sCKXdPIpvfk3vB
jj6SxJW7Lv70txdWbuGnbuWZKV2AY/7HE4raRya+68TtR7etZGjeFUng7q4D
/8GE8IKT0v09TH2eaiIlcIYSQCNzJEHg8IwWwMsUJ7H6xqzJPwWdEdjI4wbZ
xa5GalY7YGumGgAKIh/HikQhnFr007eFRS4g9PISPA04PJ+eZO/OHlN7V8in
kicYhPM4vCIVqbxZ1ro5JXn1ighLBUL8HQeAOyNNAigyOBjEwTKLgcSqrAlf
S9Eh5BonNl0A9f2KgXoVc4IfQeo2C2ETYHCBhEUnbQxHWTXMFoXJgdvt+2yu
yKTDaDN57zjFRrwewIrSxwUSjiSsqutiPkN1MVvjPWdW5CX9f//xn2T5HFuG
cZ7Ykc6wa6GvTREbGozJvRM0Qno0d46khoQjS4M1Z5ZwJEUWmFkamC9FVJi+
TLIbUgsrT5IhgUzf8Q5U63g7QeN4vSyLEeyBVRYZrPfIESFpmlW6xvbKkOMl
vDURHSS6ChSCN8VizrQsVIhKB9pkztNaX+W2YEpI1UgIhi9pkzycEhdZsVrD
End37uj/iNUoLHq6J+iG18cLir2qCQN9Y5NkXKdEZqosi2htZU25HlfZOKbV
GfiLmtIo8juAZWVu41X8mS2RgWGYBYwXBzYQMlTWM7G9Yj01IViKl9A55jVF
hnMVITeYiaKMt5HEQHGg8gT0DfuQgleIg1kNJ6VQ183RxCwsfteU+x0M4XAq
dZ17tOLkZRoTWKnuhGCqoZjXLModPsh2CwciHQxqkznZuRSz0TxSL7waxiwt
71eYdMH0keyP8ANb9USS1VOtcxLbBgvSIa2wv3sgx4r6C/BkWOBnMHqepfd2
J5wtEXBmBe2VBILBl7TRoF6JqEmjhEkwxS5IFNTAk9iQqEcVIapx3JIedsbM
bHWDgAPNZO4MLyG9LhDDRa+aVgJSpdAJ62ToKWAFZ068E8EbBBTlYFY9BGQ9
bOU7CA6DA90LXHU3lXr/xWAyuFeTQH9o2OdX5E6Q/rRk1Simzb1kAVkzRtZU
isVzkb3skfdGEezktErHgGx2vcdONuG48PBal070vvPR/AZhumkUI1cSNbE/
BTCvpPBmw4r7YIdmhd4mbWaiOtck8WcRcYuSaQGvZ2b1ZqH3eecDPRTzpRkS
i+EzfrYFyOK6siUZ5Q1BF3s3aB0XVJy8m4zR4/wWioXIQpQpMVgIatUK7gi9
oiYCYFGciRoo1W8HYswK1F+WUlXZx0ZJfRIXLA+jA3CX81U2RxAqxrkGqL7I
dnpE4KNAItJlTkSIUlpTkwHbKoL1ntwtHHisohOh+KoYxCG+cuKz8JmEfl8q
hOx3UKDVXfMJAmAgAAC7KlY99VdMKjtTkCMV0L/21hC6AlSPS18qoS6pk4hP
Eqc1sQGVWskkrnjr8pW4LGtLfheXrdYKu4i5UHOwm9obRe4w6jMHed+Q5vcS
UBjMquguUjZ142NZOPW1awUwFStjJxflcMljnZsCU2pU1Vwwz+f0R6WRlhIW
LpuBLKRf8C7Iquau0YTqmxpNab2acW+AF2cWOLOhqSUbsDJWSBvXVrKyuJhs
RAFdZCvKziAFpe0kTeITVD0Wlk7aO49HYu9SsNz7TftveoAEn3Ch8ov5wkEY
8UiRrENbRq7md75Azrkyke1oznw17uLw3hWYyZL3ea5QAmXEqExXfWNhBkIB
zpHERI4qfkSpE28budSmXDvTzTyxH+iXtuTaQKKWoZ2QknPvQwI/EmQStgdW
U9CfBJEtpoVNZcHBfJN10iXD47VJ6jb5I2241hItw7aPqUy4ci2gtIcW0HKT
Ycg6dsFtQ+39kdYQl+StbmLEt1QmYJl7t/Oj53t7e4E64PzYyGEqsLW8otVX
8W2bUgiJH/F02kjQn6r2jUEiYS/BmbKfeGi+nzWWWX0O4cIgDGs6OwKgeS0r
8R5yDFDZHMYnlcBoN0vLZQUN2nYuyDyCpSkkjStzeBmTiuAo4tzAobi83vdO
V4IQQCXie/Daw74a2Qcwu+FYmHZhLlqD33JDzZVOnJofepgj3lwUkuW5vMUq
vttn1pApwmqczcVnLLGPLCVhehmOp/ni0Zc/rgVPhTb109a5j7oVFxrdyodP
Cs9IsrWsJZGIrInKgaoArh34OmG1qlPvpJxO54ZqHHZA7vg4LGSFdCXRe6x9
ARXxFj4zOeu3lpz1m9/WMioQvopwlgO6PftqBhhlVko4crN6JcwJiR0rWqrD
sM12N2dppJTdoMFYYdhQfH24+82ODBZKuHW1QPqCKwJSvpGqtJedSzisXlzb
32DVqKMebYquzJV1RqTmWtM/55PFLuzaxQJ15mFqW1OUVqQlItcRiCuxtgXn
IWTIbqglTp6a2DYWZKzwiw5AeJOTAJRFTs9Uv+gDqoZCYjPXp9x2JlmXLOlz
lK98XY71eVxs1kZooF6aDg/3rVquwjCW0xJB4lbdCnlTD83R9A84pFfW+MDq
ZhKLDBFyo/rk9PQ1F/ZRlNzfN6Bxw4P5YLSydF/zqtvBLrulglhVkZhEx+m+
kPtPoSmKNQ2xwPHI38sE1GncJpbqMOmvrqZ8341PEfJEwzc6D+vIbQ0X7mhB
PUCOeZ2oqsm3RO+IETpe4PpOnbYDQ4PgnZF0T4VMb4/hRyg2qdn1P0rZ39YW
fh/H4ks1/AiIlhY/jWbzLW2Sb14WMEJKy87tu8DhkMYpuLjH1u4Knb+CXhz1
lrKBrxi2GaJDh2ic8BP1iBU2Eb/D80hRfE8LljekioGbLnC3DZbYXElmKcTN
FpJSGbykV9UecZwg2BNJW56Fyn2kW9BsxNKXBSXdKgKp0rMw+JL0hF2LdbSp
9e4J+j0moNO2Pagu7jWzqfHxFf7tGrdRpghlBhDyauDj6Hj7lhtAlvubNm7G
ka5tNFIP+q8NOgqAhCE4sLvBhFnFjtIGsLc0CYTAA5C04qxcWkoebopqKqjp
rlNcnvuKcTWiDlZSc/++Wmalv5Rc2vCK7bhdJzB5vIq5mhrp3ub+xlQ272zp
hCfUjUU01W2h+EqILfjbugQViueKQt5uhWZCC1Iw42KLyuIzHT9XXIb18xzs
+Tbhpl7aaXoT5KDQM72eWOm/Q/C3FT7TEEUS6ts8cm3apk7eKmTJ15R8B4vq
W/GnGS8pDW0b3d/v0cMop2KA8czhA/e0nKl2nb+0lTlfKvsesqtptnGLLzh+
KTwmktbBjMGLgQnC/VynAk2MLCbtYrQvNCvPUMWPCBRM23JuM5PzPdUlQrIC
5Ym6SOk7C6T5NJS+Nl70V9nGJST9RNwXodujsk6q0WOw4lrD1MJmKon8VgB6
VacrT4BzQ17E/e161TmCdJfL1rtpW8oQcUrmDO2jJGwVL5b+7sehoDdVxy8e
468jTRdlXTLSPS/D8UbAicIgxNZEVed5VlQbeylXN+ohJYR07bjXVSw1u7wd
aX/bZYpZjARfrInxOirTNjoL/exwjAFt+evf7fDFsrtWK5yrce59WNdEmb+w
4fZMILetYF9eBNXSsOZijRpLRQZOl1NJnRWu8x/R0h18aNp39MWG6hAw5l8x
39CRvcce3xvyooefAsqdn3Y0p84StnDlh9o+o/RTMPQTdV1Fhm5vjduI+sak
XOLLq3V72s5S5ZLJ88wqvw+Cx+VEdtDHksCW22YTRSX3P/hAWzTXwXy+NhOn
jX0N9HAG5IzsJ0Y4/kkSS5fh1oQVECKJUdw4BTLwtprZrL7dvavzdddA2lDt
sNwRzFK/Uwt9Rme61Juvnbqcu+n1CCq6zVUvyVPF4TTEeSqJP3OpNFXq119/
VUhNc/1CP3kW7B8OueuuSS0UYDs8QL1hMrcid4b1+ZZ4vl1WUQdVTHwivl1F
5dZc7lYF+G9dWNe7daeyt1SSdlu+jEVLTkLg/mpI6GUNR3l7/8CtBkfnxD34
ZuQTDv6J613y4+FFL+cGQfCJDbnpF23lblOmGM7BKd+1FcYj/dzejalv2tnE
PZDMoHwQBlqfI6AZM+jbBJ7g6L7/ZGxGl0Y4z1WK8ppLmNCHlCHbBzsAmsvZ
dZzVJdnj0ULd4Xkp7OphNAhnYqvBr7Jorb+eZYwUX7y6Pl1NLR1/zVBmgogo
HuqCirYT4Ags6hrxCNHL08vmreKx9FXjg3E//q3KxjM7hpKzaxv99PAJfyCq
z6K4oo8ScyFcheU8Sq/+Ff+195F4IB/PNp1pdkhagoSRReUZkbbAfQnTfNFE
arEljMun5YYqXTC4jmEHuQH/1SwZxyY1OOrfS6QBpkudm421GtzdUYoYO/OM
W7Aasl+fOLNd+uc73zffft7fD6Rh3XmCyP5FX1A5wv/9ot9ZdmBo4he84fB2
b/79R6ebn5pXcNSHr+6m+klPEPl+9sXgwt5sT2gz2yjFRoN7JZ+8zUx4xX2C
kHwb9fWCgwTriyls9GLAH9DSDLBBi5ogpu876BtmX/p1LXFjyv43RfRRNw37
S5bM1ZvwglkfGfVkWeA0WU6c4ThJLF9e+XV8mTtuP2e9v/9O6I8pYEqhYXQn
024Wc3ta0Zcjjsy7z0Zco/rxArWtbgN1AVaO0XQJD7IJwGxU0/1ChsVaGsce
YtAt7LWgLz+4u6vKpck9Mna+uvxd9yiU5B7tR/nvME0VqP8HR+oZaPUvAAA=

-->

</rfc>
