<?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.29 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yuan-quic-congestion-data-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title abbrev="Congestion Data Frame">Exchanging Congestion Control Data in QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-yuan-quic-congestion-data-00"/>
    <author fullname="袁靖昊" asciiFullname="Junghao Yuan">
      <organization>Bytedance</organization>
      <address>
        <email>yuanjinghao@bytedance.com</email>
      </address>
    </author>
    <author fullname="肖磊" asciiFullname="Lei Xiao">
      <organization>Bytedance</organization>
      <address>
        <email>xiaolei.shawn@bytedance.com</email>
      </address>
    </author>
    <author fullname="Mike Bishop">
      <organization>Akamai Technologies</organization>
      <address>
        <email>mbishop@evequefou.be</email>
      </address>
    </author>
    <date year="2025" month="October" day="10"/>
    <area>Web and Internet Transport</area>
    <workgroup>QUIC</workgroup>
    <keyword>QUIC</keyword>
    <keyword>congestion control</keyword>
    <keyword>careful resume</keyword>
    <abstract>
      <?line 47?>

<t>This draft defines a new transport frame which enables consenting endpoints
to share congestion control state about the network connection for various
purposes. It also allows an endpoint's own congestion control state to be echoed
back to it by a peer for consideration at the beginning of a future connection.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-yuan-quic-congestion-data/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        QUIC Working Group mailing list (<eref target="mailto:quic@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/quic/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/MikeBishop/quic-samsara"/>.</t>
    </note>
  </front>
  <middle>
    <?line 54?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>All Internet transports are required to either use a congestion control
algorithm, or to constrain their rate of transmission <xref target="RFC8085"/>. Most
congestion control algorithms take time to ramp up the sending rate, called the
"Slow-Start phase." This defines a time in which a sender intentionally uses
less capacity than might be available so as to avoid or limit overshoot of the
available capacity for the path. This is because any overshoot can have
detrimental effects both for the current flow and for any other flows with which
it shares network bottlenecks.</t>
      <t>At the same time, using less capacity than is available necessarily limits
performance early in the connection. Careful Resume
<xref target="CAREFUL-RESUME"/> is a mechanism whereby
remembered congestion control parameters can be validated as potentially
applicable to a new connection, probed, and ultimately used to grow the
congestion window more rapidly than slow-start would otherwise permit.</t>
      <t>One optimization approach is to use historical congestion information to
provide the congestion algorithm with
reliable input to help it exit the slow start phase. The most direct and
reliable information can be samples collected during the congestion algorithm,
such as the congestion window size and probe bandwidth.</t>
      <t>While clients often connect to a manageable number of servers and can retain
such state, servers typically service orders of magnitude more clients and
cannot feasibly retain such information. Further, servers are often deployed
with many instances and attempting to coordinate the sharing of this information
between them may prove impractical. Thus, for a server to implement Careful
Resume, some external means of recalling its previous state is useful.</t>
      <t>This document specifies a mechanism which allows a QUIC <xref target="QUIC"/> endpoint to
periodically export its congestion control state, optionally in an
integrity-protected manner. This exported state is sent to the peer in a
CONGESTION_DATA frame.
When establishing a subsequent connection, an endpoint with persistent storage
can include this data in a CONGESTION_DATA_RECALL frame in its 0-RTT or 1-RTT
packets, assisting its peer to recall the information necessary to perform
Careful Resume.</t>
      <t>This mechanism is comparable to HTTP cookies, <xref target="COOKIES"/>, but
for transport information.
This data may also be useful for application-layer purposes, such as
adaptive-bit-rate video. The exported information is readable by the peer and
can be exposed to the application through local interfaces.</t>
      <section anchor="peer-visibility">
        <name>Peer Visibility</name>
        <t>The peer's viewpoint of a connection can be useful for debugging and as
additional information to be considered by on-path entities such
as congestion controllers and
application-layer protocols. Therefore, this extension deliberately does not
encrypt the data reported to the peer. Instead, the data is provided in
cleartext with an optional integrity tag.</t>
        <t>If a server wishes to recall information about past connections without sharing
that data with the client, this information can already be encoded in address
validation tokens without requiring the cooperation of the client; see <xref section="8.1.3" sectionFormat="of" target="QUIC"/>.</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?>

<t>This document also uses terminology defined in <xref target="QUIC"/> and
<xref target="QUIC-TLS"/>, in particular the frame layout notation from <xref section="1.3" sectionFormat="of" target="QUIC"/>.</t>
      </section>
    </section>
    <section anchor="transport-parameter">
      <name>Transport Parameter</name>
      <t>Desire and willingness to receive the frames defined in this specification is
indicated by means of the following QUIC transport parameter:</t>
      <artwork><![CDATA[
support_congestion_data(i)
]]></artwork>
      <t>The support_congestion_data value is a variable-length integer that
encodes these three one-bit flags:</t>
      <dl>
        <dt>CONSUME (0x01):</dt>
        <dd>
          <t>This indicates that the sender is interested in receiving CONGESTION_DATA
frames for its own uses during the current connection, independent of the
receiver's ability to reuse the data in the future.</t>
        </dd>
        <dt>CACHE (0x02):</dt>
        <dd>
          <t>This indicates that the sender is willing to receive CONGESTION_DATA
frames and potentially return the contents in a CONGESTION_DATA_RECALL
frame on a subsequent connection.</t>
        </dd>
        <dt>CONSIDER (0x04):</dt>
        <dd>
          <t>This indicates that the sender is willing to have values it may have
provided on a previous connection returned to it in a CONGESTION_DATA_RECALL
frame.</t>
        </dd>
      </dl>
      <t>All other bits <bcp14>MUST</bcp14> be set to zero when sending and <bcp14>MUST</bcp14> be ignored on receipt.</t>
      <t>The default for this parameter is 0, which indicates that the endpoint does not
support CONGESTION_DATA or CONGESTION_DATA_RECALL frames. A value other
than 0 indicates that the endpoint supports the indicated frame types and is
willing to receive such frames on this connection.</t>
      <t>An endpoint <bcp14>MUST NOT</bcp14> send CONGESTION_DATA or CONGESTION_DATA_RECALL frames
until it has received the support_congestion_data transport parameter with a
non-zero value during the handshake (or during a previous handshake if 0-RTT is
used).</t>
      <t>An endpoint <bcp14>MUST NOT</bcp14> send CONGESTION_DATA frames to a peer which did not set
the CONSUME or CACHE flags. An endpoint <bcp14>MUST NOT</bcp14> send CONGESTION_DATA_RECALL
frames to a peer which did not set the CONSIDER flag. An endpoint that receives
a frame for which it has not indicated support via the transport parameter <bcp14>MUST</bcp14>
terminate the connection with an error of type PROTOCOL_VIOLATION.</t>
    </section>
    <section anchor="net-stats">
      <name>Network Statistics</name>
      <t>Each network statistic is structured as a TLV:</t>
      <artwork><![CDATA[
Network Statistic structure {
  Type (i),
  Length (i),
  Value (..),
}
]]></artwork>
      <t>This structure includes the following fields:</t>
      <dl>
        <dt>Type:</dt>
        <dd>
          <t>Indicates the statistic being offered, encoded as a variable-length integer.</t>
        </dd>
        <dt>Length:</dt>
        <dd>
          <t>The length of the Value field in bytes, encoded as a variable-length integer.</t>
        </dd>
        <dt>Value:</dt>
        <dd>
          <t>A Type-specific value carrying the payload of the indicated statistic.</t>
        </dd>
      </dl>
      <t>This specification defines a number of initial statistics, but additional
statistics can be added by registering a value in the appropriate registry (see
<xref target="iana-considerations"/>). An implementation <bcp14>MUST</bcp14> ignore any statistics it cannot
understand, but <bcp14>MAY</bcp14> decline to return protected statistics to a peer if it
cannot verify that it is willing to share the contained information.</t>
      <t>A receiver may get a message with multiple occurrences of a particular TLV
value. If the values are identical, the reciever <bcp14>SHOULD</bcp14> ignore them.
If they differ, and one of the values is protected by an integrity tag,
the receiver <bcp14>SHOULD</bcp14> treat this as an attack and close the connection.
If none of the instances are integrity-protected, the receiver <bcp14>MAY</bcp14>
ignore them, use only one of the instances, or close the connection
as it determines to be most appropriate.</t>
      <t>In the sub-section below, only the names are used; the numeric value that
appears in the protocol is defined in <xref target="net-stats-registry"/>.</t>
      <section anchor="timestamp">
        <name>Timestamp</name>
        <t>The Timestamp statistic indicates the time at which the sender generated
this frame. This can be used on future connections to determine whether the
recalled statistics are recent enough to be useful.</t>
        <artwork><![CDATA[
*Note* Format of the timestamp is TBD.
]]></artwork>
      </section>
      <section anchor="path-tuple">
        <name>Path Tuple</name>
        <t>The Path Tuple statistic encodes an identifier of the path on which these
statistics were generated. Knowing the connection addresses as seen from the
peer's perspective can be useful for a number of scenarios (e.g.,
<xref target="STUN"/>). The reciever <bcp14>MAY</bcp14> use this to to compare similarity of the
previous endpoints to those of a
new connection will when deciding if returned statistics
might be applicable to a new connection.</t>
        <t>The structure of the value is:</t>
        <artwork><![CDATA[
Path Endpoint structure {
  Type (i) = 0x202,
  Length (i) = 12/36,
  Local IP (4/16),
  Local Port (2),
  Remote IP (4/16),
  Remote Port (2),
}
]]></artwork>
        <artwork><![CDATA[
*NOTE* I am confused about this structure.  Is the Type and Length
from the TLV?  If so, should "0x202" be the assigned number "0xca" ?
]]></artwork>
        <t>It contains the following fields:</t>
        <dl>
          <dt>Local IP:</dt>
          <dd>
            <t>The sender's IP address on the associated transport path, encoded as either 4
