<?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.6.14 (Ruby 3.1.2) -->
<?rfc docindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pardue-masque-dgram-priority-02" category="exp" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="HTTP Datagram Prioritization">HTTP Datagrams, UDP Proxying, and Extensible Prioritization</title>
    <seriesInfo name="Internet-Draft" value="draft-pardue-masque-dgram-priority-02"/>
    <author initials="L." surname="Pardue" fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucaspardue.24.7@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="July" day="25"/>
    <area>Transport</area>
    <workgroup>MASQUE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Application protocols using the QUIC transport protocol rely on streams, and
optionally the unreliable datagram extension, to carry application data. Streams
and datagrams can be multiplexed in single connections but QUIC does not define
an interoperable prioritization scheme or signaling mechanism. The HTTP
Extensible Prioritization scheme describes an application-level scheme for the
prioritization of streams in HTTP/2 and HTTP/3. This document defines how
Extensible Priorities can be augmented to apply to the multiplexing of HTTP
datagram flows with other flows or streams.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <t><em>RFC EDITOR: please remove this section before publication</em></t>
      <t>Source code and issues list for this draft can be found at
<eref target="https://github.com/LPardue/draft-pardue-masque-dgram-priority">https://github.com/LPardue/draft-pardue-masque-dgram-priority</eref>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Application protocols using the QUIC transport protocol <xref target="QUIC"/> rely
on streams, and optionally the unreliable datagram extension
<xref target="QUIC-DATAGRAM"/>, to carry application data. Streams and datagrams can
be multiplexed in single connections but QUIC does not define an interoperable
prioritization scheme or signaling mechanism. The HTTP Extensible Prioritization
scheme <xref target="PRIORITY"/> describes an application-level scheme for the
prioritization of streams in HTTP/2 and HTTP/3. This document defines how
Extensible Priorities can be applied to the multiplexing of HTTP datagram
<xref target="HTTP-DATAGRAM"/> flows with other flows or
streams.</t>
      <t>The Extensible Priorities scheme for HTTP describes how clients can send
priority signals related to requests in order to suggest how a server allocates
resources to serving responses. When the protocol is HTTP/2, responses are
carried on streams. When the protocol is HTTP/3, responses are carries on QUIC
streams.</t>
      <t>While QUIC streams support multiplexing natively via use of a stream identifier,
the unreliable datagram extension does not provide any such multiplexing
identifier.</t>
      <t>HTTP datagrams (<xref target="HTTP-DATAGRAM"/>) defines how multiplexed, potentially
unreliable datagrams can be sent inside an HTTP connection. All datagrams are
always associated with a request stream. In HTTP/3, HTTP datagrams can map
directly to QUIC datagrams, in which case they carry a Quarter Stream ID - an
encoding of the request stream ID - that is used to demultiplex at the receiver;
see <xref section="3.1" sectionFormat="of" target="HTTP-DATAGRAM"/>. <xref target="HTTP-DATAGRAM"/> also defines the
DATAGRAM capsule, which can be used for reliable delivery over all versions of
HTTP; see <xref section="3.5" sectionFormat="of" target="HTTP-DATAGRAM"/>. In all cases, the prioritization of
datagrams is noted as unspecified and delegated to future extensions.</t>
      <t>This document describes how the Extensible Priorities scheme can be augmented to
also apply to HTTP datagrams that are multiplexed with other flows or streams.
It enhances the Priority signals sent by clients, with a new datagram-urgency
(<tt>du</tt>) parameter (<xref target="datagram-urgency"/>) and explains how this input is to be
considered in server scheduling decisions for HTTP datagrams mapped to QUIC
datagrams; see <xref target="server-scheduling"/>.</t>
      <t>When HTTP datagrams are used for proxying UDP, additional use cases extending
beyond UDP data transfer are supported by the use of context IDs; see <xref section="4" sectionFormat="of" target="HTTP-UDP-PROXY"/>. The CONTEXT_PRIORITY capsule
type can be used to signal the datagram-priority of individual contexts; see
<xref target="capsule"/>.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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>
        <t>The term Integer is imported from <xref target="STRUCTURED-FIELDS"/>.</t>
      </section>
    </section>
    <section anchor="signalling-datagram-priority">
      <name>Signalling Datagram Priority</name>
      <t>The Extensible Prioritization scheme <xref target="PRIORITY"/> describes how clients can
send priority signals related to requests. Signals are a set
of parameters, encoded using <xref target="STRUCTURED-FIELDS"/>.</t>
      <t><xref target="PRIORITY"/> defines the urgency and incremental parameters and provides
