<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wilaw-moq-cmcd-event-timeline-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="CMCD over MSF">CMCD transmission over MSF Event Timeline</title>
    <seriesInfo name="Internet-Draft" value="draft-wilaw-moq-cmcd-event-timeline-00"/>
    <author fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="10"/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>MSF</keyword>
    <keyword>Eventtimeline</keyword>
    <keyword>MOQT</keyword>
    <abstract>
      <?line 41?>

<t>Defines the transmission of CMCD data over MSF Event Timeline tracks.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wilaw.github.io/CMCD-over-MSF-event-timeline/draft-wilaw-moq-cmcd-event-timeline-latest.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wilaw-moq-cmcd-event-timeline/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/wilaw/CMCD-over-MSF-event-timeline"/>.</t>
    </note>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>MOQT Streaming Format <xref target="MSF"/> defines Event Timeline tracks as a generic mechanism for
transmitting ad hoc data associated with MSF media tracks. CMCD <xref target="CMCD"/> defines a
means by which a media player can communicate structured data and have it processed consistently
by delivery networks and third-party data collection services. This draft specifies how an MSF
catalog can instruct a publisher to publish configurable CMCD data at a target destination using
MSF Event Timeline tracks.</t>
      <t>This specification defines transmission for version 2 of CMCD.</t>
    </section>
    <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 anchor="restrictions">
      <name>CMCD mode and key restrictions</name>
      <t>CMCD supports two reporting modes - Request Mode and Event Mode. Since Request mode is tied to
HTTP requests, which are not present in MOQT, this specification constrains CMCD usage to those
options offered in Event Mode. Request mode <bcp14>MUST NOT</bcp14> be used.</t>
      <t>Furthermore, there are certain keys under Event Mode which reference request semantics and therefore
are not allowed in this specification. The keys which <bcp14>MUST NOT</bcp14> be used are: 'ab', 'cmsdd', 'cmsds',
'd', 'dl', 'h', 'lab', 'nor', 'nr', 'ot', 'rc', 'rtp', 'sf', 'smrt', 'su', 'tab', 'ttfb', 'ttfbb',
'ttlb' and 'url'.</t>
      <t>The following keys <bcp14>MAY</bcp14> be used in Event Mode: 'bl', 'bg', 'br', 'bs', 'bsa', 'bsd', 'bsda', 'cen',
'cid', 'cs', 'dfa', 'e', 'ec', 'lb', 'ltc', 'msd', 'mtp', 'pb', 'pr', 'pt', 'sid', 'sn', 'st',
'sta', 'tb', 'tbl' and 'tpb'.</t>
      <t>The Event key 'e' <bcp14>MUST NOT</bcp14> use the 'h' and 'rr' tokens. While the 'ts' data is mandatory for every
report, it is transmitted as the index value of each event timeline record.</t>
      <t>When the CMCD spec refers to a 'manifest' in the description of a key, interpret that as the 'catalog'
in the context of this specification.</t>
      <t>The version key 'v' <bcp14>MUST</bcp14> be present in each report and <bcp14>MUST</bcp14> carry a value of 2.</t>
    </section>
    <section anchor="catalog-requirements">
      <name>Catalog requirements</name>
      <section anchor="publish-tracks">
        <name>Publish tracks</name>
        <t>A broadcaster triggers a catalog recipient to send CMCD data by including a 'publishTracks'
(see <xref target="MSF"/> Section 5.1.5) entry. That entry <bcp14>MUST</bcp14> point at a CMCD track <xref target="cmcd-track"/>. Multiple CMCD
tracks <bcp14>MAY</bcp14> be included in the publishTracks array in order to target data at different destinations.</t>
      </section>
      <section anchor="cmcd-track">
        <name>CMCD track</name>
        <t>A CMCD track defines a track which is to be published by the receiver of the catalog. It defines the
configuration of the CMCD data to be sent within the payload of that track, as well as the namespace
and name under which the track will be published. A CMCD track <bcp14>MUST</bcp14> only be included in a 'publishTracks'
array and <bcp14>MUST NOT</bcp14> be present in a 'tracks' array.</t>
        <t>An MSF track carrying <xref target="CMCD"/> data <bcp14>MUST</bcp14></t>
        <ul spacing="normal">
          <li>
            <t>declare a packaging value of "eventtimeline".</t>
          </li>
          <li>
            <t>declare an eventType value of "urn:cta:cmcd:2026".</t>
          </li>
          <li>
            <t>be referenced in the 'publishTracks' array</t>
          </li>
          <li>
            <t>carry a 'cmcdConfig' <xref target="cmcd-config"/> custom track field.</t>
          </li>
        </ul>
        <t>A CMCD track is an Event Timeline track (See <xref target="MSF"/> Section 8). The "T" wall-clock time index <bcp14>MUST</bcp14> be used.