or 16 bytes depending on IP version.</t>
          </dd>
          <dt>Local Port:</dt>
          <dd>
            <t>The sender's port number on the associate transport path, encoded as a
two-byte integer.</t>
          </dd>
          <dt>Remote IP:</dt>
          <dd>
            <t>The receiver's IP address as observed by the sender on the associated
transport path, encoded as either 4 or 16 bytes depending on IP version.</t>
          </dd>
          <dt>Remote Port:</dt>
          <dd>
            <t>The receiver's port number as observed by the sender on the associated
transport path</t>
          </dd>
        </dl>
        <t>The IP version being used can be inferred from the length of the payload.</t>
      </section>
      <section anchor="slow-start-status">
        <name>Slow Start Status</name>
        <t>The Slow Start Status statistic indicates whether the sender's congestion
controller is in the Slow Start phase. The value is a single byte, set to 0x00
if the sender is not in Slow Start and 0x01 if the sender is in Slow Start.</t>
      </section>
      <section anchor="network-type">
        <name>Network Type</name>
        <t>The Network Type statistic indicates the sender's understanding of its
network access medium, encoded as a single byte value. Note that this is purely
advisory, since applications will only be aware of the local network at best.</t>
        <t>The defined values are at <xref target="net-type-registry"/>.</t>
      </section>
      <section anchor="maximum-congestion-window">
        <name>Maximum Congestion Window</name>
        <t>The Maximum Congestion Window statistic indicates the maximum congestion