guidance about how implementers can act on these parameters, in combination
with other inputs, to make resource allocation and scheduling choices. Urgency
communicates the client-view of request importance, and incremental communicates
how the client intends to process response data as it arrives. Parameters are
communicated in HTTP headers or version-specific frames. A client omitting the
urgency or incremental parameters can be interpreted by the server as a signal
to apply default priorities. The core scheme is extensible, new parameters can
be defined to augment the base ones.</t>
      <t>This specification defines the datagram-urgency (<tt>du</tt>) extension parameter that
operates in addition to the base urgency. There is no extension to the base
incremental behavior; individual datagrams, even if belonging to the same
identifier, are messages that are expected to be processed individually as they
arrive.</t>
      <section anchor="datagram-urgency">
        <name>Datagram Urgency</name>
        <t>The datagram-urgency (<tt>du</tt>) parameter is Integer (see <xref section="3.3.1" sectionFormat="of" target="STRUCTURED-FIELDS"/>), between 0 and 7, in descending order of priority. This
range matches the base urgency (<tt>u</tt>) parameter range; see Section 4.1 of
<xref target="PRIORITY"/>. However, there is no default value.</t>
        <t>This parameter indicates the sender's recommendation, based on the expectation
that the server would transmit HTTP datagrams in the order of their
datagram-urgency values if possible. The smaller the value, the higher the
precedence. Omitting the datagram-urgency parameter is a signal to apply the
value of the urgency parameter.</t>
        <t>The following example shows a request for a CSS file with the urgency set to
<tt>0</tt>, any associated datagrams have the lower datagram-urgency of <tt>2</tt>:</t>
        <sourcecode type="example"><![CDATA[
:method = GET
:scheme = https
:authority = example.net
:path = /style.css
priority = u=0, du=2
]]></sourcecode>
        <t>Note that when the urgency parameter is omitted, it's default value of <tt>3</tt> is
applied. In the following example, the priority field is omitted entirely,
invoking the default behaviour of urgency and datagram-urgency, causing them
to both have the implicit value <tt>3</tt>:</t>
        <sourcecode type="example"><![CDATA[
:method = GET
:scheme = https
:authority = example.net
:path = /style.css
]]></sourcecode>
        <t>Endpoints MUST NOT treat reception of the datagram-urgency parameter as an
error, even if HTTP datagram support is not enabled.</t>
        <t>The datagram-urgency parameter applies only to HTTP datagrams mapped to QUIC
datagrams. Datagram capsules are sent on streams, so the base urgency parameter
applies to them.</t>
      </section>
    </section>
    <section anchor="reprioritization">
      <name>Reprioritization</name>
      <t>Reprioritization behaves similarly to existing mechanisms defined in <xref section="6" sectionFormat="of" target="PRIORITY"/>. CONTEXT_PRIORITY frames can be sent by clients to provide updated
priority signals after the initial request has been sent.</t>
    </section>
    <section anchor="prioritization-when-proxying-udp-in-http">
      <name>Prioritization when Proxying UDP in HTTP</name>
      <t><xref target="HTTP-UDP-PROXY"/> describes how to proxy UDP using HTTP datagrams. Client make
UDP proxying requests using Extended CONNECT, which initiates a UDP tunnel. HTTP
datagrams related to this stream correspond to the UDP tunnel by default. In
order support extension use cases, <xref section="4" sectionFormat="of" target="HTTP-UDP-PROXY"/> defines
context IDs, that are sent within datagrams, in addition to the Quarter Stream
ID. UDP payloads use context ID 0, forms of data use other IDs.</t>
      <t>Datagram priority applies to UDP proxying requests, as described in
<xref target="datagram-urgency"/>. By default the same datagram-urgency applies to all HTTP
datagram contexts related to the request stream.</t>
      <section anchor="capsule">
        <name>The CONTEXT_PRIORITY Capsule</name>
        <t>There might be cases where it is beneficial to prioritize individual contexts
