<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.13 (Ruby 3.1.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cel-nfsv4-rpc-over-quicv1-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="RPC over QUIC">Remote Procedure Call over QUIC Version 1</title>
    <seriesInfo name="Internet-Draft" value="draft-cel-nfsv4-rpc-over-quicv1-01"/>
    <author initials="B." surname="Coddington" fullname="Benjamin Coddington">
      <organization>Red Hat</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>bcodding@redhat.com</email>
      </address>
    </author>
    <author initials="S." surname="Mayhew" fullname="Scott Mayhew">
      <organization>Red Hat</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>smayhew@redhat.com</email>
      </address>
    </author>
    <author initials="C." surname="Lever" fullname="Charles Lever" role="editor">
      <organization abbrev="Oracle">Oracle Corporation</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>chuck.lever@oracle.com</email>
      </address>
    </author>
    <date year="2022" month="July" day="05"/>
    <area>Transport</area>
    <workgroup>Network File System Version 4</workgroup>
    <abstract>
      <t>This document specifies a protocol for conveying Remote Procedure
(RPC) messages on QUIC version 1 connections. It requires no revision
to application RPC protocols or the RPC protocol itself.</t>
    </abstract>
    <note>
      <name>Note</name>
      <t>This note is to be removed before publishing as an RFC.</t>
      <t>Discussion of this draft occurs on the <eref target="nfsv4@ietf.org">NFSv4 working group mailing
list</eref>, archived at
<eref target="https://mailarchive.ietf.org/arch/browse/nfsv4/"/>. Working Group
information is available at
<eref target="https://datatracker.ietf.org/wg/nfsv4/about/"/>.</t>
      <t>Submit suggestions and changes as pull requests at
<eref target="https://github.com/chucklever/i-d-rpc-over-quicv1"/>. Instructions
are on that page.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>QUIC is a reliable, connection-oriented network transport protocol
that is designed to be general-purpose and secure <xref target="RFC9000"/>. Its
features include integrated transport layer security, multiple
streams over each connection, fast reconnect, and robust recovery
from packet loss and network congestion.</t>
      <t>Open Network Computing Remote Procedure Call (often shortened
to "RPC") is a Remote Procedure Call protocol that runs over a
variety of network transports <xref target="RFC5531"/>. RPC implementations so far
use UDP <xref target="RFC0768"/> or TCP <xref target="RFC0793"/>. This document specifies
how to transport RPC messages over QUIC version 1.</t>
      <aside>
        <t>Explain motivations:</t>
        <ul spacing="normal">
          <li>TLS</li>
          <li>Multiple streams--though applications are speculative at this point.
 (Maybe they will allow more sophisticated prioritization of traffic
 without the overhead of multiple TCP connections?)</li>
          <li>Lower-latency connection setup--though NFS connections are typically
 long-lived.</li>
          <li>Likely SMB adoption of QUIC should make QUIC implementations widely
 available.</li>
        </ul>
        <t>In addition, this section needs to document and demonstrate specific
use cases that cannot be addressed using existing RPC transports and
security mechanisms such as RPC-over-TCP, RPC-with-TLS, or
RPC-over-RDMA.</t>
      </aside>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</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>
    </section>
    <section anchor="rpc-over-quic-framework">
      <name>RPC-over-QUIC Framework</name>
      <t>RPC is first and foremost a message-passing protocol. This section
covers the implementaion details of exchanging RPC messages over
QUICv1. Readers should already be familiar with ONC RPC <xref target="RFC5531"/>.</t>
      <section anchor="transport-layer-security">
        <name>Transport Layer Security</name>
        <t>RPC-over-QUIC provides peer authentication and encryption services
using a framework based on Transport Layer Security (TLS).
Ergo, RPC-over-QUIC inherently fulfills many of the requirements of
<xref target="I-D.ietf-nfsv4-rpc-tls"/>.
The details of QUIC's use of TLS are specified in <xref target="RFC9001"/>.
In particular:</t>
        <ul spacing="normal">
          <li>With QUICv1, security at the transport layer is always enabled.
Thus, there is no need or use for the STARTTLS mechanism described
in <xref section="4" sectionFormat="of" target="I-D.ietf-nfsv4-rpc-tls"/>.</li>
          <li>The discussion in <xref target="I-D.ietf-nfsv4-rpc-tls"/> about the opportunistic
use of TLS does not apply to RPC-over-QUIC.</li>
          <li>The peer authentication requirements in <xref section="5.2" sectionFormat="of" target="I-D.ietf-nfsv4-rpc-tls"/> do apply to RPC-over-QUIC.</li>
          <li>The PKIX Extended Key Usage values defined in
<xref target="I-D.ietf-nfsv4-rpc-tls"/> are also valid for use with
RPC-over-QUIC.</li>
          <li>The ALPN defined in <xref section="8.2" sectionFormat="of" target="I-D.ietf-nfsv4-rpc-tls"/> is
also used for RPC-over-QUIC.</li>
        </ul>
      </section>
      <section anchor="rpc-message-framing">
        <name>RPC Message Framing</name>
        <t>Record marking on QUIC is exactly as in TCP.
See <xref section="11" sectionFormat="of" target="RFC5531"/>.</t>
        <aside>
          <t>Discussion: This is the simplest thing to do.</t>
          <t>bfields: Open question whether we should do something more
 complicated that adds RDMA-like features or at least provides some
 minimal help with data alignment.  Possibilities might include a
 single additional integer giving the offset of a payload, serving
 only as a hint; or reference additional streams in the same
 connection for payloads; or even looking into full RDMA--long-term
 there may be interest in supporting RDMA over QUIC, and we may be
 able to piggyback on that effort.</t>
          <t>cel: Direct data placement over TCP can already be accomplished
 today using MPA/DDP protocols (formerly known as iWARP). Using a
 software iWARP implementation means no special hardware is
 necessary. Likewise, if MPA/DDP can be made to support QUIC, much of
 the need for a separate RPC-over-QUIC is moot. In addition, it would
 bring automatically transport layer security to other RDMA-enabled
 protocols (such as RPC-over-RDMA).</t>
          <t>lars: If changes to the RPC-over-QUIC binding might be desired in
  the future, how would they be negotiated/expressed? Should a
  versioned ALPN be used instead of the one from
  <xref target="I-D.ietf-nfsv4-rpc-tls"/>?</t>
        </aside>
      </section>
      <section anchor="connections-and-streams">
        <name>Connections and Streams</name>
        <t>QUIC provides a "stream" abstraction, described in <xref section="2" sectionFormat="of" target="RFC9000"/>. Each QUIC stream can be unidirectional or bidirectional.
QUIC supports a nearly unlimited number of concurrent streams per
connection.</t>
        <t>Unless explicitly specified, when RPC protocol specifications refer to
a "connection", this applies to a QUIC connection, not to a stream.
As an example, in the case of NFSv4.1 <xref target="RFC8881"/>, a
BIND_CONN_TO_SESSION operation binds a QUIC connection and does not
need to be repeated for each stream on the connection.</t>
        <t>An RPC Reply <bcp14>MUST</bcp14> be sent over the same connection and stream as the
Call message with a matching XID. Forward-direction RPC messages <bcp14>MUST</bcp14>
be sent over a client-initiated bidirectional stream (stream type
0x00). Reverse-direction RPC messages <bcp14>MUST</bcp14> be sent over a
server-initiated bidirectional stream (stream type 0x01). Otherwise,
unless otherwise explicitly specified, RPC callers are free to use
streams as they wish, and responders have to accommodate callers that
do so.</t>
        <aside>
          <t>NFS requirement on resends: QUIC allows reconnecting using the same
 connection ID, so isn't breaking/reconnection somewhat ambiguous?
 When can a server drop or a client resend? Any advice needed for
 server-side DRC implementations?</t>
          <t>lars: I'm not sure I understand what is meant by "reconnecting"
  above. Is this referring to connection migration? Or a 0-RTT
  repeated connection instance? Something else?</t>
          <t>lars: Also, I'm not sure if the use of streams is fully specified by
  the above. Is the intent here to leave it to callers to decide if
  they want to use a fresh stream for each RPC, or reuse an existing
  stream for a series of RPCs?</t>
        </aside>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>. The description of implementations in this section is
intended to assist the IETF in its decision processes in progressing
drafts to RFCs.</t>
      <t>Please note that the listing of any individual implementation here
does not imply endorsement by the IETF. Furthermore, no effort has
been spent to verify the information presented here that was supplied
by IETF contributors. This is not intended as, and must not be
construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.</t>
      <t>There are no known implementations of RPC-over-QUICv1 as
described in this document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Readers should refer to the discussion of QUIC's transport layer
security in <xref section="21" sectionFormat="of" target="RFC9000"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>RFC Editor: In the following subsections, please replace RFC-TBD with
the RFC number assigned to this document. Furthermore, please remove
this Editor's Note before this document is published.</t>
      <section anchor="netids-for-rpc-over-quic">
        <name>Netids for RPC-over-QUIC</name>
        <t>Each new RPC transport is assigned one or more RPC "netid" strings.
These strings are an rpcbind <xref target="RFC1833"/> string naming the underlying
transport protocol, appropriate message framing, and the format of
service addresses and ports, among other things.</t>
        <t>This document requests that IANA allocate
the following "Netid" registry strings in the "ONC RPC Netid"
registry, as defined in <xref target="RFC5665"/>:</t>
        <artwork><![CDATA[
      NC_QUIC    "quic"
      NC_QUIC6   "quic6"
]]></artwork>
        <t>These netids <bcp14>MUST</bcp14> be used for any transport satisfying the
requirements described in this document. The "quic" netid is
to be used when IPv4 addressing is employed by the underlying
transport, and "quic6" for IPv6 addressing. IANA should use this
document (RFC-TBD) as the reference for the new entries.</t>
        <aside>
          <t>lars: Why one per IP address family? This seems common practice with
  netids, but also seems to be a layering violation?</t>
        </aside>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-nfsv4-rpc-tls">
          <front>
            <title>Towards Remote Procedure Call Encryption By Default</title>
            <author fullname="Trond Myklebust">
              <organization>Hammerspace Inc</organization>
            </author>
            <author fullname="Charles Lever">
              <organization>Oracle Corporation</organization>
            </author>
            <date day="23" month="November" year="2020"/>
            <abstract>
              <t>   This document describes a mechanism that, through the use of
   opportunistic Transport Layer Security (TLS), enables encryption of
   Remote Procedure Call (RPC) transactions while they are in-transit.
   The proposed mechanism interoperates with ONC RPC implementations
   that do not support it.  This document updates RFC 5531.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-nfsv4-rpc-tls-11"/>
        </reference>
        <reference anchor="RFC1833">
          <front>
            <title>Binding Protocols for ONC RPC Version 2</title>
            <author fullname="R. Srinivasan" initials="R." surname="Srinivasan">
              <organization/>
            </author>
            <date month="August" year="1995"/>
            <abstract>
              <t>This document describes the binding protocols used in conjunction with the ONC Remote Procedure Call (ONC RPC Version 2) protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1833"/>
          <seriesInfo name="DOI" value="10.17487/RFC1833"/>
        </reference>
        <reference anchor="RFC5531">
          <front>
            <title>RPC: Remote Procedure Call Protocol Specification Version 2</title>
            <author fullname="R. Thurlow" initials="R." surname="Thurlow">
              <organization/>
            </author>
            <date month="May" year="2009"/>
            <abstract>
              <t>This document describes the Open Network Computing (ONC) Remote Procedure Call (RPC) version 2 protocol as it is currently deployed and accepted.  This document obsoletes RFC 1831.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5531"/>
          <seriesInfo name="DOI" value="10.17487/RFC5531"/>
        </reference>
        <reference anchor="RFC5665">
          <front>
            <title>IANA Considerations for Remote Procedure Call (RPC) Network Identifiers and Universal Address Formats</title>
            <author fullname="M. Eisler" initials="M." surname="Eisler">
              <organization/>
            </author>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document lists IANA Considerations for Remote Procedure Call (RPC) Network Identifiers (netids) and RPC Universal Network Addresses (uaddrs).  This document updates, but does not replace, RFC 1833.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5665"/>
          <seriesInfo name="DOI" value="10.17487/RFC5665"/>
        </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">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC0768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel">
              <organization/>
            </author>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="RFC0793">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel">
              <organization/>
            </author>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer">
              <organization/>
            </author>
            <author fullname="A. Farrel" initials="A." surname="Farrel">
              <organization/>
            </author>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section.  This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory.  Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications.  This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8881">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
            <author fullname="D. Noveck" initials="D." role="editor" surname="Noveck">
              <organization/>
            </author>
            <author fullname="C. Lever" initials="C." surname="Lever">
              <organization/>
            </author>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 7530) and protocol extensions made subsequently.  The later minor version has no dependencies on NFS version 4 minor version 0, and is considered a separate protocol. </t>
              <t>This document obsoletes RFC 5661.  It substantially revises the treatment of features relating to multi-server namespace, superseding the description of those features appearing in RFC 5661.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8881"/>
          <seriesInfo name="DOI" value="10.17487/RFC8881"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors express their deepest appreciation for the
