<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.17 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-huitema-quic-ts-04" category="exp">

  <front>
    <title abbrev="QUIC-TS">Quic Timestamps For Measuring One-Way Delays</title>

    <author initials="C." surname="Huitema" fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <postal>
          <street>427 Golfcourse Rd</street>
          <city>Friday Harbor</city>
          <code>WA 98250</code>
          <country>USA</country>
        </postal>
        <email>huitema@huitema.net</email>
      </address>
    </author>

    <date year="2021"/>

    <area>Transport</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The TIME_STAMP frame can be added to Quic packets when one way delay measurements
is useful. The timestamp is set to the number of microseconds from the
beginning of the connection to the time at which the packet is sent. The draft
defines the "enable_time_stamp" transport parameter for negotiating the
use of this extension frame, and a new frame types for the time_stamped frame.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>The QUIC Transport Protocol <xref target="I-D.ietf-quic-transport"/> provides a
secure, multiplexed connection for transmitting reliable streams of
application data. The algorithms for QUIC Loss Detection and Congestion Control
<xref target="I-D.ietf-quic-recovery"/> use measurement of Round Trip Time (RTT) to
determine when packets should be retransmitted. RTT measurements are useful,
but there are however many cases in which more precise One-Way Delay (1WD)
measurements enable more efficient Loss Detection and Congestion Control.</t>

<t>An example would be the Low Extra Delay Background
Transport (LEDBAT) <xref target="RFC6817"/> which uses variations in transmission
delay to detect competition for transmission resource. Experience shows
that while LEDBAT may be implemented using RTT measurements, this is 
inefficient because queues  on the return path or delayed ACKs will
cause unnecessary slowdowns. Using 1WD solves
these issues. Similar argument can be made for most delay-based
congestion control algorithms algorithms.</t>

<t>We propose to enable one way delay measurements in QUIC by defining
a TIME_STAMP frame carrying the time at which a packet is sent. The use of this
extension frame is negotiated with a transport parameter,
"enable_time_stamp". When the extension is negotiated by
both parties, this frame can be used in conjunction with other
such as ACK to measure one way delays.</t>

<section anchor="terms-and-definitions" title="Terms and Definitions">

<t>The keywords "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>

</section>
</section>
<section anchor="specification" title="Specification">

<t>The enable_time_stamp transport parameter used for negotiating the use
of the extension frame
is defined in <xref target="negotiation"/>. The time_stamp frame format is defined
in <xref target="TIME_STAMP-format"/>.</t>

<section anchor="negotiation" title="Negotiation">

<t>The use of the time_stamp frame extension is negotiated using a transport
parameter:</t>

<t><list style="symbols">
  <t>enable_time_stamp (TBD)</t>
</list></t>

<t>The enable time stamp transport parameter is included if the endpoint
wants to receive or accepts to send time_stamp frames for this connection. 
This parameter is encoded as a variable integer as specified in
section 16 of <xref target="I-D.ietf-quic-transport"/>. It
can take one of the following three values:</t>

<t><list style="numbers">
  <t>I would like to receive TIME_STAMP frames</t>
  <t>I am able to generate TIME_STAMP frames</t>
  <t>I am able to generate TIME_STAMP frames and I would like to receive them</t>
</list></t>

<t>Peers receiving another value SHOULD terminate the connection with a TRANSPORT
PARAMETER error.</t>

<t>A peer that advertises its capability of sending TIME_STAMP frames using
option values 2 or 3 MUST NOT send these frames if the other
peer does not announce advertise its desire to receive them by
sending the enable_time_stamp TP with option 1 or 3. This condition is
described as "successful sending negotiation" in <xref target="sending"/>.</t>

<t>Peers that receive TIME_STAMP frames when they have not advertised
their desire to receive them MAY terminate the connection with a PROTOCOL
VIOLATION error.</t>

<t>As specified in <xref target="sending"/>, TIME_STAMP frames MUST NOT be sent in 0-RTT
packets. Clients that use 0-RTT MUST NOT reuse a value of the server's
enable_time_stamp parameter that they remember from the resumed session.</t>

