<?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.11 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-eddy-sconepro-api-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="SCONE-PRO APIs">APIs To Expose SCONE-PRO Metadata to Applications</title>
    <seriesInfo name="Internet-Draft" value="draft-eddy-sconepro-api-00"/>
    <author initials="W." surname="Eddy" fullname="Wesley Eddy">
      <organization>Meta</organization>
      <address>
        <email>wesleyeddy@meta.com</email>
      </address>
    </author>
    <author initials="A." surname="Tiwari" fullname="Abhishek Tiwari">
      <organization>Meta</organization>
      <address>
        <email>atiwari@meta.com</email>
      </address>
    </author>
    <author initials="A." surname="Frindell" fullname="Alan Frindell">
      <organization>Meta</organization>
      <address>
        <email>afrind@meta.com</email>
      </address>
    </author>
    <date year="2024" month="April" day="29"/>
    <area>Web and Internet Transport</area>
    <workgroup>SCONEPRO</workgroup>
    <keyword>Adaptive Bit-Rate Video</keyword>
    <abstract>
      <?line 57?>

<t>This document describes API considerations to provide applications with
SCONE-PRO metadata, notifying them of network-supplied information about
acceptable network flow rates.  Since this information is signalled from the
network within the stack below the application, it needs to be made accessible
to applications in order for them to pick proper video rates, or to otherwise
confine the application behavior within network-defined limits.</t>
    </abstract>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The general problem statement for SCONE-PRO is described in the video optimization requirements document <xref target="I-D.joras-sadcdn-video-optimization-requirements"/>,
including the shaping or throttling that Communication Service
Providers (CSPs) perform.  While this problem currently has especially large
impact on a few large content providers, solutions for SCONE-PRO are generally
applicable to any applications that use QUIC <xref target="RFC9000"/> and are subject to
throttling within CSP networks.</t>
      <t>The purpose of this document is only to demonstrate that this is achievable
without prescribing a specific solution.  It is envisioned that one or more
specific API solutions will be defined either through IETF or W3C.  At least in
its current form, this document is not intended to be published as an RFC.</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="application-stack-designs">
      <name>Application Stack Designs</name>
      <t>There are a variety of different application stack designs that are relevant.
The assumption for SCONE-PRO in general is that QUIC is used.</t>
      <t>Applications could either use QUIC directly through a linked software library,
or applications could be running within a browser, using QUIC indirectly via
browser APIs.</t>
      <t>The SCONE-PRO network rate-limiting information could be discovered by an
end-system in several different ways; potential network signaling approaches
are described in other documents (e.g.
<xref target="I-D.ihlar-masque-sconepro-mediabitrate"/>,
<xref target="I-D.brw-sconepro-rate-policy-discovery"/>, or others).  General classes of
information signaling include:</t>
      <ol spacing="normal" type="1"><li>
          <t>Via the QUIC stack, with the information inserted by an on-path SCONE-PRO network element.</t>
        </li>
        <li>
          <t>Via other IP or transport methods below QUIC (e.g. IP extension headers, UDP options, etc.) that might be inserted on the path.</t>
        </li>
        <li>
          <t>Via the OS, with the information coming in network advertisements separate from the transport connection (e.g. via Router Advertisements or DHCP).</t>
        </li>
      </ol>
      <t>These methods are not necessarily mutually exclusive.  For instance, a DHCP
option could indicate that certain classes of applications are throttled at a
particular rate, while a SCONE-PRO on-path mechanism could also provide more
explicit per-connection indications of when throttling is active as well.</t>
      <table>
        <thead>
          <tr>
            <th align="left">SCONE-PRO Solution Type</th>
            <th align="left">Information Visibility</th>
            <th align="left">API Definitions</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">QUIC-based</td>
            <td align="left">QUIC library or web browser</td>
            <td align="left">Specific to each QUIC-library, or browser APIs.</td>
          </tr>
          <tr>
            <td align="left">IP or UDP-based</td>
            <td align="left">OS and possibly QUIC library</td>
            <td align="left">Socket API extension may be needed, e.g. to expose via socket options or other means.  For mobile apps using native stacks, OS extensions may be needed.</td>
          </tr>
          <tr>
            <td align="left">Other approaches that are not on-path or per-connection</td>
            <td align="left">OS</td>
            <td align="left">Per-OS and/or socket API extensions</td>
          </tr>
        </tbody>
      </table>
      <t>For solution types that are not QUIC-based, the QUIC implementation could use