window (CWD) sampled within the observation period, measured in bytes.
It is encoded as a variable-lenth integer.
CWD is a
key metric in congestion control algorithms, as it represents the amount of
unacknowledged data that a sender can have in flight on the network. A larger
CWD generally allows for a higher sending rate.</t>
      </section>
      <section anchor="maximum-in-flight-data">
        <name>Maximum In-Flight Data</name>
        <t>The Maximum In-Flight Data statistic indicates the maximum in-flight data
sampled within the observation period, measured in bytes.
It is encoded as a variable-length integer.
This represents the highest number of bytes sent by
the sender that have not yet been acknowledged by the receiver during the
measurement period. This metric provides insight into the actual amount of data
in transit at any given time, which can be useful for diagnosing network
performance issues.</t>
      </section>
      <section anchor="smoothed-rtt">
        <name>Smoothed RTT</name>
        <t>The Smoothed RTT statistic indicates the most recent smoothed Round-Trip
Time (RTT) within the observation period, measured in milliseconds.
It is encoded as a variable-length integer. It is calculated as
defined in <xref target="RFC9002"/>. RTT is a key metric for congestion control, estimating
the time it takes for a packet to travel from the sender to the receiver and
back. The smoothed RTT calculation accounts for both the latest RTT and a
historical average, helping to dampen the effect of short-term network
fluctuations.</t>
      </section>
      <section anchor="minimum-rtt">
        <name>Minimum RTT</name>
        <t>The Minimum RTT statistic indicates the minimum RTT sampled within the
observation period, measured in milliseconds.
It is encoded as a variable-length integer,
This metric provides a baseline for the best-case network latency
observed during the measurement period. A low minimum RTT can indicate a stable
and efficient network path, while a high one might suggest persistent latency
issues.</t>
      </section>
      <section anchor="rtt-variance">
        <name>RTT Variance</name>
        <t>The RTT Variance statistic indicates the most recent RTT deviation within
the observation period, measured in milliseconds.
It is encoded as a variable-length integer.
It is calculated as defined in <xref target="RFC9002"/>. This metric
quantifies the variability of the RTT, providing insight into network jitter and
stability. A low RTT variance suggests a consistent network path, while a high
value indicates significant fluctuations in network latency.</t>
      </section>
      <section anchor="latest-bandwidth">
        <name>Latest Bandwidth</name>
        <t>The Latest Bandwidth statistic indicates the current raw throughput of
the connection, measured in kilobits per second (kbps).
It is encoded as a variable-length integer.
This metric represents the instantaneous sending
capacity as perceived by the sender and is a crucial input for congestion
control algorithms.</t>
      </section>
      <section anchor="maximum-bandwidth">
        <name>Maximum Bandwidth</name>
        <t>The Maximum Bandwidth statistic indicates the maximum raw throughput
sampled within the observation period, measured in kbps.
It is encoded as a variable-length integer.
This metric provides a view of
the peak network capacity observed during the measurement period, which can be
useful for understanding the best possible performance on the current network
path.</t>
      </section>
      <section anchor="throughput">
        <name>Throughput</name>
        <t>The Throughput statistic indicates the useful throughput for data,