</section>
<section anchor="sending" title="Sending TIME_STAMP frames">

<t>Following successful sending negotiation, a peer SHOULD add a time_stamp frame to
1RTT packets carrying an ACK frame. This specification does not
impose a placement of TIME_STAMP frames in the packet. They MAY be sent
either before or after the ACK frame.</t>

<t>Implementations SHOULD NOT send more than one TIME_STAMP frame per
packet, but they MAY send more than one in rare circumstances. When
multiple TIME_STAMP frames are present in a packet, the receiver
retains the frame indicating the largest timestamp.</t>

<t>Implementations MUST NOT send
the TIME_STAMP frame in Initial, 0-RTT or Handshake packets, because
there is a risk that the peer will receive such packets before the
negotiation completes. This restriction may appear excessive because
some Handshake packets are typically sent after the negotiation
completes, but restricting TIME_STAMP frames to 1RTT packets is
simpler and less error prone than allowing the
TIME_STAMP frame in just a fraction of Handshake packets.</t>

</section>
<section anchor="TIME_STAMP-format" title="TIME_STAMP frame format">

<t>TIME_STAMP frames are identified by the frame
type:</t>

<t><list style="symbols">
  <t>TIME_STAMP (TBD)</t>
</list></t>

<t>TIME_STAMP frames carry a single parameter, the time stamp,
encoded as a variable length interger. They are formatted as
shown in <xref target="time-stamp-frame-format"/>, which uses the notational 
conventions specified in Section 1.3 of <xref target="I-D.ietf-quic-transport"/>.</t>

<figure title="TIME_STAMP Frame Format" anchor="time-stamp-frame-format"><artwork><![CDATA[
   TIME_STAMP Frame {
     Type (i) = TBD,
     Time Stamp (i)
   }
]]></artwork></figure>

<t>The time stamp encodes the number of microseconds since the beginning
of the connection, as measured by the peer at the time at which the packet
is sent. It is encoded using the exponent selected by the peer
in the ack_delay_exponent. The exponent reduced time stamp is encoded 
as a variable length integer.</t>

<t>The beginning of the connection is defined as follow:</t>

<t><list style="symbols">
  <t>for the client, the time when the first Initial packet is sent;</t>
  <t>for the server, the time when the first Initial packet is received.</t>
</list></t>

<t>TIME_STAMP frames are not ack-eliciting. Their loss does not
require retransmission.</t>

</section>
<section anchor="rtt-measurements" title="RTT Measurements">

<t>RTT measurements are performed as specified in Section 4 of
<xref target="I-D.ietf-quic-recovery"/>, without reference to the Timestamp
parameter of the Timestamped ACK frames.</t>

</section>
<section anchor="one-way-delay-measurements" title="One-Way Delay Measurements">

<t>An endpoint generates a One Way Delay Sample on receiving a
packet containing both a TIME_STAMP frame and an ACK frame that
meets the following two conditions:</t>

<t><list style="symbols">
  <t>the largest acknowledged packet number is newly acknowledged, and</t>
  <t>at least one of the newly acknowledged packets was ack-eliciting.</t>
</list></t>

<t>The One Way Delay sample, latest_1wd, is generated as the time elapsed since
the largest acknowledged packet was sent, corrected for the 'phase_shift' difference
between connection time at the sending peer and connection time at the
receiving peer.</t>

<t>latest_1wd = time_stamp - send_time_of_largest_acked - phase_shift</t>

<t>By convention, the phase_shift is estimated upon reception of the first
RTT sample, noted as first_rtt. It is set to:</t>

<t>phase_shift = time_stamp - send_time_of_largest_acked - first_rtt. /2</t>

<t>In that formula, we assume that the connection times are measured in
microseconds since the beginning of the connection.</t>

<t>We understand that clocks may drift over time, and that simply
estimating a phase shift at the beginning of a connection may be
too simplistic for long duration connections. Implementations
MAY adopt different strategies to reestimate the phase shift
at appropriate intervals. Specifying these strategies is beyond
the scope of this document.</t>

</section>
</section>
<section anchor="discussion" title="Discussion">