The 'data' field of each timeline entry is defined as a CMCD_DATA object <xref target="cmcd-data"/>.</t>
        <t>Each CMCD track record <bcp14>MUST</bcp14> be published as a new Group unless batching is in effect, in which case multiple
records <bcp14>MUST</bcp14> be accumulated within each Group. The Group ID <bcp14>SHOULD</bcp14> begin at 0 and then increment by one for
the duration of the session.</t>
        <t>Each CMCD track record <bcp14>MUST</bcp14> be published as soon as possible after the event which triggered it, unless batching
is in effect, in which case the batching constraints (see <xref target="cmcd-config"/>) apply.</t>
        <section anchor="cmcd-data">
          <name>CMCD_DATA object</name>
          <t>The CMCD_DATA Object is a sequence of key-value pairs. The key is a string which matches one of the allowed
CMCD keys specified in <xref target="restrictions"/>. The value is always a string and it holds the CMCD-defined value
for that key. The value is NOT URLEncoded.</t>
          <t>The 'ts' key <bcp14>MUST NOT</bcp14> appear in the CMCD_DATA Object. The value of the 'ts' key <bcp14>MUST</bcp14> be used as the "T" value
of the record index.</t>
          <t>Example CMCD track record</t>
          <sourcecode type="json"><![CDATA[
{
        "T": 1756885678361,
        "data": {
            "sid":"6e2fb550-c457-11e9-bb97-0800200c9a66",
            "bl": 4068,
            "br": "(5000;v 320;a)",
            "bsd": 321,
            "e":"t",
            "sta": "p",
            "v": 2
        }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="cmcd-config">
        <name>Configuration</name>
        <t>This specification defines a new, custom MOQT track field, intended solely for use within a
CMCD track. The name of the field is "cmcdConfig" and the value is a JSON <xref target="JSON"/> object. The purpose of
this field is to instruct the publisher on which CMCD keys to send in the track, how to send them and
where to send them.</t>
        <t>The JSON Object contains the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>"events": an array containing one or more triggering events. Each event <bcp14>MUST</bcp14> be in the set ('abs','abe','ae',
'as','b','bc','c','ce','e','m','pc','pe','pr','ps','sk','t','um'). This array <bcp14>MUST NOT</bcp14> be empty.</t>
          </li>
          <li>
            <t>"interval": optional, the time interval in milliseconds between 't' events. This field <bcp14>MUST</bcp14> only be present if the
't' event is included in the 'events' array. Intervals below 5000 <bcp14>SHOULD NOT</bcp14> be used.</t>
          </li>
          <li>
            <t>"enabledKeys": an array of the allowed CMCD keys to be included in the report. By default, all keys are excluded
so each key <bcp14>MUST</bcp14> be explicitly enabled, with the exception of the 'v' key. The 'v' key is mandatory and <bcp14>MUST</bcp14> be
included in each record even if it is not specified in the 'enabledKeys' array.</t>
          </li>
          <li>
            <t>"sid": optional, a session ID to use as the value of the 'sid' key. This field <bcp14>MUST</bcp14> only be present if the 'sid'
key is included in the 'enabledKeys' array. If not provided and 'sid' is specified in the 'enabledKeys' array,
then the publisher <bcp14>MUST</bcp14> synthesize its own session ID using the guidelines specified in <xref target="CMCD"/> Section 4.3.</t>
          </li>
          <li>
            <t>"batchCount": optional, the number of records to accrue before publishing a new Group.</t>
          </li>
          <li>
            <t>"batchInterval": optional, the minimum interval in milliseconds before publishing a new Group.</t>
          </li>
        </ul>
        <t>If both batchCount and batchInterval are specified, then the publisher <bcp14>MUST</bcp14> publish a new Group when either constraint
is first satisfied.</t>
        <t>An example cmcdConfig track entry, instructing the publisher, every 30 seconds and at every playstate change, to
publish a CMCD record containing session ID (which has been provided), buffer length, bitrate, play state and
absolute buffer starvation CMCD data.</t>
        <sourcecode type="json"><![CDATA[
"cmcdConfig" : {
    "events": ["t","ps"],
    "interval": 30000,
    "enabledKeys": ["sid","bl","br","sta","bsa"],
    "sid":"6e2fb550-c457-11e9-bb97-0800200c9a66"
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="example-catalog-entry">
      <name>Example catalog entry</name>
      <t>This catalog excerpt shows the catalog instructing the publisher to send CMCD data to 3 different targets.
Each target receives a different set of CMCD keys:</t>
      <ul spacing="normal">
        <li>
          <t>The first target is a player monitoring system, which receives general health information every 30s.</t>
        </li>
        <li>
          <t>The second target is a play state monitoring system. These reports are batched and then sent once a minute.</t>
        </li>
        <li>
          <t>The third target is an error collection system, which receives only player errors.</t>
        </li>
      </ul>
      <t>Note the use of the MSF variable substitution scheme to pass down a custom track name. This is a useful mechanism
for giving each end-receiver a cacheable catalog while still allowing individualized reports.</t>
      <sourcecode type="json"><![CDATA[
"publishTracks": [
    {
      "namespace": "example.com/collection/cmcd/health",
      "name": "%player-id%",
      "packaging": "eventtimeline",
      "eventType": "urn:cta:cmcd:2026",
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
      "cmcdConfig" : {
         "events": ["t"],
         "interval": 30000,
         "enabledKeys": ["sid","bl","br","bs","ltc","msd","mtp"]
      }
    },
    {
      "namespace": "example.com/collection/cmcd/playstate",
      "name": "%player-id%",
      "packaging": "eventtimeline",
      "eventType": "urn:cta:cmcd:2026",
      "token": "kkjh68n3DVun23csFGk418kHNU5VDrwb...",
      "cmcdConfig" : {
         "events": ["ps"],
         "batchInterval": 60000,
         "enabledKeys": ["sid","ps"],
         "sid":"6e2fb550-c457-11e9-bb97-0800200c9a66"
      }
    },
    {
      "namespace": "example.com/errors",
      "name": "%player-id%",
      "packaging": "eventtimeline",
      "eventType": "urn:cta:cmcd:2026",
      "cmcdConfig" : {
         "events": ["e"],
         "enabledKeys": ["sid","ec"]
      }
    }
  ]

]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The carriage of CMCD signals within the MSF Event Timeline track inherits the security
considerations of both the underlying MSF transport and the CMCD standard itself.
CMCD data is sent by an untrusted player and may therefore be falsified.</t>
      <t>The ability of a publishTrack to direct output at a third-party site could be used to DoS
both the sender and receiver of the data if the CMCD payload were high and the interval low.
Setting a 't' interval to 1, for example, would cause a very high report rate. Client implementers
<bcp14>SHOULD</bcp14> protect themselves from high report rates by coercing low values to a higher, sustainable
level.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document adds one entry to the "MSF Event Timeline Types" registry.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Event Type</th>
            <th align="left">Description</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">urn:cta:cmcd:2026</td>
            <td align="left">CMCD data transmission</td>
            <td align="left">This document</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to the IETF MOQ working group and the CTA WAVE CMCD working group for their review and input.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="MSF">
        <front>
          <title>MOQT Streaming Format</title>
          <author fullname="Will Law" initials="W." surname="Law">
            <organization>Akamai</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <date day="2" month="June" year="2026"/>
          <abstract>
            <t>   This document specifies the MOQT Streaming Format, designed to
   operate on Media Over QUIC Transport.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-msf-01"/>
      </reference>
      <reference anchor="JSON">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </reference>
      <reference anchor="CMCD" target="https://cta-wave.github.io/Resources/common-media-client-data--cta-5004-b.html">
        <front>
          <title>Common Media Client Data (CTA-5004-B)</title>
          <author>
            <organization/>
          </author>
          <date year="2026"/>
        </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>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8Va63Ibx7H+P08xB6oUpBQA3kSKYlJJaJKy6UiiI1LWSblU
p2Z3B8CYe8vOLiFalp/lPMt5svN19+yNpFRy/kQlLrCzMz3dPX35uhfz+VzV
rk7tkZ6cvDo51XVlcp85712R6+LGVvrV5Qt9dmPzWl+5zKYutxNloqiyN+2a
dtpExaa2q6K6PdK+TpRKijg3GWgnlVnW841LzWaeFf+ax1mczC0RndeB6DzF
Wl8r30Rh+/q2xNLzs6sXKm+yyFZHKsGcIxUXube5b/wR2G2sAiN7ylTWgKF3
NtImT/R5Xtsqt2CaBCqLqp6oTVFdr6qiKTHvlU2c0RfE+T/enp9M1LW9xfPk
SOk5yUIfLHXLH49f/ONKYbABE1p/lpTWwvrkHTZ0+Up/SzNpPDMuxThU8Ddn
6+WiqFY0bKp4jeF1XZf+aGuLZtGQu7GLdtoWDWxFVbHxdgvrt2jdytXrJsJK
1uwWHcacDmMOAe6ol6aLhgcb8bKFUFm44osEtr7iDBfrOksnSpmmXhcV6Wiu
l02aihG8c2mqX5oNhrWGSCZ3v5gaB32kj68NhOYHNuiIN/qb4QeLuMhANi+q
DAtuWPvgEMYxP10IX6QnZivzy/n2DiZ8f3nx+ki/eXFyuLv/HPck3BFv0Rl8
kWWwcjm/k9SRjZ+a2ujHJ1fH8/3t7afzb55MeAkbnt7d3j0QCqZaWWiyVWRc
m/nG4Lh6Xb6xvmiq2PqtmLeZZ7TNPOZt5qBn5nNaxttErDmlFouFUvP5XJvI
wxPjWqlTu4Rmva7X9o5zLlkkYs18zlNpRXztQZSpZi5JUqvUI3KPqkiamNSv
FNm1vqzhQRmZ6wvWs/74EQQ/fdJJ4OBB0trgv17Z3FYu1pmN1zhWn+llUanA
LlwIRE2i10Us3Brvi9hBpYneQGHMOKun5Vck+/iRPgYcGJVZkNTRrd6sXbzG
zrKsTM0tFBCbXJO2m9xRJEIQqiBiU2Ef2ReBYY1j0q7WZVXgcDweUThxvoZw
6a0C6QTyQZ23GuGDQobndfXaVcm8NFV9K8TiIk0tK1B7W904UFvoq7XzEu20
L23slg5sr4sNSHBUAVsmLVbMqcuFP0hRNlHq/Boi1EV7Q3wt3aqpTJTawVEb
WiAGCFY9lMtOpBsPNasv2QAzF9iKZVGr2ZFl4ew0FMDfd1s7W5DZnBQ50cYD
UQobp+N7Im81oqimMOoRFt9eXk1m8qlfX/D3N2eIkG/OTun75XfHL192X1SY
cfndxduXp/23fuXJxatXZ69PZTFG9WhITV4d/xNPiKvJxQ9X5xevj19OoGM6
OBxJETcZaQVpgnQcwQYoQ5SVJSs0XkGVceUi3GDNNyc//N//7jyFBf4XAsju
zs5zWKHcHO48e4qbzdrmsluRp7fhFj56q0xZWlMRFYN4F5vS4cj9jBzFwxJy
jWO20OYffyLNvD/Sf47icufpX8IACTwabHU2GmSd3R+5t1iU+MDQA9t02hyN
39H0mN/jf47uW70PBv/8V7bB+c7hX/+i2ITIkLMisaw8spcKRozgIVb18dHw
9pNSPN83JaVw2OmmwHz6TjGFyHjkmDf2Xw1W6VctWfEAul3oS5fHtpvCO8Mg
aoeTrgv13dXVD6DID3FIIazASPKCYoT1RAhnSSFyJrY09iCKHvAeOLOI1niz
YhNDCvRWFaXIVSyXthLjGjI3Yqs9frLOBpEJRvKiqWBUVVZUls0LjBFzsa1q
bEnq87rJEwSOnmoQorK0I8kexEOYygycN24DGh7D1a1qxYW9Fhvh8b6gFNus
bCj073JLjB3pqYmmMz2NM58k7Rc/nakp3yUpXdd0SWUicjp/8LWo6VrFfK1L
+vBLvmYVP/INXWtZWtfL7jOiLeo6jaYs27Sp0ulCQtKyILHIXJh52GzH8egw
wHvE7EUrvjJHkZerkY8kfPBtbHPaNXYiKM9MlvzI8oXlSJnHtOabTChkIlvJ
j0reqBT5hJbP+VoTeV8zxVpEBYciYI3FQUARgTwJ+/bHAgkZNEDdsqSqprDL
ayDnhX63dml4XPupJBacOOwDXwHgOQdYyoJK3G1GOdN1iaKWqMkUHOzvg74x
aWMpWVgD42BcqFtcCAuMkRTA7zvESV4kbg0DEzv15DEGmgF6WMJWp2KEVktY
Zici4obknPWxG3MoHwoj05Bdpyoshm/W9kNNCx8waNFem+hYfzdBfzCQge+z
RKIG1iRPiU0FNZle7l3JkCHBk8+5ylLOQWp89Ej/ELK6ZGN1rIHlTRIbAA9k
/cqtVqQFwIqOQOxKhqTQDDhJBhAAIAVBLW0SBlYwHqF9xaSn6rG3tkNvlwGj
7C92FvtPNAhWt+TLUBt/F2nKwlFyJGjRloHxNWgwyOebT58W+lWT1q4MaEQF
ABgcShhqo4fVI54QGypDTAP3J4JyWgQTIE3iOEDmI0zDwPXRoxFLjwYsQYuD
Rx1KDPcSppwP+b7FWAmpjziEhi0BPTEP22p+oc/rHhetrepwWGuEnf0y80Kd
bYXAbCu+uU1xvjId8jFLDAI2FrAgWCwVRr40MWIwDpjuQjQX3gPmJ1modhoK
sdAj2fkQGYncOYr71iFH0dlxiOADc8cSOdqpHBsO4ZjRa9iLLZ8sr8fnpAei
BlQD1cUpZRSgWsw2K5rZOcnEDmvqyWI4P5eocYXaebCgqfIj1ElHdOxHVIDx
osj2+a0zuTuSCveY3LrqlGic8GlOW9uWw4UMcePrIgsiAranFK5GOnaUNx8E
1/rx5QMed/hEcubkaqI3yK2o/QrMJeFDzGxjjSR7mjslVU5l/y6YdmFUHJbg
LJtnIsUXsfg/p8dXx7qIfsberWhECl6r1BkRGQgi0biPdJ1jMLncbqRhAVNM
USHpyNTxmk4RG1M0hKPGlA/yYKWIYVZnITQoIe476iYG8m7Srthr4ylvIQqS
3c5PdYCmkV2RGdZ6uwUqVCzFEk3Je4vcSoFJCeKOY3rLRczvFNsXoIDPssBq
qrdQwVGcAkFJZcEhJU6TyUEDd/SjvqQfotQpssOMQLQhWI+M8YlGEZGS4z0K
0W98vo/682Wr6WdcyAwyVWgCsI/wHzSD7DYXnyqNq3wH5sJMyAW2hN2MuETo
IyUHnQZgKFicUVRb3LLvffw4wuyfhLpsR/TTjbkdbENnCjCxLtLEd7F03po0
L1MEPzhuYrc75ChgvX3z8iyPAdqSkMUZxZA8XUzry7D6AQ0NaQYhxyQ6UCss
kg8LZ2F2MCb2Y8pS6uyDydrUODI4pX777Tf9sy9y9ZGbR/QP9I70zrP9g8PD
/YNnh3sHO7P+GR0sHvezeRTYcHI0ObC7y2h/f3seP91/Nt/Zsc/nUfT82Xz7
cHt7d3s7fm4ODiaz8cooBbWn2weHd8crjE8e729vb//pRu/tbv/JPLm31mNX
PNu5M27BS313sme+J+Xd8RuM7nZDn9QnUolk9lFuDYYd3OCLDQuOU7M2anMD
axC6BSHmlAN9kdpU8Cwh4hCCjOrPSWyBk284XAm/2HvSZ4xJG4sGhs09Rpg/
fSDwFwPTKpsKsYQoKoaeHUnAha7xM8BJBEPagNG7WQv9ghUHEEH9pPYJhjPi
TG24OBwOB9dgHkNcIEDMpWo9KoyYOX9E2VsStMeBIdcJVAiLaCLHhEpTOdrG
QhqWNQt91kP/1okC5x5Q7zFqQxRJuFq64gKTmBoaiugPFdKU/+gx/WX4K2mk
pDuqk6YlzfbXuKA4mjbZ9EnouQmrQ0Rjs7K+Jaww4WoBpwahpBw36Uz0KalY
nhKrGWCW83DbHKEpsvXGIvVgq07Cq/4sR5Crg09sQCRXu0iy5hgbT4Vci6/k
ZQVYoD1xJJo8Uvd9mh4i0Pnk1A9M/g7zGB7SOFKPTegBdC7VzEJ/Q+3OpUHy
nnG7ipcQGrMfZAFE8YVk7GFstB/K1MWuhvSBoZm0cjljfohtOczJVFd1gTzc
jMvNDo5GpLwht6H44mhLaiMVSylKLYtRHhLV9vrp8OsfQ/QcHL9pgQLhDuiI
YkOI9eOsQCV5y/zXnL2sgBBBxvtnf59Bfb4M/abixtFcrtd5Z+e/SkZypbqt
rfuQwnz62xyj3v1CfW/k9U0+lJ3bxrxs1biEcea99B5gfgtsny72WKeMZ06K
Jq/veZa8sCMltniQ6vs4rqDZiLtOLZdSwnagsyd8/jmvzRCLsib7kuN+cQMF
bUcFbLXnnxU+2pWdoFPD7LPKbZv1Q9xMzWBtHTXYBlBPsfVU1IdDKvNEVior
G5BDn2tCKmO4P+vSRXtOHQcz6dDovW3dik5yUGXP4/RWBCm5Bum1yVfUQSxU
zzDHiOBZgxg/sI3Hko/WhnQKmVr7fDLTUUP1uk5tvqrXuHVgucYOtKeWTSkr
IeIXaYObMB9PoF22oq6CXgwQ0ijhthCoz0k/EeaYlH7yXhDGMLTvIWhuh+Fx
kPyJvX9GOGhGoGfGQAVfvekI/Q501cEX3WK+tmfDBxZgSzeGYFiVNff+/bDP
8PlzfaDjg5G9QY9Emid+ITVOaKWEfgbhkn4mJd72TSEFdyR5Pec4LLYY1jKa
CW/RsiJ3CMpsC7Afm826jnLYgF/3wUfW1qTwI5cv5c1skXcWCd7CPmKa9zYK
RnJvM04Svs1QkozYM0NYZEfkeFtQbWMoHMDAuu34Pd1wN/BUVUU1el/3sFgc
0IMSeA31n14XtVRvje+SAvVCbkzl+M2cbyJfu7oRyuAzYxhWGk+vnTbUTxn1
FghohmTCygDdZZP2r0659lm5GwZWDKjyZN71qqhBiD1459aQNtzMBRPUWGox
HSoT0EgakyLwJ606h76mJqN+CTkK+0Jbd0y67hSB+hCl6FX8Vq/KLfLXLbGD
DvXzQlrzB1Hm3CV/6B92XSGmOmoHdXO6RhDNud8B6uZxO5vp3H6/jr6N3YX7
/vztL+c7r925P8/f7Mcn5wfn1+V//3jy/fPFYtGvfCjODPZug837QSXzmWCj
vyriRB6XtI5xzTw9yupy8l61FRFfZ/+m+rs4/588gevrn9cHh/ne6Y9NvrsX
+xffXj/dObz+7vXb/R9Pq030+7Xfh3l5dBcVHHzdGdwl83si/b91PBI6/gNn
8VVatWNtPKwzG9+1TVzfK8l7SHxAgk3l6luq37HCSv0efgNA7VZHL0HbvOPd
KqfiZtAe/9zPFBC2kAAJpkrVKNvwL776bYgwAzgOy9QvT7kfHVrU8nOvrlwX
FmoqNahhU3ubLheqT62EsENfEbkCYLBCtEbEDImAyGTmtn9dSpB/CXFcQHAk
solcSurgN1TDqEqZIHEV1d5FU5dNeMcy/DGJdwTQigZlRdt0wqLT4lJ1MhIY
CKzcfWkhIgzeSbQvHjbUDli71bpTRIeXkSEW6tKG3+Vwqdo9w9Y7M3n7JyaN
LMm8xYZLJM35nemGN2KE+xbtz6ccLaE2ra28ChUsUGNtpduRQfmUaZcV0uFd
Ivy7nriwVUx8UR3MlVh4NUizCfJ6nA6QKlmtSmHXKb92Oz9+ffyAMY5++ZEk
0tSULjq/obd68oAlkqv5CVhbOU9vy5T6tZ1C7yYG/37Vp4P3k6MHl6O2FQ2p
X4/mD/773PhDD0BF3wsBYcsBXBz+nOdXPVYE88JufBxf58UG7r+S95RXQCDX
vlUN/fKSOmv0gx7+GSP/4LH3q6tj/e74xzPZdjxH2rfWVVDijbMb6fnmsP+F
+n+7NZ7kcyoAAA==

-->

</rfc>