excluding retransmissions, within the observation period, measured in kbps.
It is encoded as a variable-length integer. This metric is a
measure of the effective data rate delivered to the receiver's application
layer.
It isolates the useful data rate, providing a more accurate
measure of application-level performance than the raw sending rate, which
includes retransmitted data.</t>
      </section>
      <section anchor="send-rate">
        <name>Send Rate</name>
        <t>The Send Rate statistic indicates the sending rate for all data,
including retransmissions, within the observation period, measured in kbps.
It is encoded as a variable-length integer. This metric
provides a measure of the total data rate at which the sender is transmitting
data.
It is useful for understanding the sender's total load on the network.</t>
      </section>
      <section anchor="receive-rate">
        <name>Receive Rate</name>
        <t>The Receive Rate statistic indicates the receiving rate within the
observation period in kbps.
It is encoded as a variable-length integer.
This metric measures the total rate at which the
receiver is acknowledging data, including both new data and retransmissions.
It is useful for understanding the receiver's perspective on the data
flow and can be used to compare against the sender's rate to identify potential
bottlenecks.</t>
      </section>
      <section anchor="input-rate">
        <name>Input Rate</name>
        <t>The Input Rate statistic indicates the input bitrate from the application
layer within the observation period in kbps.
It is encoded as a variable-length integer.
This metric represents the rate at which
data is being provided to the receiving application.
It gives an end-to-end view of the application data flow.</t>
      </section>
      <section anchor="loss-rate">
        <name>Loss Rate</name>
        <t>The Loss Rate statistic indicates the arithmetic mean of the packet loss
rate samples within the observation period. The value is expressed as a
percentage at 0.1% resolution within a range of 0 to 1000 inclusive.
It is encoded as a variable-length integer.
This metric provides a clear measure of the quality of the network
path, as it quantifies the proportion of packets that are sent but not received.
A high loss rate often indicates network congestion or instability.</t>
      </section>
      <section anchor="buffer-length">
        <name>Buffer Length</name>
        <t>The Buffer Length statistic indicates the current amount of data cached
by the QUIC connection layer buffer when the observation frame is generated
in bytes.
It is encoded as a variable-length integer. This metric reflects
the amount of data the sender is holding in its buffer before transmission,
which can be an important indicator of the sender's ability to keep up with the
application's sending rate and can also be a sign of network congestion.</t>
      </section>
    </section>
    <section anchor="frame-types">
      <name>Frame Types</name>
      <section anchor="congestiondata-frames">
        <name>CONGESTION_DATA Frames</name>
        <t>CONGESTION_DATA frames (type TBD1) provide a list of Network Statistics
values which the sender chooses to share about the state of the network
connection from its viewpoint.</t>
        <artwork><![CDATA[
CONGESTION_DATA Frame {
  Type (i) = TBD1,
  Protected Count (i),
  Protected Network Statistics (..) ...,
  [Integrity Tag (1..)],
  Unprotected Count (i),
  Unprotected Network Statistics (..) ...,
}
]]></artwork>
        <t>CONGESTION_DATA frames contain the following fields:</t>
        <dl>
          <dt>Protected Count:</dt>
          <dd>
            <t>A variable-length integer representing the number of Network Statistics in the
Protected Network Statistics field.</t>
          </dd>
          <dt>Protected Network Statistics:</dt>
          <dd>
            <t>A sequence of Network Statistics objects whose length is given by the
Protected Count.</t>
          </dd>
          <dt>Integrity Tag:</dt>
          <dd>
            <t>A message integrity check,  as described in <xref target="integrity-tag"/>. This
field is absent if Protected Count is zero.
While this document provides some examples, the format of the check
<bcp14>MUST</bcp14> be treated as opaque by the receiver.</t>
          </dd>
          <dt>Unprotected Count:</dt>
          <dd>
            <t>A variable-length integer representing the number of Network Statistics in the
Unprotected Network Statistics field.</t>
          </dd>
          <dt>Unprotected Network Statistics:</dt>
          <dd>
            <t>A sequence of Network Statistics objects whose length is given by Unprotected
Count.</t>
          </dd>
        </dl>
        <t>CONGESTION_DATA frames are not retransmittable, though a loss event might
trigger the generation of a new CONGESTION_DATA frame; see
<xref target="sending-network-statistics"/>.</t>
        <t>CONGESTION_DATA frames can be sent at any point in the connection after 0-RTT
or 1-RTT keys have been established, though useful data will likely not be
available until at least one round-trip has occurred. If a CONGESTION_DATA
frame is received in an Initial or Handshake packet, it <bcp14>MUST</bcp14> be treated as a
connection error of type PROTOCOL_VIOLATION.</t>
        <section anchor="sending-network-statistics">
          <name>Sending Network Statistics</name>
          <t>If an endpoint wishes to receive CONGESTION_DATA_RECALL frames on