<t>This document replaces an earlier proposal to modify the format
of the ACK frame by including a time stamp inside the modified
frame. The revised proposal encodes the time stamp independently
of the ACK frame, which requires slightly more overhead to
encode the type of the TIME_STAMP frame.</t>

<t>Defining an independent frame allows for more flexibility. This
draft defines the combination of TIME_STAMP with ACK frames, but
they could be combined with other frames as well. For example,
adding a TIME_STAMP to packets carrying a Path Response could
allow measuring one way delays before deciding
to migrate to a new path.</t>

<section anchor="management-of-time" title="Management of Time">

<t>There are two known issues with deducing one way delays from RTT
measurements: clock drift and undefined phase difference.</t>

<t>The phase difference problem is easy to understand. We start from a list
of measurements associating the send time of packet number x (s[x]), the
receive time of the acknowledgement of packet (a[x]), and the time stamp
indicating when packet x was received by the peer (p[x]). The peer's
time stamp are expressed in the peer's clock.</t>

<t>Suppose that we model the peer's clock as local time plus phase
difference f, and that we model the rtt as the sum of two one way
delays, up (u[x]) and down (d[x]). We get:</t>

<figure><artwork><![CDATA[
    u[x] = p[x] + f - s[x]

    d[x] = a[x] - p[x] - f
]]></artwork></figure>

<t>Just looking at the equation shows that the value of f cannot be
determined from the a series of measurement (s[x], a[x], p[x]). You can
just add constraints that all u[x] and d[x] are positive numbers, which
gives a range of plausible values for f:   max(s[x] - p[x]) &lt; f &lt;
min(a[x]-p[x]). In case you wonder, you get similar formulations in a
multipath scenario. The plausible range may narrow to the min rtt of the
shortest path, but no further.</t>

<t>The phase difference uncertainty is not a big issue in practice, because
control algorithms are much more interested in the variations of the
delays than by their absolute values. Suppose we want to compare one way
delays at measurement (x) and (y). We get:</t>

<figure><artwork><![CDATA[
    u[x] = p[x] + f - s[x]

    u[y] = p[y] + f - s[y]

    u[x] - u[y] = p[x] - p[y] - s[x] + s[y]
]]></artwork></figure>

<t>The phase difference does not affect the measurement of variations in the
one way delay.</t>

<t>The clock drift is another matter. All the equations above assume that
the local clock and the remote clock have the same frequency. This is an
approximation. Clocks drift over time. Instead of just considering a
stable phase difference, one should consider the sum of a phase
difference and a time-varying drift component. Estimating drift is a
complex problem. This was studied in detail in the development of the
Network Time Protocol (NTP) <xref target="RFC5905"/>. In theory, implementations of
Quic could copy the algorithms of NTP to build a model of the clocks
used by the local node and the peer. That would be very complex.</t>

<t>Fortunately, implementations of Quic no not need to implement something as
complex as NTP. Most time based algorithms are only interested in
variations of delays over a short horizon. Clock drift happens at a slow
pace, maybe 1 millisecond per minute. Time base congestion control
algorithms already have to cope with the potential drift of the minimum RTT
due to changing network conditions. They do that by periodically restarting
themeasurement of the minimum RTT after some delay, typically less than a
minute. A simple implementation of one way delay measurements could
follow the same approach, for example resetting the phase difference
every 30 seconds or so.</t>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>The Timestamp value in the TIME_STAMP frame is asserted by the sender
of the packet. Adversarial peers could chose values of the time stamp
designed to exercise side effects in congestion control algorithms
or other algorithms relying on the one-way delays. This can be
mitigated by running plausibility checks on the received values.
For example, each peer can maintain statistics not just on the
One Way Delays, but also on the differences between One Way Delays
and RTT, and detect outlier values. Peers can also compare the 
differences between timestamps in packets carrying acknowledgements and
the differences between the sending times of corresponding packets,
and detect anomalies if the delays between acknowledging packets appears
shorter than the delays when sending them.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document registers a new value in the QUIC Transport Parameter
Registry:</t>

