<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chittapragada-netconf-https-notif-cbor-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="https-notif-cbor">CBOR Encoding for HTTPS-based YANG Notifications Transport</title>
    <seriesInfo name="Internet-Draft" value="draft-chittapragada-netconf-https-notif-cbor-04"/>
    <author initials="B. M." surname="Chittapragada" fullname="Bharadwaja Meherrushi Chittapragada">
      <organization>National Institute of Technology Karnataka, Surathkal</organization>
      <address>
        <email>meherrushi2@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Bhat" fullname="Siddharth Bhat">
      <organization>National Institute of Technology Karnataka, Surathkal</organization>
      <address>
        <email>siddharth.bhat10@gmail.com</email>
      </address>
    </author>
    <author initials="V. T." surname="Rao" fullname="Vartika T Rao">
      <organization>National Institute of Technology Karnataka, Surathkal</organization>
      <address>
        <email>vartikatrao@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Arshad" fullname="Hayyan Arshad">
      <organization>National Institute of Technology Karnataka, Surathkal</organization>
      <address>
        <email>hayyanhamnah@gmail.com</email>
      </address>
    </author>
    <author initials="M. P." surname="Tahiliani" fullname="Mohit P. Tahiliani">
      <organization>National Institute of Technology Karnataka, Surathkal</organization>
      <address>
        <email>tahiliani@nitk.edu.in</email>
      </address>
    </author>
    <date year="2025" month="November" day="02"/>
    <area/>
    <workgroup>Network Configuration</workgroup>
    <keyword>cbor</keyword>
    <keyword>https</keyword>
    <keyword>yang</keyword>
    <abstract>
      <?line 62?>