future connections with the peer and the peer has set the CACHE flag, the
endpoint <bcp14>MAY</bcp14> send CONGESTION_DATA frames containing the values it
wishes to recall in future connections in the Protected Network Statistics
field. It <bcp14>MAY</bcp14> send additional CONGESTION_DATA frames when these values have
changed significantly and it wishes to update the stored values, or when a
previous CONGESTION_DATA frame is declared lost.</t>
          <t>If the peer has set the CONSUME flag, an endpoint <bcp14>SHOULD</bcp14> send
CONGESTION_DATA frames periodically throughout the connection's lifetime.
However, an implementation <bcp14>SHOULD NOT</bcp14> send additional CONGESTION_DATA frames
if the connection has been idle since the last such frame was sent.</t>
          <t>In addition to any values the endpoint placed in Protected Network Statistics,
the endpoint includes such other values as it is willing to provide in the
Unprotected Network Statistics field.</t>
          <t>If an endpoint sends multiple CONGESTION_DATA frames, it is not required to
include the same set of network statistics in each frame. For example, some
statistics are more useful sent at a regular frequency, while others only need
to be sent if they have changed significantly from the last value known to have
been received. However, as the server does not control which CONGESTION_DATA
will be cached, it <bcp14>SHOULD</bcp14> include the same Protected Network Statistics fields
in each frame.</t>
        </section>
        <section anchor="integrity-tag">
          <name>Integrity Tag</name>
          <t>The integrity tag is calculated over the Protected Count and Protected Network
Statistics field by the sender.
This field is a variable-length set of bytes, whose format is known only
to the sender. The purpose of this field is to provide suitable assurance
to the sender that, when the statistics are later sent back to it through
the CONGESTION_DATA_RECALL frame, that they
have not been modified. This is often called a "message authentication
code" (MAC). To emphasize that only a portion of a message is protected,
this document does not use that term.</t>
          <t>The algorithm for generating and verifying an integrity tag <bcp14>MAY</bcp14>
depend on the ordering of the Protected fields although some implementations
may perform a simple canonicalization by sorting the statistics by
type identifier. Because of this, receivers <bcp14>SHOULD NOT</bcp14> modify the
content or ordering of any of the Protected statistics in any way,
unless they have out-of-band knowledge that it is safe to do so.</t>
          <t>If the server has a nonce or other private material, it can hash that
with the incoming Protected fields and use that as the outgoing Integrity
tag. This can be either a simple hash of both parts, or the HMAC keyed
hash <xref target="RFC2104"/> can be used.</t>
          <t>Being able to change algorithms without large-scale protocol modifications
is important. Servers may wish to use a fixed-number of leading bytes to
indicate the algorithm they are using. It is also a best practice to
generate new private data periodically, while still allowing old messages
to be validated. To handle this, it is a good idea to use a fixed
number of secondary bytes to act as a key or nonce identifier.</t>
          <t>A sample implementation is provided in <xref target="integrity-impl"/>.</t>
        </section>
      </section>
      <section anchor="congestiondatarecall-frames">
        <name>CONGESTION_DATA_RECALL Frames</name>
        <t>CONGESTION_DATA_RECALL frames (type TBD2) contain a list of Network
Statistics values which the sender received from the recipient during a previous
connection.</t>
        <t>This frame <bcp14>SHOULD</bcp14> be sent as early as possible in the connection once 0-RTT or
1-RTT keys are available. While the frame <bcp14>MAY</bcp14> be sent at any point in the
connection, if it arrives after the recipient has exited slow-start the values
it contains will likely not be useful.</t>
        <artwork><![CDATA[
CONGESTION_DATA_RECALL Frame {
  Type (i) = TBD2,
  Protected Count (i),
  Protected Network Statistics (..) ...,
  Integrity Tag (1..),
}
]]></artwork>
        <artwork><![CDATA[
*NOTE* Do we want to allow unprotected statistics here also, with the
caveat that the receiver may reject them, or even the whole message?
]]></artwork>
        <t>CONGESTION_DATA_RECALL frames contain the following fields:</t>
        <dl>
          <dt>Protected Count:</dt>
          <dd>
            <t>A variable-length integer representing the number of Network Statistics in the
Protected Network Statistics field, received in a CONGESTION_DATA frame from
the peer on a previous connection.</t>
          </dd>
          <dt>Protected Network Statistics:</dt>
          <dd>
            <t>A sequence of Network Statistics objects whose length is given by Protected
Count, received in a CONGESTION_DATA frame from the peer on a previous
connection.</t>
          </dd>
          <dt>Integrity Tag:</dt>
          <dd>
            <t>The integrity tag, received in a CONGESTION_DATA frame from