differently from one another. This document defines the CONTEXT_PRIORITY (TBD)
capsule type to carry a priority signal related to individual contexts.</t>
        <t>Once a UDP proxy request converts to the capsule protocol (see <xref section="3" sectionFormat="of" target="HTTP-UDP-PROXY"/>, clients can send CONTEXT_PRIORITY capsules to signal the
priority of the identified context.</t>
        <t>A CONTEXT_PRIORITY capsule communicates a complete set of all priority parameters
in the Priority Field Value field. Omitting a priority parameter is a signal to
derive a value from defaults; see <xref target="datagram-urgency"/>. Failure to parse the
Priority Field Value MAY be treated as a connection error. In HTTP/2, the error
is of type PROTOCOL_ERROR; in HTTP/3, the error is of type
H3_GENERAL_PROTOCOL_ERROR.</t>
        <t>TODO: describe what happens if capsules arrive before contexts exists. Buffer?
Drop?</t>
        <t>TODO: consider if servers could send this capsule type</t>
        <figure anchor="fig-context-priority">
          <name>CONTEXT_PRIORITY Capsule Format</name>
          <artwork><![CDATA[
Context Priority Capsule {
    Type (i) = CONTEXT_PRIORITY,
    Length (i),
    Context ID (i),
    Priority Field Value (..),
}
]]></artwork>
        </figure>
        <t>The CONTEXT_PRIORITY capsule has the following fields:</t>
        <dl>
          <dt>Context ID:</dt>
          <dd>
            <t>The context ID that is the target of the priority update.</t>
          </dd>
          <dt>Priority Field Value:</dt>
          <dd>
            <t>The priority update value in ASCII text, encoded using Structured Fields; see
 <xref target="PRIORITY"/>.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="client-scheduling">
      <name>Client Scheduling</name>
      <t>A client MAY use datagram-urgency to make local processing or scheduling choices
about HTTP datagrams related to the requests it initiates.</t>
    </section>
    <section anchor="server-scheduling">
      <name>Server Scheduling</name>
      <t>Priority signals are input to a prioritization process. Expressing priority is
only a suggestion. The datagram-urgency parameter introduces new scheduling
considerations on top of those presented in <xref section="10" sectionFormat="of" target="PRIORITY"/>.</t>
      <t>It is RECOMMENDED that, when possible, servers respect the datagram-urgency
parameter, sending higher-urgency HTTP datagrams before lower-urgency datagrams.</t>
      <t>Where streams and datagrams have equal urgency and datagram-urgency
respectively, a server needs to decide how to divide the available sending
capacity between stream and datagram data. Strict or static preference for one
type of data over another (e.g., datagrams first, then streams) could lead to
suboptimal results at the client, depending on the nature of the data. This is a
form of starvation, as defined in <xref section="10" sectionFormat="of" target="PRIORITY"/>. It applies whether
the streams are incremental or not.</t>
      <t>Similarly, if datagrams are used for HTTP proxying and there are multiple
context IDs in use for different purposes, those purposes might interfere or
starve each other if they have the equal datagram-urgency.</t>
      <t>It is RECOMMENDED that servers avoid such starvation where possible. The method
for doing so is an implementation decision. One approach is to divide the
available bandwidth between stream and datagram data in some fixed or
dynamic ratio. For instance, a server could choose to generate two classes of
application data QUIC packets: STREAM-frame-only packets and DATAGRAM-only-frame
packets.  The server can control the capacity ratio split by managing the
frequency of the packet classes. A simple alternating strategy would result in a
roughly 50/50 split, while other frequencies would produce different ratios.</t>
      <t>When HTTP datagrams are carried in DATAGRAM capsules. It is RECOMMENDED that
servers schedule the capsules in the manner expected for response data; see
<xref section="10" sectionFormat="of" target="PRIORITY"/>.</t>
    </section>
    <section anchor="retransmission-scheduling">
      <name>Retransmission Scheduling</name>
      <t><xref section="12" sectionFormat="of" target="PRIORITY"/> provides guidance about scheduling of retransmission
data vs. new data. Since QUIC datagrams are not retransmitted, endpoints that
prioritize QUIC stream retransmission data could delay datagrams. Furthermore,
since DATAGRAM capsules are sent as stream data, they <strong>are</strong> subject to
retransmission and could also delay native QUIC datagrams.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>There are believed to be no additional considerations to those presented in
<xref target="PRIORITY"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This specification registers the following entry in the HTTP Priority Parameters
Registry</t>
      <dl>
        <dt>Name:</dt>
        <dd>
          <t>du</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>The urgency of HTTP datagrams associated with a response.</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC-DATAGRAM">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly">
              <organization/>
            </author>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear">
              <organization/>
            </author>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi">
              <organization/>
            </author>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9221"/>
          <seriesInfo name="DOI" value="10.17487/RFC9221"/>
        </reference>
        <reference anchor="PRIORITY">
          <front>
            <title>Extensible Prioritization Scheme for HTTP</title>
            <author fullname="K. Oku" initials="K." surname="Oku">
              <organization/>
            </author>
            <author fullname="L. Pardue" initials="L." surname="Pardue">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document describes a scheme that allows an HTTP client to communicate its preferences for how the upstream server prioritizes responses to its requests, and also allows a server to hint to a downstream intermediary how its responses should be prioritized when they are forwarded.  This document defines the Priority header field for communicating the initial priority in an HTTP version-independent manner, as well as HTTP/2 and HTTP/3 frames for reprioritizing responses. These share a common format structure that is designed to provide future extensibility.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9218"/>
          <seriesInfo name="DOI" value="10.17487/RFC9218"/>
        </reference>
        <reference anchor="HTTP-DATAGRAM">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="David Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Lucas Pardue">
              <organization>Cloudflare</organization>
            </author>
            <date day="17" month="June" year="2022"/>
            <abstract>
              <t>   This document describes HTTP Datagrams, a convention for conveying
   multiplexed, potentially unreliable datagrams inside an HTTP
   connection.

   In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC
   DATAGRAM extension.  When the QUIC DATAGRAM frame is unavailable or
   undesirable, they can be sent using the Capsule Protocol, a more
   general convention for conveying data in HTTP connections.

   HTTP Datagrams and the Capsule Protocol are intended for use by HTTP
   extensions, not applications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-h3-datagram-11"/>
        </reference>
        <reference anchor="HTTP-UDP-PROXY">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="David Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="17" month="June" year="2022"/>
            <abstract>
              <t>   This document describes how to proxy UDP in HTTP, similar to how the
   HTTP CONNECT method allows proxying TCP in HTTP.  More specifically,
   this document defines a protocol that allows an HTTP client to create
   a tunnel for UDP communications through an HTTP server that acts as a
   proxy.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-connect-udp-15"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <reference anchor="STRUCTURED-FIELDS">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="P-H. Kamp" initials="P-H." surname="Kamp">
              <organization/>
            </author>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8941"/>
          <seriesInfo name="DOI" value="10.17487/RFC8941"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="QUIC">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <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>
      </references>
    </references>
    <section anchor="change-log">
      <name>Change Log</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong>  Please remove this section prior to publication of a
final version of this document.</t>
        </li>
      </ul>
      <section anchor="since-draft-pardue-masque-dgram-priority-01">
        <name>Since draft-pardue-masque-dgram-priority-01</name>
        <ul spacing="normal">
          <li>Realign with Extensible Priorities RFC</li>
          <li>Realign with latest HTTP datagram and capsule protocol draft</li>
          <li>Add CONTEXT_PRIORITY capsule for prioritizing individual contexts</li>
          <li>Better explain that competing stream and datagram flows should share bandwidth
but refrain from requiring any specific ratios.</li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document is inspired by discussion by many people across HTTP, QUIC and
MASQUE WGs.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81b7XIbuXL9j6dA7B+xXSQtyd7sLje6G1mS16qSLa0kZ+9W
KmWDHJCceDgzdzAjmVF5nyXPkifL6W4A80HK3iSVqtwfd6mZAdDoPt19ugGP
x2NVp3Vmp/rNzc2lPjG1WVZm7Ub6/cmlvqyKz5s0X460yRN9+rm2uUtnmcWL
tKjSOv13U6dFrsxsVtnbwRzDj5Jinps1Vkoqs6jHpamSxo7Xxv0N/0loxLiU
EZvx3oGam9oui2oz1fZzqVRaVlNdV42rD/b2fsR7U1kz1TeVyV1ZVLW6K6pP
y6poyql+e3T96/tT9clu8DCZ6rO8tlVu6/EJrayUq7GdDyYrckizsU65tanq
D39ritq6qc4LVaZT/S91MR9pSJ3mic3rkXZYprIL6MZt1v5HXaVzvJoX69L4
H2t8jFdpnqW5/VelTFOvimqqNP6X5pj/fKIvefP8SHRy3syN6z4uquVUH2dF
kywybJWf2bVJs6nO6FtR3+Tg5eT7f1rS8wmWViovqjXUfWunSo3HY21mEBGS
KXVUllk6Z1PosiqwuSJzunEwr65XVv/6/uwYCvbqjJ/oymYbjTGYxzIwoDtV
lDSPyfCKxjY5vkoNISMJ1reCliIf6brQc1NVG206MtCHE30tsyrCVxjq8HWu
Z1avm6xOy8x+tgk0p0lUrDAv8tzOaQ6nZ00tgieFdTBcrRO7gNoxH0bA6kVp
K5ar7IFRu/nKri20jFmX2AhpYW3nK5Onbj3RN9gUgVk9iPkwQ2LdvEpnWB1L
dvY3zuytzcJXCywERamBFMUiqJX2Rws+P2BX458vSI7UEQQbApXfm9Or4m6X
YDYqzjRLGgC1QfUk1IZ+kKWiSmnDWJ43GW22yIo7p+/SeqULfF35B6QlEXMi
qIKi7Yd39H918eHKmsRWTqlnV6+P9enJ2c3F1VRjDeMs0LMubi2Wxj6cWA0C
Qh2wSDMLynqm1HXRVHMybmJZA6lzDTaUpa722iNNkP+GTS6KBt+ZWv3jqq5L
N33+fAnBmxk5wvNzcaXn3441f/F7WqdJklmlHlO4qIqkYWH/535zf/8zvTqE
Un7c29v78oU9SQ08Sf93PEnd3/8dzTk+Obo5+uXq6C1PfnCw/+XLn3EyveVk
6n/lZHroZEN4/0kn+0pi8TNg35dXZxdXZze/y5b3f4A+/3+6HskhjveQv0Ub
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

-->

</rfc>
