<?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.1 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-engelbart-quic-data-channels-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title>QUIC Data Channels</title>
    <seriesInfo name="Internet-Draft" value="draft-engelbart-quic-data-channels-00"/>
    <author initials="M." surname="Engelbart" fullname="Mathis Engelbart">
      <organization>Technical University Munich</organization>
      <address>
        <email>mathis.engelbart@gmail.com</email>
      </address>
    </author>
    <author initials="J." surname="Ott" fullname="Jörg Ott">
      <organization>Technical University Munich</organization>
      <address>
        <email>ott@in.tum.de</email>
      </address>
    </author>
    <date/>
    <area>Applications and Real-Time</area>
    <workgroup/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 29?>

<t>WebRTC data channels provide data communication between peers with varying
reliability and ordering properties. WebRTC data channels traditionally use SCTP
layered on top of DTLS over UDP. This document describes how WebRTC data
channels can be layered over QUIC.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    QUIC Working Group mailing list (quic@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/mengelbart/draft-engelbart-quic-data-channels"/>.</t>
    </note>
  </front>
  <middle>
    <?line 36?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The WebRTC framework is a collection of protocols and APIs to enable endpoints
to communicate using audio and video streams and arbitrary data. In WebRTC,
real-time media and data communication happen in parallel over two independent
connections and transport protocols. While media communication in WebRTC uses
SRTP over UDP, WebRTC data channels allow two endpoints to exchange data over a
secure, multiplexed, bidirectional channel using SCTP layered on top of DTLS
over UDP. Data channels are streams of framed messages, which can be ordered or
unordered and support different reliability models. While the connection
establishment shares some aspects between media and data communication, others,
such as congestion control, transmission prioritization, and encryption, happen
independently in the stacks of the involved protocols (SCTP, DTLS, SRTP).</t>
      <t>QUIC is a secure, multiplexed transport providing reliable communication
over uni- and bidirectional streams and unreliable datagrams. With the
development of RTP over QUIC (RoQ), there is already an alternative for media
communication using QUIC instead of SRTP for RTP media communication. One of the
main requirements during the development of RoQ was the ability to share a
single QUIC connection for media communication and arbitrary data exchange.
Using QUIC as a common protocol for media and data would allow for easy sharing
of encryption context, congestion control, and prioritization among all
transmissions between two endpoints. While RoQ includes capabilities for
multiplexing RTP, RTCP, and other protocols in one QUIC connection, no such
protocol is currently defined.</t>
      <t>This document aims to fill this gap by specifying a data communication protocol
similar to WebRTC data channels that can run over a QUIC connection, multiplexed
with RoQ. The protocol defined in this document is referred to as QUIC Data
Channels (QDC).</t>
      <t>WebRTC data channels have several use cases and requirements defined in
<xref target="RFC8831"/>. The data channel protocol defined in this protocol tries to
fulfill the same requirements.</t>
      <t>The remainder of this document is organized as follows:</t>
    </section>
    <section anchor="connection-establishment">
      <name>Connection Establishment</name>
      <t>QUIC requires the use of ALPN <xref target="RFC7301"/> during connection setup. Data
channels over QUIC use the "qdc" token during the TLS handshake.</t>
      <section anchor="draft-version-identification">
        <name>Draft version identification</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>
        <t>Data channels over QUIC use "qdc" as the ALPN identifier.</t>
        <t>Only implementations of the final, published RFC can identify themselves as
"qdc". Until such an RFC exists, implementations MUST NOT identify themselves
using this string.</t>
        <t>Implementations of draft versions of the protocol MUST add the string "-" and
the corresponding draft number to the identifier. For example,
draft-engelbart-quic-data-channels-04 is identified using the string "qdc-04".</t>
        <t>Non-compatible experiments based on these draft versions MUST append the string
"-" and an experiment name to the identifier.</t>
      </section>
    </section>
    <section anchor="messages-and-quic-streams">
      <name>Messages and QUIC Streams</name>
      <t>QDC uses a message abstraction on top of QUIC streams. To provide framed
messages to the application, QDC uses a single QUIC stream for each message. An
endpoint MUST close a QUIC stream after sending a message on the stream. Message
framing is implicitly provided by QUIC streams. Messages sizes are only limited
by the maximum size of a QUIC stream.</t>
    </section>
    <section anchor="the-data-channel-establishment-protocol">
      <name>The Data Channel Establishment Protocol</name>
      <t>The data channel establishement protocol (DCEP) is defined in <xref target="RFC8832"/>. DCEP
provides functionality to setup data channels between two peers without external
signaling. QDC uses a similar protocol to establish new data channels. To open a
new data channel, an endpoint sends a Data Channel Open Message.</t>
      <t>The Open Message includes a channel identifier that will be used to uniquely
identify the data channel. To avoid collisions where both sides try to open a
data channel with the same stream identifiers, each side MUST use streams with
either even or odd stream identifiers when sending a Data Channel Open Message.
When using QUIC, the method used to determine which side uses odd or even is
based on the underlying DTLS connection role: the side acting as the QUIC client
MUST use streams with even stream identifiers; the side acting as the QUIC
server MUST use streams with odd stream identifiers.</t>
    </section>
    <section anchor="message-ordering">
      <name>Message Ordering</name>
      <t>Data channels are streams of ordered or unordered messages. The type of the data
channel determines if the messages are ordered or unordered. Data Messages on
ordered data channels have an additional Sequence Number, that a receiver can
use to reorder messages that arrived out of order. Each message of an ordered
data channel MUST carry the sequence number. Messages on unordered data channels
MUST NOT carry sequence numbers. Endpoints MUST treat messages without sequence
number on an ordered channel as an error of type PROTOCOL_VIOLATION. Endpoints
SHOULD treat messages with a sequence number on an unordered data channel as an
error of type PROTOCOL_VIOLATION.</t>
    </section>
    <section anchor="message-priority">
      <name>Message Priority</name>
      <ul empty="true">
        <li>
          <t><strong>TODO</strong></t>
        </li>
      </ul>
    </section>
    <section anchor="partial-reliability">
      <name>Partial Reliability</name>
      <t>Data channels support two partial reliability modes. Reliability can either be
limited in the number of retransmissions or it can be expressed as a deadline
after which no further retransmissions will occur. This section explains how
these modes are supported by leveraging the capabilities of the underlying QUIC
connection.</t>
      <section anchor="limited-number-of-retransmissions">
        <name>Limited Number of Retransmissions</name>
        <ul empty="true">
          <li>
            <t><strong>TODO:</strong> This mode is hard to implement on top of QUIC because it requires an
API to let the QUIC stack know after how many retransmissions it should stop
reset the stream. We suggest keeping this mode out of the protocol.
Application designers can still implement similar features using the QUIC
Datagram extension.</t>
          </li>
        </ul>
      </section>
      <section anchor="limited-duration-of-retransmissions">
        <name>Limited Duration of Retransmissions</name>
        <t>The sender can limit the lifetime of a message on a data channel. The lifetime
is defined per data channel and is the same for every message sent on the
channel. The lifetime of the messages on a data channel is communicated in the
<em>Reliability Parameter</em> of the Data Channel Open Messages (see
<xref target="data-channel-open-message"/>).</t>
        <t>The lifetime of a message starts when the sender opens a QUIC stream to send the
message on. The lifetime ends after the amount of time that was announced in the
<em>Reliability Parameter</em>. When the lifetime of a message expires, the sender of
the message SHOULD close the stream using QUIC's RESET_STREAM frame.</t>
        <ul empty="true">
          <li>
            <t><strong>TODO:</strong> Instead of RESET_STREAM, one could use CLOSE_STREAM with an offset
after the message header, so that the receiver knows which channel the message
belonged to, what type it head and optionally can read sequence number and
length.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="message-types-and-formats">
      <name>Message Types and Formats</name>
      <t>This section describes the message formats used for QUIC data channels.</t>
      <section anchor="data-channel-open-message">
        <name>Data Channel Open Message</name>
        <t>The format of Data Channel Open Messages is depicted in
<xref target="fig-data-channel-open-msg"/>.</t>
        <ul empty="true">
          <li>
            <t><strong>TODO:</strong> Explain how to choose channel IDs (similar to <xref section="4" sectionFormat="of" target="RFC8832"/>.</t>
          </li>
        </ul>
        <figure anchor="fig-data-channel-open-msg">
          <name>Data Channel Open Message</name>
          <artwork><![CDATA[
Data Channel Open Message {
  Channel ID (i),
  Message Type (i) = 0x00,
  Channel Type (8),
  Priority (i),
  Reliability Parameter (i),
  Label Length (i),
  Label (..),
  Protocol Length (i),
  Protocol (..),
}
]]></artwork>
        </figure>
        <dl>
          <dt>Channel ID:</dt>
          <dd>
            <t>A unique identifier of the data channel.</t>
          </dd>
          <dt>Message Type:</dt>
          <dd>
            <t>The Data Channel Open Message type is always set to <tt>0x00</tt>.</t>
          </dd>
          <dt>Channel Type:</dt>
          <dd>
            <t>This field specifies the type of data channel to be opened. The values are
managed by IANA and follow the registry defined in <xref section="8.2.2" sectionFormat="of" target="RFC8832"/>.</t>
          </dd>
          <dt>Priority:</dt>
          <dd>
            <t>The message priority as described in <xref target="message-priority"/>.</t>
          </dd>
        </dl>
        <t>Reliability Parameter: : For reliable data channels, this field MUST be set to 0
on the sending side and MUST be ignored on the receiving side. If a partially
reliable data channel with a limited lifetime is used, this field specifies the
maximum lifetime in milliseconds (see also <xref section="5.1" sectionFormat="of" target="RFC8832"/>).</t>
        <dl>
          <dt>Label Length:</dt>
          <dd>
            <t>A variable-length integer specifying the length of the label field in bytes.</t>
          </dd>
          <dt>Label:</dt>
          <dd>
            <t>The name of the data channel as a UTF-8-encoded string, as specified in
<xref target="RFC3629"/>. This may be an empty string.</t>
          </dd>
          <dt>Protocol Length:</dt>
          <dd>
            <t>A variable-length integer specifying the length of the protocol field in
bytes.</t>
          </dd>
          <dt>Protocol:</dt>
          <dd>
            <t>If this is an empty string, the protocol is unspecified. If it is a non-empty
string, it specifies a protocol registered in the "WebSocket Subprotocol Name
Registry" created in <xref target="RFC6455"/>. This string is UTF-8 encoded, as specified in
<xref target="RFC3629"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="data-channel-close-message">
        <name>Data Channel Close Message</name>
        <figure anchor="fig-data-channel-close-msg">
          <name>Data Channel Close Message</name>
          <artwork><![CDATA[
Data Channel Close Message {
  Channel ID (i),
  Message Type(i) = 0x01,
}
]]></artwork>
        </figure>
        <dl>
          <dt>Channel ID:</dt>
          <dd>
            <t>The unique identifier of the data channel.</t>
          </dd>
          <dt>Message Type:</dt>
          <dd>
            <t>The Data Channel Close Message type is always set to <tt>0x01</tt>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="data-message">
        <name>Data Message</name>
        <t>The Data Message has two optional fields. The message type field takes the form
<tt>0b000001XX</tt>. The two low-order bits determine the fields that are present in
the message:</t>
        <ul spacing="normal">
          <li>
            <t>The SEQ bit (0x02) indicates that a sequence number is present. If this bit is
set to 0, the Sequence Number field is absent. If this bit is set to 1, the
Sequence Number field is present.</t>
          </li>
          <li>
            <t>The LEN bit (0x01) indicates that a Length field is present. If this bit is
set to 0, the Length field is absent and the Message Data field extends to the
end of the packet. If this bit is set to 1, the Length field is present.</t>
          </li>
        </ul>
        <figure anchor="fig-data-message">
          <artwork><![CDATA[
Data Message {
  Channel ID (i),
  Message Type (i) = 0x02..0x05
  [Sequence Number (i)],
  [Length (i)],
  Message Data (..),
}
]]></artwork>
        </figure>
        <dl>
          <dt>Channel ID:</dt>
          <dd>
            <t>The unique identifier of the data channel.</t>
          </dd>
          <dt>Message Type:</dt>
          <dd>
            <t>The Data Message type is always set to <tt>0x02</tt>.</t>
          </dd>
          <dt>Sequence Number:</dt>
          <dd>
            <t>A variable-length integer specifying the sequence number in the channel for
the message. This field is present when the SEQ bit is set to 1.</t>
          </dd>
          <dt>Length:</dt>
          <dd>
            <t>A variable-length integer specifying the length of the Message Data field.
This field is present when the LEN bit is set to 1. When the LEN bit is set to
0, the Message Data field consumes all the remaining bytes in the QUIC stream.</t>
          </dd>
          <dt>Message Data:</dt>
          <dd>
            <t>The bytes of the message to be delivered.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="error-handling">
      <name>Error Handling</name>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>The security considerations for the QUIC protocol and datagram extension
described in <xref section="21" sectionFormat="of" target="RFC9000"/>, <xref section="9" sectionFormat="of" target="RFC9001"/>, <xref section="8" sectionFormat="of" target="RFC9002"/> and <xref section="6" sectionFormat="of" target="RFC9221"/> apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="alpn-registration">
        <name>ALPN Registration</name>
      </section>
      <section anchor="registration-of-a-quic-data-channels-identification-string">
        <name>Registration of a QUIC Data Channels Identification String</name>
        <t>This document creates a new registration for the identification of QUIC Data
Channels in the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs"
registry <xref target="RFC7301"/>.</t>
        <t>The "qdc" string identifies QUIC Data Channels:</t>
        <dl>
          <dt>Protocol:</dt>
          <dd>
            <t>QUIC Data Channels</t>
          </dd>
          <dt>Identification Sequence:</dt>
          <dd>
            <t>TODO</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
      <section anchor="error-codes-registry">
        <name>Error Codes Registry</name>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC8831">
        <front>
          <title>WebRTC Data Channels</title>
          <author fullname="R. Jesup" initials="R." surname="Jesup"/>
          <author fullname="S. Loreto" initials="S." surname="Loreto"/>
          <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
          <date month="January" year="2021"/>
          <abstract>
            <t>The WebRTC framework specifies protocol support for direct, interactive, rich communication using audio, video, and data between two peers' web browsers. This document specifies the non-media data transport aspects of the WebRTC framework. It provides an architectural overview of how the Stream Control Transmission Protocol (SCTP) is used in the WebRTC context as a generic transport service that allows web browsers to exchange generic data from peer to peer.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8831"/>
        <seriesInfo name="DOI" value="10.17487/RFC8831"/>
      </reference>
      <reference anchor="RFC7301">
        <front>
          <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
          <author fullname="S. Friedl" initials="S." surname="Friedl"/>
          <author fullname="A. Popov" initials="A." surname="Popov"/>
          <author fullname="A. Langley" initials="A." surname="Langley"/>
          <author fullname="E. Stephan" initials="E." surname="Stephan"/>
          <date month="July" year="2014"/>
          <abstract>
            <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7301"/>
        <seriesInfo name="DOI" value="10.17487/RFC7301"/>
      </reference>
      <reference anchor="RFC8832">
        <front>
          <title>WebRTC Data Channel Establishment Protocol</title>
          <author fullname="R. Jesup" initials="R." surname="Jesup"/>
          <author fullname="S. Loreto" initials="S." surname="Loreto"/>
          <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
          <date month="January" year="2021"/>
          <abstract>
            <t>The WebRTC framework specifies protocol support for direct interactive rich communication using audio, video, and data between two peers' web browsers. This document specifies a simple protocol for establishing symmetric data channels between the peers. It uses a two-way handshake and allows sending of user data without waiting for the handshake to complete.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8832"/>
        <seriesInfo name="DOI" value="10.17487/RFC8832"/>
      </reference>
      <reference anchor="RFC3629">
        <front>
          <title>UTF-8, a transformation format of ISO 10646</title>
          <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
          <date month="November" year="2003"/>
          <abstract>
            <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="63"/>
        <seriesInfo name="RFC" value="3629"/>
        <seriesInfo name="DOI" value="10.17487/RFC3629"/>
      </reference>
      <reference anchor="RFC6455">
        <front>
          <title>The WebSocket Protocol</title>
          <author fullname="I. Fette" initials="I." surname="Fette"/>
          <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
          <date month="December" year="2011"/>
          <abstract>
            <t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or s and long polling). [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6455"/>
        <seriesInfo name="DOI" value="10.17487/RFC6455"/>
      </reference>
      <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="RFC9001">
        <front>
          <title>Using TLS to Secure QUIC</title>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9001"/>
        <seriesInfo name="DOI" value="10.17487/RFC9001"/>
      </reference>
      <reference anchor="RFC9002">
        <front>
          <title>QUIC Loss Detection and Congestion Control</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
          <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9002"/>
        <seriesInfo name="DOI" value="10.17487/RFC9002"/>
      </reference>
      <reference anchor="RFC9221">
        <front>
          <title>An Unreliable Datagram Extension to QUIC</title>
          <author fullname="T. Pauly" initials="T." surname="Pauly"/>
          <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <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>
    </references>
    <?line 324?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Va63IbtxX+j6dA5R+VNSRHVi512IlbjaRM1ZElWaKbzGQy
McgFSYz2wix2JTMa5bH6An2xfucAWGBJyu7VPxJqARyc+/nO2R0Oh6IxTa7H
cu/d+/MTeaoaJU+Wqix1bvdEVs1KVWA1q9W8GepyofOpqpvhL62ZDTNsHs78
5uHhoZipRi+qej2WtskElnHy8fR4cvYkhFnVY9nUrW2ODg+/OTwSqtYK1x6v
VrnBQVOVVqoykzda5cOJKfSeeKjqu0VdtSvs2xN3eo0H2Viel42uS90MT4kr
IWyDcz+rvCpx31pbsTJj+WNTzQbSVnVT67nFr3VBP34Stp0Wxlrc16xXOHB+
NvlOCNU2y6oeCzkUEv9Macfy7UieBYn5qdPFW9Usjd1YquqFKs2vLMdYTvRs
WUKqXL4vzb2urWnW8m2LR0verQtl8rEsmNKoU+ufF/R8NKuKHh9/HcmrJuXg
r//4e73onv1HV1dN82dTjpq2GGVaCDEcDqWa2qZWM2j0ez29mZxIMrAMBpar
uro3mfZPq6IgonyrnOrmQetSrjQulA+mWcp7Va9NuRC1zo2ampzYIPPCgrrG
ApFb6box2o7kzvvAS2aIvMrztWytlrcnk2uRq7WuNQiVsqlWsprL08nFrawg
q3x/ej2SE7IOPLctdNnITNtZbabaymX1kF4kuotmiiSQHWGiRNEwcmopTJbl
0NELcry6ytoZMSXEZKkDvXkNu5C3SlxNyslzzbuIPQgKX6xy597H1+cQrZK6
VNNc43/ZqjJlYwWeRaVqyEtKUm1mKj5Hqq8QV4iawlFS9dRAR/WaxRmBO8/O
AEpHDDWIIVnozCjevsNsS7VawWoGhlM1tKxzJ3zzUOFhprGYQYdiVkFRsxii
uLW0K4RWlA02XJo83Ne/xgTGyIhW3N5MrjtzDXbbHszAWsRHpyBW2kfasfA+
yDSUsHrW1nogizZvzCrXH3U2kFOTmdrxjFDwdL1SyY3kbjcS0Y1O+wzVulM+
9rLBM0hrrVpopJeHJQIseBL7ONGuRVuGP0hxtl2x2jIzn+Mh3DMNj6LKdNRk
A/eKihcaWW6aG7tkr7ZLMGSR3mBiZVfYY7sg/JTJBwj8JWJ0gDQIfpWlKyAA
2wk/4d/5wNnXJ0mY2FQ14vBXT4AI63JWr1fub+dEIvEXRCtMTvyD59kdK4z+
MuV9ld9DFTEi9skWA1b9QJJjvETQcSXiQNph2r7zISrIok6Lue4L64yJP4fM
dN8l0khqy44AqWwB45IZKI2Bb5Hpe51XK1Y8ROncl/ncv6nevRzQPngIMZ2D
bka5Dj+pToGVey3nVe0MI/qx4TzSSVzaBkfpCg4ROkL/3xFSKAil9moVSOgl
NICSXGviEcmv5QxLOt/kvXonH2B1Wgpuh7hid6JQwjEogdmJvheZ3wjs7SzU
RehIvI+SKZcUi4Ldydk+Idq56kPV5pmPfVrWyq6ZNyok4D66Hfuq/tgMdvov
Eey7rVS4e0GkRercMWh6qSaEIGnLlLO8RRFBbK+cxlCxiDvROSXJeUNujDx2
7W7nKEv8HBYCOtlU7ECW0D0CUXRagQfB5WsXRZmem1JnI6o1aU1TpuB0ODd5
LhmMLNRKTqErZAIzX3Pl2JXwwzUwdGFyVROR3bV3qRrOZnVb+jy7zXwSlYJr
PvRF5VdHI3sJXD5IRcBvwDFdU2YEE/CQDn+KgD/l/rvTE0oIO1lcKoSVhXuj
cjE6mClUF9Z+Pxg6FsTj4+9uvjt5/fqLV09PjtGU5PNcdwtNTcZvKjFvc698
8IBS0Lty5LBBTVALCbF2gbohvUdtVBjIncjn7ZhAxkmMu7M05/u86C9yIUxi
g/jxxfWldML94YtDCBcyQBLDVjftylW1iHxiGiNKRHHvl2y2BwnvEBNJGiGE
hUMZgvEOsS1evJAMviUjTKrxlPjNPGRe8UYeHIAdeQYIV9W/t/B0dAMHB/I6
R1SzcnC5U4v1LHLIkjes2mnoCUg8BWowCMwcbttUKDjql+u+YE4on/ZYWYFd
XePoVUkVq4AnEy3fiviaxfcOHEd2CWuRUBQYnsKadhVWo67B96zgq0bA3o3J
pauxJZ9BmrANgMLmPW/f307k5dVkF0HhqoNTUkPGALfn24xmqSk61juv5StU
lvmSzEbdG+5RqAiHMhCGKKkl11JHrGyLqWZjcOWO6pLfUWL+qIiLgfhX+sIv
yd07CpkMQkVeoDNs24Nwl1U5RMpaQTZGxx/RIhgXx1O4jYNrSw2bbsjsZCQk
koopvJhkhEiLu6gdolH0vfWIjk+xA906oIDwO3UAFqnQ476uY2Kf7IAkH/P4
Ammm6jonhxpFQI2BBRVb4IFMbkmrsSPnqyK8ytMYyWNAQ1+3nBJmeQX1qN4x
qArGtNpZOPJfBZhGu0ZBeEF80kayW0G8GapGXoqMCk1fxE5pFgnNYeWKYipH
lWkg8JSdGu3uR1O0Be/iuE7JsPYpbaYjiH4GlNehfImt3N3BYw6N6Pv7pydn
1y9JkiSpd3XgiOoA7RBeOKTitvQQMWAjSpwbtSdFDbHnrdoGXsaYjyrsgmgg
ZPsmdXU3VpQqsi5L/dC/iL2noh5Nic3FATt1MD3Zli7oae+KTnrj+KKUPorY
JuoxhoPDAA9U5aZcabhQA0v80up8LdJ01eOLeVb3lcm4DzYuPh8YH0+Bi6AD
urKpWbteuJ4tHzzwdpXVu3BkDEmUQ4DoOJenHB/wPB0W2jD+AjhAXKL+Ivdt
kyGeyiQoPqG672lnhOoD584aJs86zWQalkfYaN8LMntsdrq+8twYK9JEBn0C
IOSM2HiMkVRsQFk9dnogUpRmiE9XxRwYyw0Bg506cNdtS/3HT1FEL11T5dxN
cbca07Qpr/x0Z7Meb7TPsUGWsUEOadEhMxrOhUqWjmuinpGc5t4QIWfXeidp
38x3aYpaQ79tB6akzi0Lkyd5C7yFvkPLS66IAxcWCgBmpmm+RmBAMHqq8IzJ
Robc3ro21PVSegiyj+RZksU5GZaB9X4wuJwOGi7SbGDHFehRKlSiy55YosMY
js4GDUtjzjBk4a1kqCZKEXJbOCc8OOAOsFN4YJiaPSSmuq4c8CU7Xt9cTa5O
ri5+/tv51cXx5PzqMrlT3P7l6v3F6a5beQTQY9ZfultSd7f47N2px167PnEt
H1/4q4e+dVw/ORg7uTq9OjigM9eAOAY+cROHNpuOHiY8XBn89s0ZDxSeUGA0
6RPWVAtfM8MEJUg9B5V+5woRTRMmTgA3gHDWdRNo/bTKUHu0cIXfJST0mvO2
5ns2aXGWr2boPP34NEBy0M3RxPDwVDjgxRK4gHayOkSQcye2CNCu1y37ME5y
HSebmOtcR3HhRb/sZL7p8xntQZ0EM0rcUHVfqpqzcAevN/HYVM8UhalpYgsF
X3lDA1k6mOsmJlaeW8m7snrw0Ilmx4Uq11uaMzSL47GFxW0gB7qeUkBV35Om
FjSkkHdarzpEz6z7pJDi9RExFSEhTbCBJahgkbFtQ7aKYgZEMUfwtCRUhNes
5Dec+2ikxdiktFvqPm3rrtXaUviEcw53sXQ7eycTz81c84SZgVwCKNUmGkg2
iwSHAY1vBC8Qt7Gx8M9dzUTCCtRtsOtSi530gyqLJCn2+eEBSxyzhzgTB2lE
Is7BAOx+EAg+iw2s3Ldai8fHtOkZEqoZeiaenl567LVbZfC1uvFgpInaJhJ2
A8YzGnUNjoga31CBA4LstdxcFFXrZn+86kAd58kSC7PPaoBmYZ6z3fwjRVAw
DXrMz0ViBukTvOtMYmgkiOr3Vt6c3Z5Nfr6d3Jwdv3Wd0qgf7+dxPpruHfBk
bcYxSAF+cnF1exbouCJCrj1HWIJcVExgbgmaVNdt5ZTT8OjGF3dKATYM9735
k8MgONU5TSAp+dBbACJAVQdRQoTdMHDVvcXikRo93yxr1Iu/QRIqF82yV58m
oOa6UTTehWqsHwaGDB3fb6VCzd1eB04pkNiN+r2Fm+I859ioh8+7tPNndwm/
Onk+PDjiV2bWhBHc3CyGOyjbBXqxvsHPXPHh5Etvx5YV+U8ww/kpxV6cYz4+
3nqVfEn+90bGFk+I3377TXxCVCG7hfNTuW9eDvAktQA9k9/Kw4+Hh4Nks1t6
zds7IOGP7wynsHih4Dfygs3df7Y/GnlyvkPsb+oeu31PLNnjWL54Vq2SX/B/
u/es+HswZ5R+LMby2Ld5aTeYQPEutwuR6ohObjXwPT27yKB3JA9qTS7ckOE+
kFY/jCITkRj24nIqrjzYNt7LQ2/QS+ygRK/ecB8BfmLkXuWtgyoCtVstHFA5
P7485nhyQ1cf7wtjqSPtDQmCP70eHY2OyKd+l7pUsHcQO4ReQI+ExEJweoJb
AJPo7PSTsRzzoK33XqoL3YEDEE41jNinOmjzUFSxjlB6da1eGTcCTFR17EBd
rgs7R/KckruHrujzd3IQwHkAq11lMC7l9Bjs2U6EIVA8UkrEcG6Q0CoqXVRP
4SE2jeivRq/I3lH/VFLTGHJee69q5nXo8ihIN3pBg6/4WoTrmFv1Hp0zGccq
eJmuG20D9WBbHhjuiACHtt9Pvhu+HiKbVzQdc5PHAS0FyZOXD198ffSNe/lA
CFCtySCE/4sVzN/NeDeC/7+QLr5u8wKKIGC4g4if+3m6sZvMDPpUyL5lJxY7
i2ncu9qyKod8UoSThI0726tIxEUbd2++y9n7Xk9vq9kdXPi2nXYbL6F2xIeL
zT05owYxneB9/eVXX3XK9MNk/GJ7SG+PzxhiuwieMEoJo9DtytFb/xdKR1c5
Xn0yXTM4ejZf9y7dTtgT7q7+Rym7L+DzOfvVh0R7nb46coHAkuZLD1WHgpwn
+ilPkd7iXLRRdz7NE74QHw6nh/Tv1Q8/fPCTIRBD4h66WcvU8Du+MHtz72zo
gjB8Ie/V3DnA9glGGgtxwPRuz94RFbkPmY5e0ocv3BoEAltQjV8IMsVRFzhT
jgJYPmRhFzcbw6MQhJZeHOw4H06/4tOg9uz5wIAX4eLsshPh1Q4RPIbYOv45
/jfPObbdN0DL6CNsb7eJe8wsvNoAQepXQi5SFOGfFvpZVpNI/E9g29FohP9+
hfUfN5WKPT/RwR8j0vopJcR3Pgu3Og92UXvcb4W76uk+M0mHVj4i/z+x/Pno
PaLo3VDFv1VntsLCpfJQGekLiSTaRimai2aNbW+IwsQhqAr/t/Vv20VH4jOc
hGBKOYlN8Naq8LGyIxgAaGxbaP6czWMt+iSAOOUqHHTWfw2WEgpGddv70w2P
eDO42D1PualtPOPZ51/gbjmP4V8gh8xaxqMn4AYeVfv3xo8vgLiGs97DpzDw
8Uf6q9xIdvx2VTp8vtOfMYkN7Bug3FGH5L5BVn96GiRr3yRLr/pLr0VcAv7j
S+Pq193BoyP6/IHeqK5ZH4z2tyQ3aAe2RUct448DPOLwXzLgafogeXHZ+1ha
nve+gKDXxmyA/pc7DsIwXNIPoe1Q3UdW6Qvp+P3Dji9jAm6iV0bJrHB4QV81
xibxUi8q4HgmtE+yvYxr6J/3RNf4PD7+qft6xI+r3FcTAVaFVGR3yI5SGjvT
MX6Pd2yiPZs68inEHaG2nzbdOrDm9vilVIlsEufnJzyLDgjRfa47RZUhyx/P
aHiT62zB3w8ga7tEpbNv9+boLxhG/RPghKk9AS8AAA==

-->

</rfc>