<t>This document extends <xref target="I-D.draft-ietf-netconf-https-notif"/> by introducing CBOR encoding for YANG notifications over HTTPS Transport in addition to the existing JSON and XML encoding schemes.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://MeherRushi.github.io/draft-chittapragada-netconf-https-notif-cbor/draft-chittapragada-netconf-https-notif-cbor.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-chittapragada-netconf-https-notif-cbor/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Configuration  mailing list (<eref target="mailto:netconf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/netconf/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/netconf/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/MeherRushi/draft-chittapragada-netconf-https-notif-cbor"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <sourcecode type="quote"><![CDATA[
CBOR offers an efficient and compact representation of YANG.
]]></sourcecode>
      <t>This document introduces a CBOR encoding scheme for event notifications over HTTPS by using the framework proposed in <xref target="I-D.draft-ietf-netconf-https-notif"/> which supports transfer of YANG notifications over HTTPS using JSON and XML encoding schemes.</t>
      <t>In <xref target="I-D.draft-ietf-netconf-https-notif"/>, the capabilities HTTP-target resource allows a publisher to retrieve supported encoding formats via GET requests, while the relay-notification resource enables the publisher to send YANG notifications via POST requests. These requests and responses use different content types based on the selected encoding scheme. This document defines support for using CBOR encoding defined in section 1 of <xref target="I-D.draft-ietf-netconf-https-notif"/></t>
      <t>Examples of the GET and POST request and reply encoded in CBOR are also provided.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the following terms defined in Section 2,3 and 4 of <xref target="I-D.draft-ietf-netconf-https-notif"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Capabilities Resource</t>
        </li>
        <li>
          <t>Relay-Notification</t>
        </li>
        <li>
          <t>Event Notification</t>
        </li>
      </ul>
      <t>The following term(s) are defined in Subscription to YANG Notifications <xref target="RFC8639"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Publisher</t>
        </li>
        <li>
          <t>Receiver</t>
        </li>
        <li>
          <t>Subscribed Notifications</t>
        </li>
      </ul>
      <t>The following term(s) are defined in Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR) <xref target="RFC9254"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Diagnostic Notifications</t>
        </li>
        <li>
          <t>YANG Schema Item iDentifier (or "YANG SID" or simply "SID"): 63-bit unsigned integer used to identify different YANG items.</t>
        </li>
      </ul>
    </section>
    <section anchor="cbor-encoding-of-the-notifications">
      <name>CBOR Encoding of the notification(s)</name>
      <t>YANG notifications can be encoded in CBOR using Names or SIDs in keys. Notifications encoded using names is similar to JSON encoding as defined in Section 3.4 and 4.3 of <xref target="I-D.draft-ietf-netconf-https-notif"/>. Notification encoded using YANG-SIDs replaces the names of the keys of the CBOR encoded message with a 63 bit unsigned integer.  In this case, the term 'SID' is defined in Section 3.2 of <xref target="RFC9254"/>, and the keys of the encoded data use SID value as mentioned in 4.3.2 of this document.</t>
      <section anchor="capabilities-request">
        <name>Capabilities Request</name>
        <t>The publisher sends a request to the receiver to learn its capabilities. In the below example, the “Accept” states that the publisher wants to receive the capabilities response in CBOR but if not supported then in XML or JSON in that order.</t>
        <sourcecode type="http-request"><![CDATA[
GET /some/path/capabilities HTTP/1.1
   Host: example.com
   Accept: application/cbor, application/xml;0.5, application/json;q=0.9
]]></sourcecode>
      </section>
      <section anchor="capabilities-response">
        <name>Capabilities Response</name>
        <t>If the receiver is able to reply using “application/cbor” and assuming it is only capable of receiving CBOR encoded messages the response would look like this</t>
        <section anchor="cbor-using-names-as-keys">
          <name>CBOR using names as keys</name>
          <sourcecode type="http-message"><![CDATA[
   HTTP/1.1 200 OK
   Date: Tue, 4 March 2025 20:33:30 GMT
   Server: example-server
   Cache-Control: no-cache
   Content-Type: application/cbor
]]></sourcecode>
          <t>Diagnostic Notation:</t>
          <artwork><![CDATA[
   {
   "receiver-capabilities": {
     "receiver-capability": [
       "urn:ietf:capability:https-notif-receiver:encoding:cbor"
        ]
      }
   }
]]></artwork>
          <t>CBOR Encoding:</t>
          <artwork><![CDATA[
A1                                      # map(1)
   75                                   # text(21)
      72656365697665722D6361706162696C6974696573 # "receiver-capabilities"
   A1                                   # map(1)
      73                                # text(19)
         72656365697665722D6361706162696C697479 # "receiver-capability"
      81                                # array(1)
         78 36                          # text(54)
            75726E3A696574663A6361706162696C6974793A68747470732D6E6F7469662D72656365697665723A656E636F64696E673A63626F72 # "urn:ietf:capability:https-notif-receiver:encoding:cbor"
]]></artwork>
          <t>If the receiver is able to reply using “application/cbor” and assuming it is not capable of receiving cbor, but can receive both json and xml notifications:</t>
        </section>
        <section anchor="cbor-using-names-as-keys-1">
          <name>CBOR using names as keys</name>
          <sourcecode type="http-message"><![CDATA[
   HTTP/1.1 200 OK
   Date: Tue, 4 March 2025 20:33:30 GMT
   Server: example-server
   Cache-Control: no-cache
   Content-Type: application/cbor
]]></sourcecode>
          <t>Diagnostic Notation:</t>
          <artwork><![CDATA[
   {
   "receiver-capabilities": {
     "receiver-capability": [
       "urn:ietf:capability:https-notif-receiver:encoding:json",
       "urn:ietf:capability:https-notif-receiver:encoding:xml"
        ]
      }
   }
]]></artwork>
          <t>CBOR Encoding:</t>
          <artwork><![CDATA[
A1                                      # map(1)
   75                                   # text(21)
      72656365697665722D6361706162696C6974696573 # "receiver-capabilities"
   A1                                   # map(1)
      73                                # text(19)
         72656365697665722D6361706162696C697479 # "receiver-capability"
      82                                # array(2)
         78 36                          # text(54)
            75726E3A696574663A6361706162696C6974793A68747470732D6E6F7469662D72656365697665723A656E636F64696E673A6A736F6E # "urn:ietf:capability:https-notif-receiver:encoding:json"
         78 35                          # text(53)
            75726E3A696574663A6361706162696C6974793A68747470732D6E6F7469662D72656365697665723A656E636F64696E673A786D6C # "urn:ietf:capability:https-notif-receiver:encoding:xml"
]]></artwork>
          <t>If the receiver is unable to reply using "application/cbor", but is capable of receiving only cbor then the response might look like this:</t>
          <sourcecode type="http-message"><![CDATA[
   HTTP/1.1 200 OK
   Date: Tue, 4 March 2025 20:33:30 GMT
   Server: example-server
   Cache-Control: no-cache
   Content-Type: application/json
   {
   "receiver-capabilities": {
     "receiver-capability": [
       "urn:ietf:capability:https-notif-receiver:encoding:cbor"
        ]
      }
   }
]]></sourcecode>
        </section>
      </section>
      <section anchor="relay-notification-request">
        <name>Relay Notification request</name>
        <t>The publisher sends an HTTP POST request to the "relay-notification" resource on the receiver with the "Content-Type" header set to "application/cbor" in case the receiver is CBOR capable and a body containing the notification encoded in CBOR.</t>
        <section anchor="cbor-encoding-using-names-as-keys">
          <name>CBOR encoding using names as keys</name>
          <sourcecode type="http-request"><![CDATA[
POST /some/path/relay-notification HTTP/1.1
   Host: example.com
   Content-Type: application/cbor
]]></sourcecode>
          <t>Diagnostic notation:</t>
          <sourcecode type="http-response"><![CDATA[
   {
     "ietf-https-notif:notification": {
       "eventTime": "2013-12-21T00:01:00Z",
       "example-mod:event" : {
         "event-class" : "fault",
         "reporting-entity" : { "card" : "Ethernet0" },
         "severity" : "major"
       }
     }
   }
]]></sourcecode>
          <t>Cbor Encoding:</t>
          <artwork><![CDATA[
A1                                      # map(1)
   78 1D                                # text(29)
      696574662D68747470732D6E6F7469663A6E6F74696669636174696F6E # "ietf-https-notif:notification"
   A2                                   # map(2)
      69                                # text(9)
         6576656E7454696D65             # "eventTime"
      74                                # text(20)
         323031332D31322D32315430303A30313A30305A # "2013-12-21T00:01:00Z"
      71                                # text(17)
         6578616D706C652D6D6F643A6576656E74 # "example-mod:event"
      A3                                # map(3)
         68                             # text(8)
            7365766572697479            # "severity"
         65                             # text(5)
            6D616A6F72                  # "major"
         6B                             # text(11)
            6576656E742D636C617373      # "event-class"
         65                             # text(5)
            6661756C74                  # "fault"
         70                             # text(16)
            7265706F7274696E672D656E74697479 # "reporting-entity"
         A1                             # map(1)
            64                          # text(4)
               63617264                 # "card"
            69                          # text(9)
               45746865726E657430       # "Ethernet0"
]]></artwork>
        </section>
        <section anchor="cbor-encoding-using-sids-as-keys">
          <name>CBOR encoding using SIDs as keys</name>
          <t>Diagnostic Notation:</t>
          <sourcecode type="http-response"><![CDATA[
   {
    2601: {
       1: "2013-12-21T00:01:00Z",
       "example-mod:event" : {
         "event-class" : "fault",
         "reporting-entity" : { "card" : "Ethernet0" },
         "severity" : "major"
       }
     }
   }
]]></sourcecode>
          <t>The above is assuming the YANG module for event notifications has a corresponding .sid file with these entries</t>
          <artwork><![CDATA[
"item": [
      {
        "namespace": "module",
        "identifier": "ietf-notification",
        "sid": "2600"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-notification:notification",
        "sid": "2601"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-notification:notification/eventTime",
        "sid": "2602"
      }
    ]
]]></artwork>
          <t>CBOR Encoding:</t>
          <artwork><![CDATA[
A1                                      # map(1)
   19 0A28                              # unsigned(2600)
   A2                                   # map(2)
      01                                # unsigned(1)
      74                                # text(20)
         323031332D31322D32315430303A30313A30305A # "2013-12-21T00:01:00Z"
      71                                # text(17)
         6578616D706C652D6D6F643A6576656E74 # "example-mod:event"
      A3                                # map(3)
         68                             # text(8)
            7365766572697479            # "severity"
         65                             # text(5)
            6D616A6F72                  # "major"
         6B                             # text(11)
            6576656E742D636C617373      # "event-class"
         65                             # text(5)
            6661756C74                  # "fault"
         70                             # text(16)
            7265706F7274696E672D656E74697479 # "reporting-entity"
         A1                             # map(1)
            64                          # text(4)
               63617264                 # "card"
            69                          # text(9)
               45746865726E657430       # "Ethernet0"
]]></artwork>
        </section>
      </section>
      <section anchor="relay-notification-response">
        <name>Relay Notification Response</name>
        <t>The response on success is  "204 (No Content)". In case of corrupted or malformed event, the response is an appropriate HTTP error response.</t>
      </section>
      <section anchor="implementation-status">
        <name>Implementation Status</name>
        <t>This section records the status of known implementations of the specification defined by this document at the time of posting. The information is provided to assist the IETF in evaluating the maturity and implementability of the specification. This section will be removed prior to publication as an RFC.</t>
      </section>
      <section anchor="implementation-https-notification-cbor-draft-implementation">
        <name>Implementation: HTTPS Notification CBOR Draft Implementation</name>
        <ul spacing="normal">
          <li>
            <t><em>Organization</em>:
National Institute of Technology Karnataka (NITK), Surathkal</t>
          </li>
          <li>
            <t><em>Implementation Name / Web Page</em>:
HTTPS Notification CBOR Draft Implementation
<eref target="https://github.com/MeherRushi/https-notif-draft-impl">https://github.com/MeherRushi/https-notif-draft-impl</eref></t>
          </li>
          <li>
            <t><em>Description</em>:
This implementation provides a Python-based prototype of the mechanism defined in this document for transporting YANG notifications over HTTPS using JSON, XML and CBOR encoding. It supports name-based CBOR encoding and includes basic publisher and receiver roles to demonstrate end-to-end message exchange.</t>
          </li>
          <li>
            <t><em>Maturity Level</em>:  Prototype</t>
          </li>
          <li>
            <t><em>Coverage</em>:
            </t>
            <ul spacing="normal">
              <li>
                <t>Capabilities discovery via HTTP GET to /capabilities</t>
              </li>
              <li>
                <t>Event publication via HTTP POST to /relay-notification</t>
              </li>
              <li>
                <t>Support for name-based CBOR encoding as described in this document</t>
              </li>
            </ul>
          </li>
          <li>
            <t><em>Version Compatibility</em>:
The implementation is based on  draft-ietf-netconf-https-notif-15 and draft-chittapragada-netconf-https-notif-cbor-03.</t>
          </li>
          <li>
            <t><em>Licensing</em>:
Freely distributable under an MIT-style license.</t>
          </li>
          <li>
            <t><em>Implementation Experience</em>:
            </t>
            <ul spacing="normal">
              <li>
                <t>Developed and demonstrated at IETF 121 and 122 Hackathon.</t>
              </li>
              <li>
                <t>Worked toward enabling CBOR encoding in the libyang library as part of the hackathon effort (<eref target="https://datatracker.ietf.org/meeting/123/materials/slides-123-hackathon-sessd-adding-cbor-support-in-libyang-00">slides</eref>).</t>
              </li>
              <li>
                <t>Evaluated CBOR efficiency compared to JSON and XML in constrained environments.</t>
              </li>
              <li>
                <t>Built tooling to simulate and measure notification transfer behavior over varying network conditions.</t>
              </li>
              <li>
                <t>Diagnostic encoding examples used for validation of CBOR structures.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><em>Contact Information</em>:
            </t>
            <ul spacing="normal">
              <li>
                <t>Bharadwaja Meherrushi Chittapragada (meher.211cs216@nitk.edu.in)</t>
              </li>
              <li>
                <t>Vartika T Rao (vartikatrao.211it077@nitk.edu.in)</t>
              </li>
              <li>
                <t>Siddharth Bhat (sidbhat.211ee151@nitk.edu.in)</t>
              </li>
              <li>
                <t>Hayyan Arshad (hayyanarshad.211cs222@nitk.edu.in)</t>
              </li>
            </ul>
          </li>
          <li>
            <t><em>Last Updated</em>:
July 24, 2025</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Addition of the CBOR encoding introduces no specific security exposures or risks other that the ones mentioned in <xref target="RFC9254"/> and <xref target="I-D.draft-ietf-netconf-https-notif"/> (An HTTPS-based Transport for YANG Notifications)</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests that IANA include an additional entry in the “Capabilities for HTTPS Notification Receivers” registry, defined in <xref target="I-D.draft-ietf-netconf-https-notif"/>. The following entry is added:</t>
      <artwork><![CDATA[
Record:
   URN:         urn:ietf:params:yang-notif:https-capability:encoding:cbor
   Reference:   RFC XXXX:An HTTPS-based Transport for YANG Notifications
   Description: Identifies support for CBOR-encoded notifications.
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.draft-ietf-netconf-https-notif">
          <front>
            <title>An HTTPS-based Transport for YANG Notifications</title>
            <author fullname="Mahesh Jethanandani" initials="M." surname="Jethanandani">
              <organization>Kloud Services</organization>
            </author>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="1" month="February" year="2024"/>
            <abstract>
              <t>   This document defines a protocol for sending asynchronous event
   notifications similar to notifications defined in RFC 5277, but over
   HTTPS.  YANG modules for configuring publishers are also defined.
   Examples are provided illustrating how to configure various
   publishers.

   This document requires that the publisher is a "server" (e.g., a
   NETCONF or RESTCONF server), but does not assume that the receiver is
   a server.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-https-notif-15"/>
        </reference>
        <reference anchor="RFC8949">
          <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="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="RFC8639">
          <front>
            <title>Subscription to YANG Notifications</title>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="A. Gonzalez Prieto" initials="A." surname="Gonzalez Prieto"/>
            <author fullname="E. Nilsen-Nygaard" initials="E." surname="Nilsen-Nygaard"/>
            <author fullname="A. Tripathy" initials="A." surname="Tripathy"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document defines a YANG data model and associated mechanisms enabling subscriber-specific subscriptions to a publisher's event streams. Applying these elements allows a subscriber to request and receive a continuous, customized feed of publisher-generated information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8639"/>
          <seriesInfo name="DOI" value="10.17487/RFC8639"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3553">
          <front>
            <title>An IETF URN Sub-namespace for Registered Protocol Parameters</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document describes a new sub-delegation for the 'ietf' URN namespace for registered protocol items. The 'ietf' URN namespace is defined in RFC 2648 as a root for persistent URIs that refer to IETF- defined resources. 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="73"/>
          <seriesInfo name="RFC" value="3553"/>
          <seriesInfo name="DOI" value="10.17487/RFC3553"/>
        </reference>
      </references>
    </references>
    <?line 412?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors acknowledge the support of Kent Watsen and Mahesh Jethanandani, the authors of <xref target="I-D.draft-ietf-netconf-https-notif"/> for their guidance and support provided to draft this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
72VnBNzD0fk2zdwrXFQtnevuxM5obWqQjkF9ILPjPP0CW8xePcFec30Vhmd8
09pKIOfrPZaWU7mWWhMQOZv+FtC93Ac3h3iP09jiLuzfEfm+E9bSS/KDg24J
UfPuRTqyPfLyvn0ZeJ9c6j4V//ojuIUqMPX+gyIbJWhyGj8o3lgpdkooyeHj
HdCfBU+f0S8k7fJ7cWJlxhJvG+2LGZ0zF+mZobMHOq62SY/TorOmWmpayaXF
KdJSepw92MFrQmnlh1daJdRuT3Lq0azWFVRwBjLqdgv+SzE9NSCdjDw9XGdj
vPHzg/f+NYN3qsC5lYx+SQZ///hpNz96p6J71n9/CAJAcd61T5Ny8LGZR3eH
mFyOVO12fM4jtg36OY/4nEd8ziO25BHbdjWqQ9RJfWsJLSbzPGW4UoEcwZHY
v4mLpfhBiw+1eb8hnnGwzJZ0wIyYGsqAirWowIkU67C5Z6V5rwRr+CReJlqm
yu6bqCQBaNHLHspfkQsIy9qTO3xnJq8lKiqdEoWxfXv+argD0XMfxY+R0A34
smTALJVX8V8UH0xXzboAkZ/Bpwg/BLmMuSiRi8BEWWMJBIApCp9oYwZGpI0F
5TJ2HUEMMshkWuQggMvIdfBeTEWj3bzaSmReGVbw/KiDgCpSEhUix/ExvI65
/IA3pXK+JMv59uX5NlmO8/q/hiZw4LygcpK13o4rvnidzGWk/4efv6Cq7N1L
XKE3V5NvDhqVrsC4NrtUSCM64ns1FW/kXPEYH0SkED8UFet5mboXh7Xi9U59
WzCvmgGGH/c/BuqAWbhQZcEX08uz1NS6QjcopXyzShdxlF+6wPs0purAYsZD
iA4iNmG9HqapkpSxpkXpbFG/s0t15yEXfJC+NRYSsOG0KhulxC0nrrncYD2N
vCDzbSkjlhjV9qetC8x3G5OYSyxjsBCCGNCaUprsu2nsUpllUTKk3hKvc7Jz
iPG6MIhv4TCCL8ZCvCmEw+3nxFOhE2tVfb42HjWvuF6TXQmVq4CERp2KU1X2
1Y2khOFdSgLa3J50bBVeVYP5tJyolKko1lufPIdZ+U4lhtWYqo5TbW0+1x21
rjq6Vjgq3l/n5faGPBMfdvNmYOX/rfZURLrChLxMlAqokg7Tp6dZytvGWeTz
XIvrq4lr0hVeBQyVT+GaMV++XSI7gmCKObugmY2X4IWprLTDJz/LjrLX73Fj
r98Xr6R3L8lY2gz9fZzcs3d9RNS0lbybZbB5GWOgp3Qvh74TqmPEpCwlZi63
skWBmcrAaUb3fzAB2WflB2jNQkXy9yqpbtyESpHFdXr9QQcOXNH9I9OxoEiQ
B26J2DVQct+lqnZkHyzo3MRcHbk5eS7WCgftXCs5OpTalFeneytbmp7YsNKo
0aadfitA9hMqetBJHJH4jcX5ItMBHRPELCcqctZhRhd7GEWopMmStR3/smh8
qhbygQIKe5IHyJC3+fNLTR4tiNnT2JFq2w7lTKiinpjLM8lkwKL2y8J65hPU
Zx7snivM2cihPB50oQqtue7scO9H7PNtn3a/1/NMvzeqX9c4YCSNCzBiv3bt
hYB02j0+3gRq3uIR+1h60qUdglCqN+xtQjTutoh9e6NF8lNOXL/fhGIDlMgY
/rakO2s+M/11BgvsHx3ygRxXr94pz/pIyAlkqKQorj0rbk9slGhaoyhvKkRx
mVRQJmGxqbfIa2gSKHFLtLnHj5QL44saxJhK0Bt1lPWiTNanXa8p7J9FjXuH
1S2Q8sZIo272gG91nN2cbTDdLCcvC/KZaAbIwxWnmrmAkKrQhs2qcBS//fqP
RiQpb0Wu58c2thmqvEnUnNzi6rAeo3cuxG0WbOfEGCJQ+flGxS2ns6QC4m+3
N+Myzy+POeEQZGjG7EPsyYcdpHb82TjpJEy3imuiPUX4MHXi7/gbf+Bk8Ilx
le+MxVWxldO8oUD65xbHh43UpG2XIXRpZwpnSZN75lGmHih/zs7L+WVs728q
/69YKwZGtd7lu3l8GxCyKgHsOWcxMpT/G1KF72VqlK1qupYLZRbiawWtiPAC
uZVdihS4dq+htonXQulEzDM4ssizjrQYvZ7/M671EuP/B+Fh17qMOwAA

-->

</rfc>