<t>Value:  TBD (using value 0x7158 in early deployments)</t>

<t>Parameter Name:  enable_time_stamp</t>

<t>Specification:  Indicates that the connection should use TimeStamped ACK frames</t>

<t>This document also registers a new value in the QUIC Frame Type registry:</t>

<t>Value:  TBD (using value 757 in early deployments)</t>

<t>Frame Name:  TIME_STAMP</t>

<t>Specification:  Time stamp set at the time packet was sent</t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Thanks to Dmitri Tikhonov, Tal Misrahi and Watson Ladd for their reviews and suggestions.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor="I-D.ietf-quic-transport">
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>

<author initials='J' surname='Iyengar' fullname='Jana Iyengar'>
    <organization />
</author>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<date month='January' day='14' 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.  DO NOT DEPLOY THIS VERSION OF QUIC  DO NOT DEPLOY THIS VERSION OF QUIC UNTIL IT IS IN AN RFC.  This version is still a work in progress.  For trial deployments, please use earlier versions.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org (mailto:quic@ietf.org)), which is archived at https://mailarchive.ietf.org/arch/search/?email_list=quic  Working Group information can be found at https://github.com/quicwg; source code and issues list for this draft can be found at https://github.com/quicwg/base-drafts/labels/-transport.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-quic-transport-34' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-34.txt' />
</reference>



<reference anchor="I-D.ietf-quic-recovery">
<front>
<title>QUIC Loss Detection and Congestion Control</title>

<author initials='J' surname='Iyengar' fullname='Jana Iyengar'>
    <organization />
</author>

<author initials='I' surname='Swett' fullname='Ian Swett'>
    <organization />
</author>

<date month='January' day='14' year='2021' />

<abstract><t>This document describes loss detection and congestion control mechanisms for QUIC.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org (mailto:quic@ietf.org)), which is archived at https://mailarchive.ietf.org/arch/ search/?email_list=quic.  Working Group information can be found at https://github.com/quicwg; source code and issues list for this draft can be found at https://github.com/quicwg/base-drafts/labels/-recovery.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-quic-recovery-34' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-quic-recovery-34.txt' />
</reference>



<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC6817" target='https://www.rfc-editor.org/info/rfc6817'>
<front>
<title>Low Extra Delay Background Transport (LEDBAT)</title>
<author initials='S.' surname='Shalunov' fullname='S. Shalunov'><organization /></author>
<author initials='G.' surname='Hazel' fullname='G. Hazel'><organization /></author>
<author initials='J.' surname='Iyengar' fullname='J. Iyengar'><organization /></author>
<author initials='M.' surname='Kuehlewind' fullname='M. Kuehlewind'><organization /></author>
<date year='2012' month='December' />
<abstract><t>Low Extra Delay Background Transport (LEDBAT) is an experimental delay-based congestion control algorithm that seeks to utilize the available bandwidth on an end-to-end path while limiting the consequent increase in queueing delay on that path.  LEDBAT uses changes in one-way delay measurements to limit congestion that the flow itself induces in the network.  LEDBAT is designed for use by background bulk-transfer applications to be no more aggressive than standard TCP congestion control (as specified in RFC 5681) and to yield in the presence of competing flows, thus limiting interference with the network performance of competing flows.  This document defines  an Experimental Protocol for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='6817'/>
<seriesInfo name='DOI' value='10.17487/RFC6817'/>
</reference>



<reference  anchor="RFC5905" target='https://www.rfc-editor.org/info/rfc5905'>
<front>
<title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
<author initials='D.' surname='Mills' fullname='D. Mills'><organization /></author>
<author initials='J.' surname='Martin' fullname='J. Martin' role='editor'><organization /></author>
<author initials='J.' surname='Burbank' fullname='J. Burbank'><organization /></author>
<author initials='W.' surname='Kasch' fullname='W. Kasch'><organization /></author>
<date year='2010' month='June' />
<abstract><t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5905'/>
<seriesInfo name='DOI' value='10.17487/RFC5905'/>
</reference>




    </references>




  </back>

