<?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-01" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="SCONEPRO APIs">APIs To Expose SCONEPRO Metadata to Applications</title>
    <seriesInfo name="Internet-Draft" value="draft-eddy-sconepro-api-01"/>
    <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="May" day="03"/>
    <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
SCONEPRO 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 SCONEPRO 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 SCONEPRO 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 SCONEPRO 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 SCONEPRO 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 SCONEPRO 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 SCONEPRO 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">SCONEPRO 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.  SCONEPRO 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 SCONEPRO'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
SCONEPRO 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 SCONEPRO, 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 SCONEPRO'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
SCONEPRO 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 SCONEPRO 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 SCONEPRO 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>Bryan Tan</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7VabXMct5H+jl+B2/tgKbXLULKTi+lcchRJxXRZIk3SVqVS
qRR2BruLcF7WgxmuNqb+S37L/bJ7uhvAYJayfJeqK5dtziwGaPTL0083sFgs
VO/6yp7o2en1pdd3rb54v2291bdnV28vrm+u9Bvbm9L0RvetPt1uK1eY3rWN
nymzXHb2AZ+msTTHTJVt0Zgac5adWfULW5b7hS/axm67dmG2bnH8QmESu267
/Yl2zapVym27E913g+9fHh9/efxSmc6aE/3OLrVpSn3Z9LZrbK/vOtP4bdv1
atd29+uuHbYnSVZ1b/d4XZ7ou03X9n3lmvX47rQ02949WP3K9YsbrK9/cKXF
2r7HEn8zFSQ80Xvrla9N1//tx6HtrT/RTau27kT/pW+LufZYurMrj7/2Nf3x
V6XM0G/a7kRpvcC/GjvCV++O9AU2zi9EG++sr+x+fNt2a9O4f7A2T1jN/NrW
xlUnesejSXf/VeOno6KtpwucHuk7tzOdy5Y4XW6c39j7/JdPL4PXNPJjaxS8
xuvONaWtqnyVyjTT97+wxorGjkuopu1qQ6Ygnd28Pvvy+Pj4BD4AT8h+uFyc
Hy273eg6HWy22LbwwP2idHj9YOFAYWS3W3bj0FXV7hZ18Nw4xG0q0y1q438c
7Di0tqUzS9fT7HHk39vO+IU3ZVE2iwfykkUL36nDFhed/XFwna1t03sIrvXZ
3eniN8fHX5zwvkNIkfNmESPupi+K1u99b2u90GdtXeOHNySCPqsc5tPnJmhv
dKtkcywTHsUSszME4lDbTt/ZYtO0Vbve61Pv28LxkjMeXdLO9K3dYtElxr48
fnmcCf3bidATkW5tBx3/v4n0FhaMEr1UarFYaLP0sETRK3UHV9aAkoG0rEvr
i84trSeM0bCdhzI7QSJCJliS7KRNhlB65/qNSuAU3WGOiO7dag9w0P0GdmhX
GtBCeLLwA31vS518Ebowy3bolSkKaNAsKxtHa/IyTX7jj7S+RcRYTAip84/x
6N26MVWFWVddW9OaKs5AErqGXmmgUHGvl5bmpOdsJ3PteixqS97q0ura0FYh
kPcOAim8nWwcUwLyoFjIIXskFTnMDz1t8Z59WkSfaxrT6hbjup3zVkG7K9fY
Qymw8MY8OIwOUkellZaGl7pCgPT+SAxZu7KEZOrfCbu7thwKmoPMavXaNrBd
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
jduaaheRl2/32buLV3c3p29vn3PuxJeF27LhqJ+0wkdRe0TeokN+5lVPrQwe
x3B7SA9CdK0GsvocforkBxcNFgqpzYR2voJ/WENMCk5PbJ3L9SgZ1cv3pBs+
KiAxK2d8rAlYY8bzavSZkg6Ajxrr26KtUq8h9OJ25EXhI/o+/4YBoWULOq6S
sCCZS9qAtSN6I9guYt7cnUFSRgWaCtrFG/3uTzAsMoVrIgVmWNka34c9elMT
1yltJdFfVWbZdrFNJ8DOC8SZAwRL2xJh9pGuaEDLCTQHWlVO65rB+xDWLFfS
NeQOpktrc6vViUdEhRGsIWkddFkkDwUeSG7ErVfJ3SxQxaaLuBG4PinDvnee
oXTitGMQCH2mlQMkEdrN4ICokHv/7PksEOK54qjktuOqCXVVzNfG75sCojbt
4BGjwCfmJtgisJ+CgaQiOQoBcjMNlaHBPBXD9YiA0rPqLNycInWCJWdpFEup
2tB9GyXkVhUjN1gtDWRaOHYwjW4G7q7DQxwU5mMgMW4t9731t1Ai/t4a4izx
iX/5tvXZL+GJf7kJeD/+mr3xdUswX970NL7r+x9AJ9iUeESMyvt8n3S2sO5M
zbtkwKcnj1HASVcTmkCuks7rgrUPXwv2QMNUaVIbusXm6T+kDL0kykQtb2+h
eGQppDcqMyizLvcBRBsiNMLjqFldIdGu2w7+WUeHHjibrMnpKAKx5G7McxwF
s2ErSDQLuC7UBmY4u70mtCYvn1NxI15vZOJZCT4XP2RHlQ9AJGP7EGuvhkrm
KuSQKO/VOGqBkwWkmIwlDqOqHmfPu7bTojJUn4gmOcNIVN4Psa3ObaMK05T7
Ma8HwFCfcFu2zdQ/ESmWnBHYNhBx5MKC+qP0E6hgpFqmLDl6MUTKDPwBJKlK
P2YE0wglgjDczgilYyxHVEov8mGAs9jenyox46PSibZ50G4oAqhQYEK7MQ+T
Dg+fEIWkQTSwCG3vpHB8mYrS1BBRZKEn4kvDP7QRbmmjeZE0th1SmPeEZtSf
1RUYW0gIsh0SJKGlepb7XugQkxZjgqaOqpCM8WgiHe5kClKh1eKfz2Py/Mg2
uKlO7ksUoAE+dJ77CpEok0pAMFXw7pXQ2ymfmpQFWp9WdAuAi8hKXCmlJU/l
FAJEzZqhqmb6wVSDzVNuLEs+Ch8sELNbx+g6NPcNlVnLvToIfqZJZ+EMBsqK
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
Dzc0AAA=

-->

</rfc>