the peer on a previous connection. See <xref target="integrity-tag"/>.</t>
          </dd>
        </dl>
        <t>If a CONGESTION_DATA_RECALL frame is received in an Initial or Handshake
packet, it <bcp14>MUST</bcp14> be treated as a connection error of type PROTOCOL_VIOLATION.</t>
        <section anchor="recalling-network-statistics">
          <name>Recalling Network Statistics</name>
          <t>Upon receipt of a CONGESTION_DATA_RECALL frame, an endpoint computes the
expected Integrity Tag value as in <xref target="integrity-tag"/>. If the Integrity Tag value
does not match, the frame is ignored.</t>
          <t>If the tag is acceptable, the endpoint takes the network statistics contained in
the frame and incorporates them into its congestion control strategy. For
example, it might exit the Reconnaissance Phase of Careful Resume
<xref target="CAREFUL-RESUME"/>. The specifics of how this is done are outside the scope of
this extension.</t>
          <t>Endpoints <bcp14>MUST NOT</bcp14> process more than one CONGESTION_DATA_RECALL frame on a
connection. Subsequent CONGESTION_DATA_RECALL frames <bcp14>MUST</bcp14> be ignored without
processing, regardless of whether the first frame was valid.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Clients choosing to return network statistics to a server provide a potential
tracking mechanism. However, this tracking mechanism provides no additional
capabilities to a server beyond those already enabled by the address validation
tokens defined in <xref section="8.1.3" sectionFormat="of" target="QUIC"/>. While address validation tokens are
opaque and can contain any data the server might wish to recall, the statistics
being transported by this mechanism are visible to the clients. Clients can
inspect the values to ensure that nothing objectionable is being saved;
implementations <bcp14>MAY</bcp14> choose not to send CONGESTION_DATA_RECALL packets which
contain statistics they cannot interpret.</t>
      <t>Clients <bcp14>SHOULD NOT</bcp14> send CONGESTION_DATA_RECALL packets on connections where they
would not have sent an Address Validation token if one were available. A client
<bcp14>MAY</bcp14> also decide not to send the packet if the length of the integrity tag does
not correspond to a digest length and a few additional bytes. This is
admittedly inelegant. and could be avoided if the format of the tag were
publicly defined, and an IANA registry for tag algorithms defined.</t>
      <t>Clients <bcp14>SHOULD</bcp14> discard stored network statistics when other potential tracking
mechanisms (e.g. HTTP Cookies) are cleared by the user.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to take the following actions, replacing
"ThisRFC" with the RFC number when assigned.</t>
      <section anchor="new-quic-transport-parameters-entry">
        <name>New QUIC Transport Parameters Entry</name>
        <t>Add a new entry to the "QUIC Transport Parameters" registry with the
following values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Value</td>
              <td align="left">TBD</td>
            </tr>
            <tr>
              <td align="left">Parameter Name</td>
              <td align="left">support_congestion_data</td>
            </tr>
            <tr>
              <td align="left">Status</td>
              <td align="left">permanent</td>
            </tr>
            <tr>
              <td align="left">Specification</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">Date</td>
              <td align="left">TBD</td>
            </tr>
            <tr>
              <td align="left">Change Controller</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">Contact</td>
              <td align="left">quic@ietf.org</td>
            </tr>
            <tr>
              <td align="left">Notes</td>
              <td align="left">None</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="net-type-registry">
        <name>New QUIC Network Type Registry</name>
        <t>A new registry "QUIC Network Type" is created with the following fields:</t>
        <dl>
          <dt>Value:</dt>
          <dd>
            <t>Numeric value</t>
          </dd>
          <dt>Meaning:</dt>
          <dd>
            <t>Brief textual description</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>A pointer to the defining document</t>
          </dd>
        </dl>
        <t>The registration policy for this registry is "Specification Required" as
described in <xref section="4.6" sectionFormat="comma" target="RFC8126"/>.</t>
        <t>The initial value of the registry is as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">Reserved</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">Wire/Ethernet</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">Reserved</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">WLAN</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">2G Mobile</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">3G Mobile</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x06</td>
              <td align="left">4G Mobile</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">0x07</td>
              <td align="left">5G Mobile</td>
              <td align="left">ThisRFC</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="net-stats-registry">
        <name>New QUIC Network Statistics Registry</name>
        <t>A new "QUIC Network Statistics" registry is created.