socket or OS API extensions in order to get the data and convey it up to the
applications via its own API.  However, QUIC library APIs are not standardized;
they differ between common QUIC libraries, and so this document only suggests
in a general sense of how the QUIC stack should convey this information to
applications.</t>
    </section>
    <section anchor="potential-quic-api-inclusion">
      <name>Potential QUIC API Inclusion</name>
      <t>While there are no standard QUIC APIs, and there are multiple different styles
in use, many QUIC implementations include objects in the API that represent the
QUIC connections directly, and allow setting callbacks for connection-related
events, or allow direct querying of connection state.  SCONE-PRO metadata could
either be supported as a type of callback event, triggered when the metadata is
received, or it could be included within other connection state in a polled or
interrogated data structure.</t>
    </section>
    <section anchor="potential-browser-api-extensions">
      <name>Potential Browser API Extensions</name>
      <t>For browser applications, there are multiple different browser APIs that might be used; notably including:</t>
      <ul spacing="normal">
        <li>
          <t>WebTransport using QUIC</t>
        </li>
        <li>
          <t>Any Javascript HTTP requests that directly or indirectly use HTTP/3.</t>
        </li>
      </ul>
      <t>In either of these cases, the corresponding W3C API definitions are the proper
place for API extensions.</t>
      <section anchor="potential-webtrans-api-extension">
        <name>Potential WebTrans API Extension</name>
        <t>WebTransport (WEBTRANS) is anticipated to often be used by SCONE-PRO's
targeted types of applications in the future, such as browser-based adaptive
streaming.  The IETF WEBTRANS working group is liasing with W3C as the IETF
defines the protocol specification, whereas the W3C defines the API to use it.
This case is similar to the IETF RTCWEB and W3C WebRTC WG coordination in the
past.  The same model of collaboration between IETF and W3C should work for
SCONE-PRO metadata, and the information provided could be discussed with the
WEBTRANS WG in the IETF and notified to the W3C later, either through common
participation and/or formal liason statement.</t>
        <t>The existing WebTrans API definition from W3C includes a "getStats()" method,
that is defned in order to asynchronously gather and report statistics for a
WebTransport underlying connection.  It returns a WebTransportConnectionStats
object that is defined as a dictionary, including a number of items such as:</t>
        <ul spacing="normal">
          <li>
            <t>bytesSent</t>
          </li>
          <li>
            <t>packetsSent</t>
          </li>
          <li>
            <t>bytesLost</t>
          </li>
          <li>
            <t>packetsLost</t>
          </li>
          <li>
            <t>bytesReceived</t>
          </li>
          <li>
            <t>packetsReceived</t>
          </li>
          <li>
            <t>smoothedRtt</t>
          </li>
          <li>
            <t>rttVariation</t>
          </li>
          <li>
            <t>minRtt</t>
          </li>
          <li>
            <t>WebTransportDatagramStats datagrams</t>
          </li>
          <li>
            <t>estimatedSendRate</t>
          </li>
        </ul>
        <t>The estimatedSendRate is an unsigned long long, in bits per second, calculated
by the congestion control algorithm in the user agent.  This would be in the
"upstream" direction to a CSP, though, rather than the "downstream" from a CSP,
so is not useful to a client application in receiving indication of a downstream
throttling rate from the network.</t>
        <t>Since other measurements are already included and the