contributions of J. Bruce Fields who was an original author
of this document.
In addition, we are indebted to Lars Eggert and the QUIC
working group for the creation of the QUIC transport protocol.</t>
      <t>The editor is grateful to Bill Baker, Greg Marsden, and Martin Thomson
for their input and support.</t>
      <t>Special thanks to Transport Area Directors Martin Duke and
Zaheduzzaman Sarker, NFSV4 Working Group Chairs David Noveck and
Brian Pawlowski, and NFSV4 Working Group Secretary Thomas Haynes for
their guidance and oversight.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6Va7XYbN5L9j6fAMj9i7yEpyVEcW7sbR5bkiWasjxXlyczm
5PiA3SCJUXejF0CTZnyUZ5ln2SfbWwV0s1uSsydn/cNqNvFRqI9btwqcTCZC
BBMKfSRvdGmDltfOZjpvnJYnqiikXWsn//PD+Yn8q3be2EoeCDWfO73GjOuT
3fcit1mlSiyUO7UIk0wXk2rh14cTV2cTGjb578Zk64PJ/oHIVNBL67ZH0odc
mNodyeAaH17s77/efyGU0+pI3jpV+dq6IDbW3S2dbeojeakDfZLvTKHlbOuD
LjvJDoWde1vooP2RaOpc8YMPqso/qsJWkG2rvfDNvDSeZoRtjXfnZ7fvRG2O
5M/BZmPpsaPTC4+nbRkfcLRS1bWplr8IoZqwsu5IiImQMp74ra7+oUpTyROb
5xgVbIXvrFuSVnP5owr4mNmmCnTkD5UJeDsLJJ+0C3lcamcyhTG6VKY4kvMs
rvOD0/lKhWlmy95us8yGIC/UdqU3/69tfMlrPL3LyUq5AhPfa5gOb50lJ9G5
Cda1u145lcEMJ9bBTCoYPnbrHfHLPyZRtmqyu2lBW/5geT5LJSrrSqy/1kcY
ez45nRodFj33CoWnb27enRy8+uab9Pjtt98ctI8vX36bHl/v7+/vHjFAmGrR
Xx5f7H/38lX3+Lpd77vXhy/S46tXr2jmZDLBcX2ApEGI25Xx5CpNqasgfa0z
szA4qJK1s3AtW0hsBHVUa72FdR9FnHiGiHouS+29WpKGqhh56zbyaG6lM1K0
n8rzIJ1GTDkMrSye14aGiWAlnLWAYmkgR2krANZ0Mqz04KU0wetiMY3nqSDS
x0v8lw5EnyX+YtW5xiYlQjnHI46iZd3MC+NXdBiFg1akG6xzanzWcISRlQPr
hUBB2ixrHB+MhPj58t1sfSgpnmkFjnBJjoBPAuuGX56xiX8ga0/hcc/HUrls
ZUgCOPvPvzxbhVD7o709mpW+mraj9+jF3tzZjdd7vNDe86n8Ke32J9ptZ3uI
BCnVmtaZw6eHywNKFFn5Trvd8ptlWlXNbROwthAzghbYvlnCfmwmKCWHW6uK
DAod1Q1AlcyG7/2DXZYmrJo5efweBwLHwZ6Z5A8hFMc4r+B2TXQFwsuoUxVk
DddJpixNniMCxVcYHZzN43Ah2KnotBCkMHTccc+zJtYZODBUXCWsDS0Qdy4j
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

-->

</rfc>