It follows
the registration policies defined in <xref section="22.1" sectionFormat="comma" target="RFC9000"/>.
In addition to the fields described in that section, permanent registrations
<bcp14>MUST</bcp14> include the following fields:</t>
        <dl>
          <dt>Type:</dt>
          <dd>
            <t>The type of statistic, as described in ThisRFC, Section <xref target="net-stats"/>.</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>A short name for the field.</t>
          </dd>
        </dl>
        <t>The initial value of the table is:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0xc8</td>
              <td align="left">Timestamp</td>
            </tr>
            <tr>
              <td align="left">0xca</td>
              <td align="left">Path Tuple</td>
            </tr>
            <tr>
              <td align="left">0xcb</td>
              <td align="left">Slow Start Status</td>
            </tr>
            <tr>
              <td align="left">0xcc</td>
              <td align="left">Network Type</td>
            </tr>
            <tr>
              <td align="left">0xcd</td>
              <td align="left">Maximum Congestion Window</td>
            </tr>
            <tr>
              <td align="left">0xce</td>
              <td align="left">Maximum In-Flight Data</td>
            </tr>
            <tr>
              <td align="left">0xcf</td>
              <td align="left">Smoothed RTT</td>
            </tr>
            <tr>
              <td align="left">0xd0</td>
              <td align="left">Minimum RTT</td>
            </tr>
            <tr>
              <td align="left">0xd1</td>
              <td align="left">RTT Variance</td>
            </tr>
            <tr>
              <td align="left">0xd2</td>
              <td align="left">Latest Bandwidth</td>
            </tr>
            <tr>
              <td align="left">0xd3</td>
              <td align="left">Maximum Bandwidth</td>
            </tr>
            <tr>
              <td align="left">0xd4</td>
              <td align="left">Throughput</td>
            </tr>
            <tr>
              <td align="left">0xd5</td>
              <td align="left">Send Rate</td>
            </tr>
            <tr>
              <td align="left">0xd6</td>
              <td align="left">Receive Rate</td>
            </tr>
            <tr>
              <td align="left">0xd7</td>
              <td align="left">Input Rate</td>
            </tr>
            <tr>
              <td align="left">0xd8</td>
              <td align="left">Loss Rate</td>
            </tr>
            <tr>
              <td align="left">0xd9</td>
              <td align="left">Buffer Length</td>
            </tr>
          </tbody>
        </table>
        <t>These fields are permanent, and therefore all have the following values
for the common fields:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Status</td>
              <td align="left">permanent</td>
            </tr>
            <tr>
              <td align="left">Specification</td>
              <td align="left">ThisRFC</td>
            </tr>
            <tr>
              <td align="left">Date</td>
              <td align="left">TBD</td>
            </tr>
            <tr>
              <td align="left">Change Controller</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">Contact</td>
              <td align="left">quic@ietf.org</td>
            </tr>
            <tr>
              <td align="left">Notes</td>
              <td align="left">None</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative 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"/>
            <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="RFC8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert"/>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms. This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP. Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t>
              <t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic. They may also need to implement additional mechanisms, depending on how they use UDP.</t>
              <t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t>
              <t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="145"/>
          <seriesInfo name="RFC" value="8085"/>
          <seriesInfo name="DOI" value="10.17487/RFC8085"/>
        </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>
        <reference anchor="QUIC-TLS">
          <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="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CAREFUL-RESUME">
          <front>
            <title>Convergence of Congestion Control from Retained State</title>
            <author fullname="Nicolas Kuhn" initials="N." surname="Kuhn">
              <organization>Thales Alenia Space</organization>
            </author>
            <author fullname="Emile Stephan" initials="E." surname="Stephan">
              <organization>Orange</organization>
            </author>
            <author fullname="Gorry Fairhurst" initials="G." surname="Fairhurst">
              <organization>University of Aberdeen</organization>
            </author>
            <author fullname="Raffaello Secchi" initials="R." surname="Secchi">
              <organization>University of Aberdeen</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="1" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies a cautious method for Internet transports
   that enables fast startup of congestion control for a wide range of
   connections, known as "Careful Resume".  It reuses a set of computed
   congestion control parameters that are based on previously observed
   path characteristics between the same pair of transport endpoints.
   These parameters are saved, allowing them to be later used to modify
   the congestion control behaviour of a subsequent connection.

   It describes assumptions and defines requirements for how a sender
   utilises these parameters to provide opportunities for a connection
   to more rapidly get up to speed and rapidly utilise available
   capacity.  It discusses how use of this method impacts the capacity
   at a shared network bottleneck and the safe response that is needed
   after any indication that the new rate is inappropriate.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-careful-resume-24"/>
        </reference>
        <reference anchor="COOKIES">
          <front>
            <title>HTTP State Management Mechanism</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines the HTTP Cookie and Set-Cookie header fields. These header fields can be used by HTTP servers to store state (called cookies) at HTTP user agents, letting the servers maintain a stateful session over the mostly stateless HTTP protocol. Although cookies have many historical infelicities that degrade their security and privacy, the Cookie and Set-Cookie header fields are widely used on the Internet. This document obsoletes RFC 2965. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6265"/>
          <seriesInfo name="DOI" value="10.17487/RFC6265"/>
        </reference>
        <reference anchor="STUN">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with Network Address Translator (NAT) traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints, and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs, and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution. This is an important change from the previous version of this specification (RFC 3489), which presented STUN as a complete solution.</t>
              <t>This document obsoletes RFC 3489. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5389"/>
          <seriesInfo name="DOI" value="10.17487/RFC5389"/>
        </reference>
        <reference anchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
      </references>
    </references>
    <?line 746?>