WebTransportConnectionStats is a dictionary, it seems natural to extend it to
include additional optional fields, such as an allowed media rate, or other
types of fields providing the application information that the underlying host
or stack have discovered about the presence of throttling or explicit signaling
of allowed media rate on a path.</t>
        <t>Such extensions might be including at a "<bcp14>MAY</bcp14>" level of conformance statement
(rather than "<bcp14>SHALL</bcp14>" as used by all of the currently-defined information
elements), as the allowed media rate will not be universally present or even
useful for all WebTransport applications.  Alternatively, it could be set to a
"null" value similar to how the estimatedSendRate is sent when it is unknown by
the user agent.</t>
      </section>
      <section anchor="content-of-metadata">
        <name>Content of Metadata</name>
        <t>Existing collections of metadata could be appended to the
WebTransportConnectionStats, such as (for one specific example), those defined
by the CTA-5004 specification <xref target="CTA-5004"/> and CTA-5006 specification <xref target="CTA-5006"/>, which standardize
JSON objects conveyed by streaming media clients and servers respectively.
These CTA specifications are also expected to be usable by intermediaries.</t>
        <t>Another example that could be built upon is the proposed flow metadata
identifying the DownlinkBitrate <xref target="I-D.rwbr-sconepro-flow-metadata"/>.</t>
        <t>Several of the use cases defined by CTA-5006 are relevant, including:</t>
        <ul spacing="normal">
          <li>
            <t>Provide an estimate of the throughput available between an edge server and a player, such that the player can use that information to enrich its decision about which bitrate to select, especially the initial bitrate decision made at the start of playback.</t>
          </li>
          <li>
            <t>Provide a means for a CDN to instruct all connected players to limit their upper bitrate, in response to an ISP request to reduce congestion on the last-mile network.</t>
          </li>
          <li>
            <t>Allow a CDN to signal to a player a suggested playback bitrate in order to optimize collective QoE.</t>
          </li>
        </ul>
        <t>The "CDN" notion could be replaced with an ISP's on-path throttling device.</t>
        <t>As a specific example of metadata for SCONE-PRO, CTA-5004 allows clients to indicate multiple types of rate metadata that are related to adaptive coded rate selection in the face of throttling.  Which of these options are used depends upon the client, but could be one of:</t>
        <table>
          <thead>
            <tr>
              <th align="left">CTA Data</th>
              <th align="left">Units</th>
              <th align="left">CTA Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Measured Throughput</td>
              <td align="left">Integer kilobits per second (kbps)</td>
              <td align="left">The throughput between client and server, as measured by the client and <bcp14>MUST</bcp14> be rounded to the nearest 100 kbps.  This value, however derived, <bcp14>SHOULD</bcp14> be the value that the client is using to make its next Adaptive Bitrate switching decision.  If the client is connected to multiple servers concurrently, it must take care to report only the throughput measured against the receiving server.  If the client has multiple concurrent connections to the server, then the intent is that this value communicates the aggregate throughput the client sees across all those connections.</td>
            </tr>
            <tr>
              <td align="left">Requested maximum throughput</td>
              <td align="left">Integer kbps</td>
              <td align="left">The requested maximum throughput that the client considers sufficient for delivery of the asset.  Values <bcp14>MUST</bcp14> be rounded to the nearest 100 kbps. ... Note: This can benefit clients by preventing buffer saturation through over-delivery ...</td>
            </tr>
          </tbody>
        </table>
        <t>The CTA-5006 also allows the server to convey a maximum suggested bitrate.</t>
        <table>
          <thead>
            <tr>
              <th align="left">CTA Data</th>
              <th align="left">Units</th>
              <th align="left">CTA Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Max suggested bitrate</td>
              <td align="left">Integer kbps</td>
              <td align="left">The maximum bitrate value that the player <bcp14>SHOULD</bcp14> play in its Adaptive Bit Rate (ABR) ladder.  If the player is playing a bitrate higher than this value, it <bcp14>SHOULD</bcp14> immediately switch to a bitrate lower than or equal to this value.</td>
            </tr>
          </tbody>
        </table>
        <t>There are two high-level approaches that might be viable in reusing CTA data types:</t>
        <ol spacing="normal" type="1"><li>
            <t>Append entire CTA-defined objects as optional components of the WebTransportConnectionStats, e.g. as a "cta5005" object that would be able to fully convey all of the CTA-defined metadata.</t>
          </li>
          <li>
            <t>Append only selected fields from the CTA specs, reusing the definitions, but only including specific items of interest for SCONE-PRO's problem statement, and leaving other CTA-defined metadata to be conveyed through the existing CTA-defined methods.</t>
          </li>
        </ol>
        <t>The API can be agnostic to how the data is conveyed between network or on-path