<!-- ##markdown-source:
H4sIALKyGGAAC5VabXMbN5L+jl+Bkz9EviN5lpNsEt1u3cmSvdGdZekkZl1b
2ZQLnAFJrIaDWWBGFE/l/PZ7uhvzwhc5WdduSA0HQHej++mnGxiPx6p2dWFP
9f82LtNTt7KxNqsq6nc+6CtrYhNcudDXpR1/NBt9YQuzicrMZsE+YNBPl+fj
6Z3KfVaaFWbJg5nX42Xjarsy439gznEdx6++UZmp7cKHzam2j5XK8depfv3q
9YlSWK/MP5nCl3i0sVEpV4VTXYcm1q9fvfrh1WtlgjWnehpMGSsfanW/PtWX
ZW1DaevxBS2pVOZzCHqqmzg2MXNOVe5U/1z7bKQjxgQ7j/i2WcmXzK9Wtqzj
L0qZpl76cKo0/xunT61dGU/1+UT/KMp0z0XR82VwsXam3PvdB0hxE9wDdNTX
We2rJkLabNK9ESGNrU/1N6+/03/2xTzzTYhW3+bdG5mrYal3weWw+Y8mzHzo
f/M51v94pn/4/vW3rwaPm7Im+/50d9Y9hFyuONVpP/4rfU5gNqXG47E2M8hi
Mvw1XVo9vbx6++luenZ1o+cBWuoM6s2sNnluc1178ZHKZPe2jnq9tKXGpuk1
ZMzJL/SK/cWyZZWL2As7b4qJpsnr1rU0foi2pvlqPC+b1cwG7ed65bLgo818
mUcI4Ff0u5rZhStL8kG8QgPwe2mz2vmynYKm1qaGRC5b8hORUVYqaxGAXVPl
du5KG/mtI1uaWWE/0fhPLNsR3C45GeYgG8DJ9ByhUMJ7sd01CUJiQTURCGvY
x9qWkQRis400HFobDFknO9abCkvSNK24shysyi9MZDdWLs8Lq9QLcu7g84a1
lL2hSOsjAP7l4dq+0E9P/3I5vpg4W89TuLXvfP6sq+AfXI6ljYJdsTMjvWqK
2lWFfcTaA0uybDRy5WrWMdjCkXHYWc0qQlllqqpwCGQagAg2YldTIK5dvVyJ
hizoex8jsKJOs5M9zn25gAPQn/gK9Qq1J3vA5j/YsIHoZN+BO5Gtb+HhOWzg
KsYpfXw7nb6ED2BPsUsrR65IPtk6aFz6psjJgYPtdLP5RGPclqtq4Evy1ZGa
NTXtEp7Q06VfW0ikV6bcIBwibOnK5GgrjxcqyOwg6xZA6uOTjxcv1dYa4msy
yM7nLnOk1u8yFNzjrISXwWMww7rVinzpvV/rt4/QLi38BrovAhlK9c5y/P7t
xZsz2Orp6T9v353/4fuT72BhUaIhlR5McLytrF2yVSSPVhLYCLSchSTgrCxS
xo7T8MuwcwSUZXYCmSoboGFmaRvWUdVLCVAoINLApBvSwpFSZCI4ZBPJ9Xa3
ZyRRhv8p7HFnupnNDHnJPxrbQAdNeLDkvW4COUG9BBQLMGHqs/P/AWS5olAy
qiHXtzGasNGx8Ovcr8s40T+xBNg9JI3iwZLcFm9DP6wx0Xdu5QoT4BqLht0y
IeTK5JbNsfKxljXHM3hLjrTU7WYmuzkMmP4r9vgjeZOvAIFk7+QvzwMsbRUH
24x+BapBcmUOgXgImwRbO1BpDgLlANrUDrTRiy0SwqhriI5JDmDmSB0A14n+
SPFJcvTzbs8426iZx6SYqHa23fqtbATxctId5vx7U0rcsCCewlbFhhSLtOFk
xmSxbTuStV+80FOgRuSYu2D7cQQI3N7bzdoH5KGjq5/upkcj+dQfrvn77VsY
/vbtBX2/+/Hs/fvuS/vG3Y/XP73H7yp960eeX19dvf1wIYPxVO88ujr765Fk
kKPrm+nl9Yez90cclbQd4Fnid4RN0I7ih3gQUIisB7WB9llwMzHRm/MbffIN
5QiE/euTkx8Q9vIHIOCbz58V4aUs5stio+VPmHGjgfUWjo5JTFHA9JWrTYH9
MIyr61ITRJIZ9V0FBJynvCDW29v6g2mVN/JAbqUfVEr2O/5HpEIyOOv39NQN
9eXnzz3RSKuK32CJlWEfT0MVD+0DZSxvYAJ2iw/9nPrpxXAF0a6LjwNrPefX
gmyDUFGdHU6V+tcDFjuevkEKGZhTYvd5cxJEllnREFdzyXplXnk4iFobAgw4
DLKVdQ+WkNFkma3kKWI/39OlJSyYtycKEw2J8GRrWcC8z8X9jOQSEpccc4EX
yGPERXjTiImwaU/+QFb8En+Z6MtaUdTX5l4iOJl97gtAtrgLqDTWLADPMOQJ
hqQEWbh7O9R4Fxejek0vm5UW43q9sKUNRNr3X/36d7/KwfScDJB9pdSNtSGm
Z+wVJSOXaKETXgijoSV2OG/C3Ont2Ye7m+vbqbo5uz27ejt9e6ttCD4QWdAV
ltCcck0O+lI7Ji7YbASymbkC5QXZkvadJNjXgv1V+YqXFPPq1+Q1X+sWCJPX
cH5Mo5LbCRCzDLnHY+gHJUuwksz2ArE8gCsX9mxEaaCVrT6IJ9ObhPki4QmL
RvEv3poLQSHE7PAQfniE5EBJH0Sv030Q30eCKekXhgPZK7bks44krJNRc2nw
AqvbapkTg3DhOUWB9r+51Te319Pr8+v36i+X1+/PKCX0O70dW0PhRwcE7bYO
eYPyPQ15NQbfUokzT/R54ZhcsMqEdPx7PzJYemiSs6Z4jDZA3a9AF/Y2qgcK
npGtRASGi762yCPiiLyWYyImkoLDd89659OLVk2l3nVY8OXNHRHbIZdMAYai
lvB4F8BRTpyQwm0R0bEnwBBRCqnXxNHiMPN1rq7AaD3bqCpM1lUv+1q4clCr
cu7asD+kzVHWMSzM7JxqBkLsudjRDiRR6rIl0InB94RDIpQrDhhfivU9elhR
qLIII51qHxHjwGBIHIh5ZC6Ah1DjJiNWTKxOtYXlIUiUOqn1uJZ1jtLWczgE
BQpjXCmVeSKb2MSspwUg3kSl+07CAeW3wIlCb19hSHBJXM8Uo+TcMO2PgO24
pDSTNn7U1hdKikFHuS24eN/5sXgTlRRdSDP3bD0n7Rs1CwZuyAVUgYCIyYlg
lzo4CXgqiRLxso/kyzRpK0f0EH5PTmGCmwqGKsDg2Ma9nwwWVt3Css/dugcj
DDi1FQZA0siVWuAEV0A2ASEqWcrkIqbPylYdsvvfG2yfob9FX4TFnkKJmu+O
TiTu6cU+bVN7a4lVXA5jCDSiROrcSlE3hknXYFjLtvYm4viHzJQPCzsocPpy
in1xpA6zoMKWC6A4s3SwoRTmJJ5IL7RdCadmBKc5xzznmGXo2OloWLLz7npx
e1NoqjMfSF0Kgq2UcNfSrcnXv8m3lPr111+peTiwwzs2/5O0FKcwnT52L/Wf
NAw2Sg/JCHdCWt1LevaZ53k61S+eUUZz0/lPR3vrvOOfjz5rYb4DyivmjV/q
GWKPMkmiXdNQ7TUNuYRJVWHnGBzKKayf6yaqrki+rIesV6i9FCsVYgEBGG2B
xbanVwnuMdcnLkI/ta9L2dINhlhNZvOh7oPV1LPuRd4lVvtSy3RQQJmYiDQH
Q9udzJgADNy7ZTd67gLCN2HnTufgPwYzCBv4Z2ZI+JlPngtlplTZ/dgWLnME
WWwz0KqC+mdd5g0WLh0G/b4Bm2AWM+xPq4NtQKRDclExz8FA+oZaoV9oXY6Y
t3mG2DlSB/ukNKq745W++mu3qPtJelVJeRF9u7e4rQQ1BlOV11Ul5CEYo/sx
d9I65BZdV3aktM99KcPtI829lwM9JG5oDwgQJ0G1sraOuwXZ2vcEPLJnDXM3
Viz9urD5Anqm9VM0c8G8Rg4bvsPNCZoEAVlA8XpYBu6/3h9OUJhsOYyExrZZ
IptlBOlgtPrTyRrrQYzWjuwDnRdjREUdC0YZ9VtKkQCRAynzIQgatAHyVbU0
EbRz6eb1Vzp38+QmambrtbXl1hFHQiMJLGG1glZl/sx7qt9jehOaA5J7FYHd
A9Y75lmFsfv5p6TSJ1Iix48DSZV6s9F9mpH4HvzOKBUxkTQ8quRsVZvpOwDg
wGtNj7BNUEQ/fQp1h69yRnTK0g+X+WfEH0z676/BFkthbxThTWEQqbBZpNKj
Z3U7NhVU6PKFA9H9jZSzD7rS223KHLUkHXbKYlnhs/vInC8PpBjhB68pHTl+
iUnXRiW7Sg+JjaHFGEnorcXNUAfpsqvae5mLDi0z9sTC4/W8CS0tbYeAmO6w
akXlgMlRa3fOWtO5EB3pOpv6Su3W924hIipqQlTU2KYzhtSvRPVI3XSG17Y3
He1wTkcEeuMTiY+Zr/rztrYLyu3HCxezRs4qpDXV9UiD5QKMWjIalBp5LaQG
O5IPtYY9tEnEkGlHSxZ6mEP+lp5a6t4NUnIZwS/5dZ4HSUJ1tSFloAcq/vv1
hvRla5rcVvBgyItt3l2/ZXwpr8HdCrdY4k2py8hhltbQ0WxinzL9puogchfJ
JyBWF+mwgOwyWL+FekLymA4ziKYW9tFJy0gqFsUHqXp4kIrSYkYdjBTpg0W5
hdHnMy49FJeYWXuMJYPb0wRphbWpH0Bui2LClxHS+ddIoXKX7Risg+3cr9j1
DR0C3VrQ2zJaWVGxfimgOWC2Dgbaqi2HZ9IqivzELbjXh69yqEtnS5KZr0xp
Fn2Jj33lNJMODykXUmYo0/mRaJgTvzuwMjdDqBcz5CSnAhMJIQgWCEaEv0mQ
9ekjpbjdx+SDoIorxmcT+TCvxyJU7+yLoRYBjCaIIE/cpkYx+mzQou86xqT3
dh5/1Mfxbz8//u2Xl6NBNrLd24kEtxmzNV6a5Ni0YwUDh9GiBg2BwUkvVqRs
25LILU5/XMl0EpX06KuoBvFH2wTmjdhKp0p195pYngLmrqnkVI7PMDngbbH3
JnkrPglbaP6qaKLshRrsxXyA7VszIUe1bAP5iO0E70kuIqewiJ4GJVYjGvE8
dGqpj/NWR2zlwtanXRmnm58ff0HCrOjj3/Sc0iW+ckrVufxm6GMsryBh8lD1
31SoF97fcxxJjgEGSYTzgW6fMLtO4JxO6IipI990R/J53+QzVBkQtm87V+su
sEz67Pbsr76hOZX0DXImPJQjXNehpMMpMYjYI30lIu8jiN9DWyzGhKVqgWfc
yzHlQry3MCjhqJhKfW6CvvkpLLQyj0k2MlAy+x+h5x9BAsrkqeNOWrALuiGg
N5B67SnCRvwdW0K5lw+OE/PoztpN6psRUMXMlqjrfPLVTiyRlBI5fg4Ar1RN
rKgdV9cppqiFEIjjMTxJj6f0et4EQtTnsIFa8oHYf71hAk51lp65hSAWSVhx
syazfUPs0Dk2caSmvRPBKR6S9BE1uGCQpE2gx30jCVhUc2YWfdHU7U6AIaTI
W1MYlHxniNpYpj/QbSeCL2z51KMEyPHmnw2L5ueN/Lbpf9t0v3GQdK+kyNn8
kmbAAH6ZY+igvfvzEDzKJIB2rrnsXMaArbYSRdrJYVqg3mQ6Q+KOUpjos6LY
Clq8MQNdGLJdKWEYsBJ+JcCFKCDl6SGfaDAqcReOmAgUSVRAVlZM7x6ZoNIJ
4bkQ2x1SS/EBlwBbgY4c0BTM4FBBilHgMTn7rsVGvNHpKk87YgiTZh9k5foV
t55gTOYCIgz5Tmq5vO0ZdW/E1CN9bFNm0pJruRokUBw6p0Z10bp2bh9s4at2
92i/PqCM8+FeGmPdTa3jD9Ob9grOtz+8+pbPN3kOHzaj/h5MFyeKr9tlSfNK
stog6LAapuRrAI0rSGVJJ239wdug+JQ9pUTZ7ZKIYrvZXCFCTcpHLSOjPkbq
Uz9O6IQl1A2dTxUHxZRbgYAacuvSyk3B7jVNbWuwdtrj2NkXBoXoE33lUz9f
822ZXUjhSwlbaKK2kSQFPzuZ0YyAGv9x/9f5YdrdJbXVS4YJw/d9qPlB1+HM
BgqfAEsL8B4u6qgFRNgKHJrIFpJsev8ij9q6yBPg2ukAkFEKHJzpHhsZ8VRy
zysFxbwFcLdqhPTljYwDHi7k5Ep8qO+lpNZx7iXzYUvpipXPU+efTESXZoiz
Lu0Opuyslk4I+ESBTTgaHCFwb1/6+ao1w5kUj3Zn+2nqL1xQEsItvaEeQxgt
TIYUNe9ZPYlv645e7qKAsuyTX7/SbeHtSXy5f0I3G+lA+zyhgxnc4+naaomm
pKDdP5xgiotU2AcLUVwb2pqsPaU7o4PdSE5YcOzENkCXlKcSgxjcDknMlY5/
F6XEhn20ge8McgVpORHEdKPp+btiChoLxg/cLiAmpZSQg/fSjgeXnNJxOF+b
wlbWbpHuWOnQSLcgkQy5EJAtLeF2d48u0emUi9WwBkMhQSddxLBp+hURCPyf
lK25wyBJjmFe5lNbnbd0BmWK6Nv1+s2mIkz6YNtjFGEWvFcodLqP6JuaC/uW
MciBfcanUbFnC7SCOrREd5jIO7BfQ24XKny9Qz0n7rBHJ70jOAK3/6gCldZd
Ol1UAxWQu1emcP39ia4UlWl7GQYzpHPCmGhfkIgdjOYCaXCJYsXBcnn24exA
oGy3TRbYQrKiVLtbgbN7DbltY6tbHhU20q/7C40BhZ6+uUDBwgckMs2rx+9O
vv2eZqOODHlqVfgNm/Ylj+xm1B/4nv3+3Q9+bevSGd66lMrQDuqSQRMs0Qe6
uUCAcLfXZ9e7RmDn+W1LyKEVn4qF32eA77797gvay3xJ8x6kDqo87atYapUO
T692etC08Wc7jkwKm/Kem3cXwIbgMOH90pf+YaSnALcrF4NZOo61j6aOMON7
KsFSExtsnXpcdi03nmKzSNBFZxb0DxLzJ11sn0Ee1f/7f0MNFHp2MgAA

-->

</rfc>