<section anchor="integrity-impl">
      <name>Sample Integrity Tag implementation</name>
      <t>This section is not normative.</t>
      <t>We define an Integrity Tag format that consists of a one-byte algorithm
identifier, two
bytes of private nonce, and a digest. Based on the choice of
algorithm, this is a 32-byte SHA256 digest. The entire tag is therefore
35 bytes long.</t>
      <artwork><![CDATA[
*NOTE* Do we need ASCII art for that layout?
]]></artwork>
      <t>The digest will be computed over the nonce, five bytes of 0x01, and the
wire-format of the protected fields.</t>
      <t>In this example, we will use our third nonce, which is the
ASCII values of "quic-new-frame":</t>
      <artwork><![CDATA[
algid = 1
keyid = 3
nonces[] = [
    [ None ], [ None ],
    [113, 117, 105, 99, 45, 110, 101, 119, 45, 102, 114, 97, 109, 101]
    ]
padding = [ 0x01, 0x01, 0x01, 0x01, 0x01 ]
]]></artwork>
      <t>The Network Statistics values are:</t>
      <artwork><![CDATA[
*NOTE* TBD; need a sample network statistics
]]></artwork>
      <t>Which have the following wire representation:</t>
      <artwork><![CDATA[
*NOTE* Calculate them
]]></artwork>
      <t>The <tt>value</tt> for the Integrity tag is represented by the
following psuedo-code:</t>
      <artwork><![CDATA[
digest = sha56.new()
digest.add(14, nonce[2])
digest.add(5, padding)
digest.add(??, network_statistics)
value = digest.finish()
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIABAW6WgAA+19644bR5bm/3iKmDIWIzVIqqp0abt6POpSqdSuGd1WKtvb
MAxPkhkks4vMZGckq8SW3MDMz3mAwf5ZYLH7JvswO7Nvsec750RkJJksyZ72
LhZYw7DJZGRczvU7J05EDYdD0xTNwp3Yg/N3k3lWzopyZs+qcuZ8U1QlPjZ1
tbBPsyazRWn/49cXZwcmG49rd00vJS25xbM6W7oDM8kaN6vqzYn1TW5MXk1K
en5i8zqbNsPNOiuHf1wXk+Ekvj7M6fXhgt7zjfHr8bLwnh43mxW9dnF++cza
z2y28BUNWpS5Wzn6T9kcDOyBy4umqotsgS8Xp0/of1VNn95cPjsw5Xo5dvWJ
oe7diaHxvCv92p/Ypl47Q0u4b7LaZdTrt25sszK3F2Xj6tI19rLOSr+q6ubA
3FT11ayu1itqJxS4cht6mJ8YO2Sa4P/tavARZOOn1P90vbC18+slDenKNc3E
2m5/1spSD76locCD3+FnPF9mxYKeg16/LVwzHVX1DM+zejKn5/OmWfmTe/fQ
DI+KazcKze7hwb1xXd14dw8d3MOLs6KZr8f06oviyj0p/Lxa8Y9Dny19Vmdo
I4w4MSZbN/OqxjLpqbW0kIWw8t/+2z/+r//yL//zP/8zP8/8pCiexR//bl3O
5lllf0+c5t9pMllZ/CkDcU7sk03j8qycOP7NyQohFX8o+L3fjkOD0aRa9oz9
T//yr/+9d+DnrrD/qciqTx30HbVduGLk59lN+bFhQS8rBOvp//Qqoz7tpZvM
y2pRzQrn05GWY37xt+7a/XHtptV6NHbGlFW9pPevWSIgCSf2zbOzLw4PD40p
ymn7qxkOhzYb+6bOJo0xl/PCizbZ3E2L0nmb2dLdkFir0NopVNHezIvJ3Loy
Gy+ojch/A/ki/VlVRdl401SWll+7Hvkl9SVBoHGrdWObuaMhGugCfi/dhJvS
JO11VhfV2pvVul5V3vmRvWhYW+k/C5I+Uqw44F97W92U+wej6YydJSpWLjfj
bHKFJ0Vjxxta4sq5mkfESorc1Ux8m8nsxo7MV4nVVVNqPF03a1mWznUkZFwW
eb4g4n8GXa+rfM0/GnO6WLTaHwlJk6dOauJaUbsck3GkQDSNtSfK9Cl9tiDb
R22WbIjoBUyW+iPzSS8Wta2xTpoij6GWzr5//1fE+s8PP3/4448j+6IiO9hD
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

-->

</rfc>