SCONE-PRO devices and either clients or servers, but the same API can convey
the information to the applications, regardless of how the network signaling
works.  The semantics of the maxium suggested bitrate from the CTA-5006 match
the needed semantics most closely, though since it is for an ABR ladder, it
should be described carefully to apply the proper bitrate definition that the
throttler is using for "on the wire" packets (including header overhead, etc.)
versus the pure media payload stream bitrate.</t>
      </section>
    </section>
    <section anchor="potential-moq-api-extension">
      <name>Potential MoQ API Extension</name>
      <t>While there is no standard MoQ API, an MoQ session is currently scoped either
to a QUIC connection or a WebTransport session, so it should not be difficult
to expose information learned by either transport stack to MoQ applications.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>General SCONE-PRO security considerations are discussed in the other documents
covering the problem statement <xref target="I-D.joras-sadcdn-video-optimization-requirements"/> and specific network-to-host signaling methods.
This document only exposes the SCONE-PRO metadata supplied by the network to
applications.  There are no additional security considerations raised by this.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </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.brw-sconepro-rate-policy-discovery">
          <front>
            <title>Discovery of Network Rate-Limit Policies (NRLPs)</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Dan Wing" initials="D." surname="Wing">
              <organization>Cloud Software Group Holdings, Inc.</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Sridharan Rajagopalan" initials="S." surname="Rajagopalan">
              <organization>Cloud Software Group Holdings, Inc.</organization>
            </author>
            <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
              <organization>Verizon Inc</organization>
            </author>
            <date day="7" month="April" year="2024"/>
            <abstract>
              <t>   Traffic exchanged over a network attachment may be subject to rate-
   limit policies.  These policies may be intentional policies (e.g.,
   enforced as part of the activation of the network attachment and
   typically agreed upon service subscription) or be reactive policies
   (e.g., enforced temporarily to manage an overload or during a DDoS
   attack mitigation).

   Networks already support mechanisms to advertize a set of network
   properties to hosts using Neighbor Discovery options.  Examples of
   such properties are link MTU (RFC 4861) and PREFIX64 (RFC 8781).
   This document complements these tools and specifies a Neighbor
   Discovery option to be used in Router Advertisements (RAs) to
   communicate these policies to hosts.  For address family parity, a
   new DHCP option is also defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-brw-sconepro-rate-policy-discovery-01"/>
        </reference>
        <reference anchor="I-D.rwbr-sconepro-flow-metadata">
          <front>
            <title>Flow Metadata for Collaborative Host/Network Signaling</title>
            <author fullname="Sridharan Rajagopalan" initials="S." surname="Rajagopalan">
              <organization>Cloud Software Group Holdings, Inc.</organization>
            </author>
            <author fullname="Dan Wing" initials="D." surname="Wing">
              <organization>Cloud Software Group Holdings, Inc.</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="26" month="April" year="2024"/>
            <abstract>
              <t>   This document defines per-flow and per-packet metadata for both
   network-to-host and host-to-network signaling in Concise Data
   Definition Language (CDDL) which expresses both CBOR and JSON.  The
   common metadata definition allows interworking between signaling
   protocols with high fidelity.  The metadata is also self- describing
   to improve interpretation by network elements and endpoints while
   reducing the need for version negotiation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rwbr-sconepro-flow-metadata-01"/>
        </reference>
        <reference anchor="I-D.ihlar-masque-sconepro-mediabitrate">
          <front>
            <title>MASQUE extension for signaling media bitrate</title>
            <author fullname="Marcus Ihlar" initials="M." surname="Ihlar">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="9" month="February" year="2024"/>
            <abstract>
              <t>   This document specifies a new Capsule (RFC9297) that can be used with
   CONNECT-UDP (RFC9298), CONNECT-IP (RFC9484), or other future CONNECT
   extensions to signal the available bitrate for media traffic that is
   proxied through an HTTP server.  This information can be used by a
   media application to regulate its media bitrate in accordance with a
   network policy, as an alternative to in-network traffic shaping.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ihlar-masque-sconepro-mediabitrate-00"/>
        </reference>
        <reference anchor="I-D.joras-sadcdn-video-optimization-requirements">
          <front>
            <title>SADCDN Video Optimization Requirements</title>
            <author fullname="Matt Joras" initials="M." surname="Joras">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <author fullname="Anoop Tomar" initials="A." surname="Tomar">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <author fullname="Abhishek Tiwari" initials="A." surname="Tiwari">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="5" month="January" year="2024"/>
            <abstract>
              <t>   These are the requirements for the "Video Optimization" use-case for
   the SADCDN topic, which broadly speaking seeks to optimize video
   playback experience in mobile networks by cooperative communication
   between video content providers and the providers of network services
   to end users.

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/mjoras/sadcdn-video-optimization-requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-joras-sadcdn-video-optimization-requirements-00"/>
        </reference>
        <reference anchor="CTA-5004">
          <front>
            <title>Web Application Video Ecosystem - Common Media Client Data</title>
            <author initials="" surname="CTA" fullname="Consumer Technology Association">
              <organization/>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="CTA-5006">
          <front>
            <title>Common Media Server Data</title>
            <author initials="" surname="CTA" fullname="Consumer Technology Association">
              <organization/>
            </author>
            <date year="2022" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 277?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document represents collaboration and inputs from others, including:</t>
      <ul spacing="normal">
        <li>
          <t>Anoop Tomar</t>
        </li>
        <li>
          <t>Matt Joras</t>
        </li>
        <li>
          <t>Brian Tan</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7VabXMct5H+Pr8Ct/fBYmqXoWQnF9O55CiSiuiSRJqkrEql
UinsDHYX4bx5MMPVRtR/yW+5X3ZPdwMYzJKW71J15bLNmcUAjX55+ukGFotF
1tu+NMdqdnJ14dRto84/to0z6ub08t354ur6Ur01vS50r1XfqJO2LW2ue9vU
bpbp5bIz9/h2HEyzzLKiyWtdYdai06t+YYpit3B5U5u2axa6tYujowyzmHXT
7Y6VrVdNltm2O1Z9N7j+xdHRt0cvMt0Zfaw+mKXSdaEu6t50tenVbadr1zZd
n22b7m7dNUN7LNJi/ezO7PC6OFa3m67p+9LW6/HdSaHb3t4b9dL2i2usr360
hcHarscSf9MlJDxWO+MyV+mu/9tPQ9Mbd6zqJmvtsfpL3+Rz5bB0Z1YOf+0q
+uOvWaaHftN0x5lSC/yrsCN89eFQnWPj/EK08cG40uzGt0231rX9B6vzmPXM
r02lbXmstjyadPdfFX46zJtqusDJobq1W93ZZImT5ca6jblLf/nyMnhNI59a
I+c1XnW2LkxZpquUup6+/4U1VjR2XCKrm67SZArS2fWr02+Pjo6O4QPwhOSH
i8XZ4bLbjq7TwWaLtoEL7haFxet7AwfyI7vtshuHrspmu6i864YhdlPqblFp
99NgxqGVKaxe2p5mDyP/3nTaLZwu8qJe3JOXLBr4TuW3uOjMT4PtTGXq3kFw
pU5vTxa/OTr65pj37YOKnDcJGXE3dZ43bud6U6mFOm2qCj+8JRHUaWkxnzrT
XnujW0WbYxn/KJaYnSISh8p06tbkm7opm/VOnTjX5JaXnPHognambkyLRZcY
++LoxVEi9G8nQk9EujEddPz/JtI7WDBI9CLLFouF0ksHS+R9lt3ClRWgZCAt
q8K4vLNL4whjFGznoMxOoIigCZYkOymdQJTa2n6TjegU/GGOkO7tagd0UP0G
hmhWCthCgLJwA01gChWdEcrQy2boM53nUKFeliaMVuRmihzHHSp1g5AxmBBi
px/j0dl1rcsSs666pqI1szADiWhreqUAQ/mdWhqak56TrcyV7bGoKXivS6Mq
TXuFQM5ZCJTh7WTnmBKYB81CDtkj6chifiiqxXt2ahF9rmhMoxqM67bWmQzq
Xdna7EuBhTf63mK0lzoorTA0vFAlIqR3h2LJyhYFJMv+ncC7a4ohpznIrkat
TQ3jlSQMpK9o6z1HE8s7Wow8wBueLMICieRpOKo0HEeX+fTp/xrKnz/PAUJ5
ORTeNZTbIF/hb9ZiSCn4U/ccKEMdVEORYnOTXYkfdk49O725cgcKyiZfgH98
2NjS+0fYdz50HRYud2qjnTKuNYiSEo8AqrXJbNUiFBR5oFqZrbwl5+9pf21Y
irJSOYjhp/pDEg26LneZNyU5MPlLvZv6DO9qQPL/4f3FKbTngfnzZ87ANJUb
ln83EKhvskQb3hmw3eAQ5AJk5nbomE0gvvpJNOPvpsY2IUZhADeO0VckkABy
8O6NNfckbUYrIAKxY3EGWlUr1tbK5nH30PEFz23qe+vwAk7DU+IvsmDVdCaL
XxGOjHrb2rKkwAqubCxFAxt9WG/UxfntK5riw9enWOWkV6XRDmvVGRw+mJGU
X80fbxVog5GwWUECcfy2w7KkTA29Yqc1JcFDChWA5z2+YpFI62ckjuVnUSnY
jCI649Ts7fub29lc/q/eXfLf1+cw3vX5Gf198/rkzZv4R+ZH3Ly+fP/mbPxr
/PL08u3b83dn8jHeqsmrbPb25M/4haSaXV7dXly+O3kzk6BM90t+InukLXcw
Wc+7zCaB/PL06r//+fwbeNm/Yesvnj//Fm4mD797/h/f4GG7MbWsxp4ij7AJ
u7HRHc0Cr1Y5ArTXJYIAmnSbZlsrGM5Am7/6C2nmr8fq98u8ff7NH/wL2vDk
ZdDZ5CXr7PGbRx+LEp949cQyUZuT93uansp78ufJc9B78vL3fywJqhfPf/fH
P2TkQinjuOGUcmYoAYkDwTpkIa3uwfpMv6PYLOxqZdiBU7CXdFTItxJH9GVn
SkRl3R+yO2qHXN/y+D3kriPIW/81wwoeADEFzJMWE8C0oYxBFzGoADDnhI4h
DDVSTH0HF3LNqt+SOKVddrrbzTOsrh/PCDfshrpOYEqrZddsnenmWIfei1h1
XOve6swP4XrGY9m4tZC6mY5yyqNp0pQf1w4sFRIvgbZ1BgxYePYHWZy5Zw2N
BtjqnftOtQ0BPDJBXEsYBONeC9wHNqJMof1PooozeAxFpCBzuD7MJA/+Mvml
7Cdjf5l1YyzBIS/oDgCJf/LGzku4BFhas8pSjYzyS34F086eH4IRa06zbAN2
uDnbiV9OSFQNc/RBjYCERasx7LFR4J20dxjthUwvOrm44hQeikeigpsGICps
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
qcbl+Ek0AAA=

-->

</rfc>
