<?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 docmapping="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-nfsv4-uncacheable-files-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Uncacheable File Attribute">Adding an Uncacheable File Attribute to NFSv4.2</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-nfsv4-uncacheable-files-00"/>
    <author initials="T." surname="Haynes" fullname="Thomas Haynes">
      <organization>Hammerspace</organization>
      <address>
        <email>loghyr@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>General</area>
    <workgroup>Network File System Version 4</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 45?>

<t>The Network File System version 4.2 (NFSv4.2) allows a client to
cache data for file objects.  Caching file data can lead to performance
issues if the cache hit rate is low.  This document introduces a
new uncacheable file attribute for NFSv4.2.  Files marked as
uncacheable <bcp14>MUST NOT</bcp14> be stored in client-side caches.  This document
extends NFSv4.2 (see RFC7862).</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 54?>

<t>Discussion of this draft takes place
on the NFSv4 working group mailing list (nfsv4@ietf.org),
which is archived at
<eref target="https://mailarchive.ietf.org/arch/search/?email_list=nfsv4"/>. Source
code and issues list for this draft can be found at
<eref target="https://github.com/ietf-wg-nfsv4/uncacheable-files"/>.</t>
      <t>Working Group information can be found at <eref target="https://github.com/ietf-wg-nfsv4"/>.</t>
    </note>
  </front>
  <middle>
    <?line 65?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>With a remote filesystem, the client typically caches file contents
in order to improve performance.  Several assumptions are made about
the rate of change in the number of clients trying to concurrently
access a file.  With NFSv4.2, this could practically be mitigated
practically by file delegations for the file contents.</t>
      <t>There are prior efforts to bypass file caching.  In Highly Parallel
Computing (HPC) workloads, file caching is bypassed in order to
achieve consistent work flows.</t>
      <t>This document introduces the uncacheable file attribute to NFSv4.2
to bypass file caching on the client. As such, it is an <bcp14>OPTIONAL</bcp14>
to implement attribute for NFSv4.2. However, if both the client and
the server support this attribute, then the client <bcp14>MUST</bcp14> follow the
semantics of uncacheable.<cref anchor="_2">What about mixed modes?</cref></t>
      <t>A client can easily determine whether or not a server supports
the uncacheable file attribute with a simple GETATTR on any
file. <cref anchor="_3">Is this still true?</cref> If the server does not support the uncacheable
attribute, it will return an error of NFS4ERR_ATTRNOTSUPP.</t>
      <t>The only way that the server can determine that the client supports
the attribute is if the client sends either a GETATTR or a SETATTR
with the uncacheable attribute.</t>
      <t>As bypassing file caching is file based, it is only applicable for
dirents which are of type attribute value of NF4REG.</t>
      <t>Using the process detailed in <xref target="RFC8178"/>, the revisions in this document
become an extension of NFSv4.2 <xref target="RFC7862"/>. They are built on top of the
external data representation (XDR) <xref target="RFC4506"/> generated from
<xref target="RFC7863"/>.</t>
      <section anchor="definitions">
        <name>Definitions</name>
        <dl>
          <dt>file caching</dt>
          <dd>
            <t>A client cache, normally called the page cache, which caches the
contents of a regular file. Typical usage would be to accumulate
changes to be bunched together for writing to the server.</t>
          </dd>
        </dl>
        <t>Further, the definitions of the following terms are referenced as follows:</t>
        <ul spacing="normal">
          <li>
            <t>file delegations (<xref section="10.2" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>GETATTR (<xref section="18.7" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>NF4REG (<xref section="5.8.1.2" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>NFS4ERR_ATTRNOTSUPP (<xref section="15.1.15.1" sectionFormat="of" target="RFC8881"/></t>
          </li>
          <li>
            <t>SETATTR (<xref section="18.30" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>system (<xref section="5.8.2.36" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
        </ul>
      </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>
        <?line -18?>

</section>
    </section>
    <section anchor="caching-of-file-data">
      <name>Caching of File Data</name>
      <t>The uncacheable file attribute instructs the client to bypass its
page cache for the file. This behavior is similar to using the
O_DIRECT flag with the open call (<xref target="open"/>). This can be beneficial
for files that are not shared or for files that do not exhibit
access patterns suitable for caching.</t>
      <t>However, the real need for bypassing write caching is evident in
HPC workloads. In general, these involve massive data transfers and
require extremely low latency.  Write caching can introduce
unpredictable latency, as data is buffered and flushed later.</t>
      <section anchor="sec_files">
        <name>Uncacheable Files</name>
        <t>If a file object is marked as uncacheable, all modifications to
the file <bcp14>MUST</bcp14> be immediately sent from the client to the server. In
other words, the file data is also not cacheable.</t>
      </section>
    </section>
    <section anchor="xdr-for-offline-attribute">
      <name>XDR for Offline Attribute</name>
      <sourcecode type="xdr"><![CDATA[
///
/// typedef bool            fattr4_uncacheable_file;
///
/// const FATTR4_UNCACHEABLE_FILE       = 87;
///
]]></sourcecode>
    </section>
    <section anchor="extraction-of-xdr">
      <name>Extraction of XDR</name>
      <t>This document contains the external data representation (XDR)
<xref target="RFC4506"/> description of the uncacheable attribute.  The XDR
description is presented in a manner that facilitates easy extraction
into a ready-to-compile format. To extract the machine-readable XDR
description, use the following shell script:</t>
      <sourcecode type="shell"><![CDATA[
#!/bin/sh
grep '^ *///' $* | sed 's?^ */// ??' | sed 's?^ *///$??'
]]></sourcecode>
      <t>For example, if the script is named 'extract.sh' and this document is
named 'spec.txt', execute the following command:</t>
      <sourcecode type="shell"><![CDATA[
sh extract.sh < spec.txt > uncacheable_prot.x
]]></sourcecode>
      <t>This script removes leading blank spaces and the sentinel sequence '///'
from each line. XDR descriptions with the sentinel sequence are embedded
throughout the document.</t>
      <t>Note that the XDR code contained in this document depends on types from
the NFSv4.2 nfs4_prot.x file (generated from <xref target="RFC7863"/>).  This includes
both nfs types that end with a 4, such as offset4, length4, etc., as
well as more generic types such as uint32_t and uint64_t.</t>
      <t>While the XDR can be appended to that from <xref target="RFC7863"/>, the code snippets
should be placed in their appropriate sections within the existing XDR.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document imposes no new security considerations to NFSv4.2.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC4506">
          <front>
            <title>XDR: External Data Representation Standard</title>
            <author fullname="M. Eisler" initials="M." role="editor" surname="Eisler"/>
            <date month="May" year="2006"/>
            <abstract>
              <t>This document describes the External Data Representation Standard (XDR) protocol as it is currently deployed and accepted. This document obsoletes RFC 1832. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="67"/>
          <seriesInfo name="RFC" value="4506"/>
          <seriesInfo name="DOI" value="10.17487/RFC4506"/>
        </reference>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC7862">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 2 Protocol</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document describes NFS version 4 minor version 2; it describes the protocol extensions made from NFS version 4 minor version 1. Major extensions introduced in NFS version 4 minor version 2 include the following: Server-Side Copy, Application Input/Output (I/O) Advise, Space Reservations, Sparse Files, Application Data Blocks, and Labeled NFS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7862"/>
          <seriesInfo name="DOI" value="10.17487/RFC7862"/>
        </reference>
        <reference anchor="RFC7863">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 2 External Data Representation Standard (XDR) Description</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides the External Data Representation (XDR) description for NFS version 4 minor version 2.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7863"/>
          <seriesInfo name="DOI" value="10.17487/RFC7863"/>
        </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="RFC8178">
          <front>
            <title>Rules for NFSv4 Extensions and Minor Versions</title>
            <author fullname="D. Noveck" initials="D." surname="Noveck"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document describes the rules relating to the extension of the NFSv4 family of protocols. It covers the creation of minor versions, the addition of optional features to existing minor versions, and the correction of flaws in features already published as Proposed Standards. The rules relating to the construction of minor versions and the interaction of minor version implementations that appear in this document supersede the minor versioning rules in RFC 5661 and other RFCs defining minor versions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8178"/>
          <seriesInfo name="DOI" value="10.17487/RFC8178"/>
        </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"/>
            <author fullname="C. Lever" initials="C." surname="Lever"/>
            <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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="open">
          <front>
            <title>open and create files.</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Linux Programmer's Manual" value=""/>
        </reference>
        <reference anchor="POSIX.1">
          <front>
            <title>The Open Group Base Specifications Issue 7</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2013"/>
          </front>
          <seriesInfo name="IEEE Std 1003.1, 2013 Edition" value=""/>
        </reference>
        <reference anchor="RFC1813">
          <front>
            <title>NFS Version 3 Protocol Specification</title>
            <author fullname="B. Callaghan" initials="B." surname="Callaghan"/>
            <author fullname="B. Pawlowski" initials="B." surname="Pawlowski"/>
            <author fullname="P. Staubach" initials="P." surname="Staubach"/>
            <date month="June" year="1995"/>
            <abstract>
              <t>This paper describes the NFS version 3 protocol. This paper is provided so that people can write compatible implementations. 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="1813"/>
          <seriesInfo name="DOI" value="10.17487/RFC1813"/>
        </reference>
      </references>
    </references>
    <?line 214?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Trond Myklebust, Mike Snitzer, and Thomas Haynes all worked on the
prototype at Hammerspace.</t>
      <t>Chris Inacio, Brian Pawlowski, and Gorry Fairhurst helped guide
this process.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIACO8HGkAA41Z/3LbNhL+H0+BJp2x3ZHkX0ri6tq6ii3HnnFsn+1c2sm0
HoqEJJwpggeAltWc+yz3LPdk9+0ClCg5bc8zsUkQWCy+3f12F2m328Jrn6ue
7GeZLsYyKeSHIk3SiUqGuZInGr/63ls9rLyS3siLk5uHbmdPJMOhVQ+9P5kt
MpMWyRSyM5uMfFsrP2oXI/fQbVfLRe0RFrn2zo5IE6/Gxs570vlMZHjryc/H
/dvBk0hN4VThKteT3lZK6NLyk/N7Ozvf7kAbq5KefKcKZZNczIy9H1tTlT15
oTy9BdVu5s6rqfyHsk6bQnbFvZrja9aTZ4VXtlC+fUyqCuF8UmR3SW4KKDFX
TpS6Jz95k7akM9ZbNXJ4mk/DAw46TcoS+LVkaqZTVXj3ixBJ5SfG9oRsC4kf
XUD92448TeYFJNJQgOd2YqaJa44bO04K/VvioWYPHyDSujJJFX9V00TnPZmb
8WRufxzTWwfbClEYO8WaB4U95fXJ0d7u7rfxsftq53X9+G23Hn1z8Hpv+bgf
Hw9233SXjwf148HBbk8IXYyau5hSFT3WKvoRDcCLMpnCJHAZNm+HZzhltXIk
oCfPdVE9yitrxpZPt+Hk+6SoYDwpry5vzn7q7K6IvZ0oeUmi35Fd5dvEwZyl
SvVIpwyTk2fOVUq+ebbV2WAwkDc+k7s7O/ud3Zbc29ndl4NM0zKevTCUjOCH
Rfwe/JDXBBx2D3YBlGi32zIZOm+TFP5C6n3J1R5qV+vsyc0YOlsyyXMzczKR
aa7hKwgrwfFAmyUS+DJq0gz/qVLvOlIe4StFJw/zpBSBmqsko5AslWWbFPAP
TSA4qUfSQ16QOtFeWrKFdnCaGeTdTvAIr63IVeGY3pqsSrEuEYWayUZ4hi2T
BQOQcvEckENHdXKa2HuVycSJ5sL3H25u5cXlrRwqBLSxmKGLeOK201nUzq2r
I9SjV0Xm6m3kplOqdtatTkC+MF7dXdAvb+6ugQNwFuJYu7RyDLghAEgqxbP0
yT30LHOKIHwkaFi6JIMRsMwWkiKJ3nLtvNxkqvqRWKsDl9hqidlEpxMCMbEw
xwMd2YtPv2xOvC9db3ublsdPnXrZNg1sO8V/Djly70j89yx9qyNvTGWhVWoA
CIVNNCCrQGA3TkE2H5IJqmJ967H2k2pILLDNNDsbB6bdfsa0hODHeOoQS4uI
BjJrW8j/Y4vaJFOdZbkS4iWRKfsTx5f4iHVwdaumpqYDjo1W8NAYAfMScZzn
8+gUwe1A+564FKSDqISNydv1tLTmQTW9Hi50ox6I+uGErpqWgRCQFGBSwnVo
Ki9oOw4D+EY6SYqxIoek0aKaDiGcxlkdh9wyJ4CwHXRIK2sxms9FkiJIKHBJ
PezKZ4t+2gqmSk2VZ7IkWognAp5TcM0YW2di5cM8BrTK1TiSWDC5Wj1/hwkG
p6ETlVZjjhphJilqIKbEqeOKQBRQ7ayQp3o8wTZXCYDJVS6OzLSsPJ1r8/Tq
aIudPzdJhgzWXEweHmSGkK2RF/QZMJNaDu5JdmPCGxGbsY5/wCp0oD/hlEZV
8eXjyBizwTod2XfSVemkJUFsFI6FvLy6Pbu86J+L4CC5YhX+gLZOzYy8pUUs
OTSwYMMREYLsKEggmIJtyhI4B9MuxLHrNlUKZDcyxOs0LBwivYCdHTlV4+id
T7/uoTKg3z35cYIIY9+EgzwC7ClIwB0K0a/FUjiqxGlYMVOoUKa6UHI2UdgC
7mqJBuGMq7o68Rdwz0JAOsZJvhvc9m9vrwnipJiL4Nifft3/RZ6FHBKlZwaG
pP2WkKzsIhrowCwzneeIeV9ZkiuVtYYDDEboDq6v72hPJIebD1dXHcJjH3ic
uYCz87SYCr3DkFlNAQBmyRyfE99UivBZArP4GtFbAWR5fr1Mj3EepxulGdVk
iQi93IQXwaCtA7uQiSP066BZ5OlGOPH7EDVLVvssHwk1Yw4uYBsZKzJtmXxC
nqFYpyw2L5vKPyR5pQKQ3evBO2z8gXck1cCLTE9ABGkmBO/nz7GKe3oKhIui
XTumGia/ZuIdKpC7YnNRCq7zaJ2HWRQl4aenDtVjc1ZxWOncc4CaMmRdxRnc
FmBjLlWsKq0Cxj6kmM2fjq+3gjAqSp+e5JjLdrCjHFmUsfU++9gH6eSlPFYj
XXC1hhzfhFYI9C3LWIFZWpJr4JBIcsKAgUnGqv4ewI1ZhpStSZaUJ2XHFZJ4
JPjbkJZk5UjCjKl9yISFTFBNMRNtTsglgYoJjwKiqS4bhzAl6plZ7WM+WXov
DndSWZoTLJMtjxmBjIzCK+HjIaOh5UAqQNajiivOcFSQPk8mm58/3yhOw6h9
YUFIjYX809MWFtSe3px30HnzbF7wtea0V52Dzu4XJH4hvFekv8Iq+rWyEOtu
vqjJ/s6zDULtsK7KXmf/9dpUcpxr9a8KMcX9mDyHlSqYMVAKOj9KXoj7F8Td
L1rhLxWs9Hw9+PuHs+vBMT3fnPbPzxcPIs64Ob38cH68fFquPLp8/35wcRwW
UwG8MiRevO//jC9U672o09aLZ8HIpg4epak3RQj5UGMjRaQggxDeb4+u/vuf
3S7C6avY7yGewgt1cXhBtijCboFF+RW+hWKmLFGWkhRECiKi1D7JUQvAq9zE
zApJJQec9JtPhAz4+bthWu52f4gDdOCVwRqzlUHG7PnIs8UBxC8MfWGbBZor
42tIr+rb/3nlvca9MfjdYU45pL17cPiDoCq27rngVtzRHYPLgu/8SW5Fj4+8
lXq3UtwuihqNZLQko5VirxO6oKGaJA9U4FEe1FNqKGh9VZO8uLw7BshHqDby
ZCwXaYnbbqI8Cg16QQxEkbGmH4Jl0SxrtNh1h+lCyiRX48w+SahLM1auTcgM
f1ePEz3Uvq6CSxwbNE+1GDwnJrFFBSrEoswKaQc0WijieExaZkpixpVUifSU
hfJRoEhd1qgdqmhDpshZpCO0H0z+QEU+hD3EzhgdeeFAkY5rORsogDIaEQEi
gEo04u0inVMFv7I/QbWoW9HNIuoynYbDxTUcH7wRWasaERlnHF+jvHLE/DTR
hsy1fjnm5OeXTqV3jO2TEGej2EvEXp9kLrrppp+1OEZRHzbuO1CRLzoFDkji
iukUGkMBHJRSLmfUNV9sZCBgKgxnKebC1rL1qE8IRgjGX5awFBzI4WzIy9GI
w2Z56Sd+//13+ZhZsb29Tf+4gEFqQ6Vtctn4GVHUdO8ah2RY/rZYSG2GlyeU
F7p3Hy6O+keng/7b88Hdydn5IAr5Xh68CSuwLSk2eOQbmVi6QM31toTSfaKL
EKB/XaiIZqESqLf0iwuGPyoHJd9X0e7NJVAjbhDIO4Gti4J6KwqyUZLqHIHk
4SWo+efssuEo6H+p5KAgyuZtb9qo00odAg6NO+Lc1LNZqSm7s2rTfNZsTZMW
+EStFRhwXXhYmNILVuQh8fKr7aEutt1EjAGQ3PhVfgO8N+TX38h/S2oRN9xh
GJOHhxvrY19jLNjmhLrWx4SajlZdgIftCBi6CcWyeIqOm2xwTK3mRO1EnOdK
lXb8o99oQaZKuYtcOQ5dw0LAykncRC7ly+9kLUT+0DTjHcpo33kMSrPvRC3p
BuOBrmaAKm0xzJPiXvK1rIvKKg46QA8kQTxUpckNQktwHCrsISleOhxADYu4
JZM/l0D8rKbI+Jmi5tSaajyhppGLxogNopKuw5Y9EG3Al0rR4YPLreKZqZJb
H6reEaUu1N+L2zHUd8XIdSMggRc2V4t12SjWt+qbPF2keYXDCW6uISJKZ92w
Yd2BdlvcxhPVmdHIKY+BXBVjP8GD8mmHuFbMyC8xZWoAA++u0yiwXl0hPvb3
7rh755fX3TtC5OOEVF6gEfIglT1FxhV6DLy1c8SLKcLOFRqzkbRREMXany8R
I5ZKWxJnTWmJc2GxdGnMeLekHrXj2h8qMHWibq2QdObyiK5RMgIzdDZr1yfT
0jhuuSVdybp6VbqyqnF3wsLP+hf9vxA8SVgozwz04uIN3jBJ70lIP70vzAzN
05grZ/G5Fy7IVPb9ixESgnqB1HVrDcB+P7/P1bByviXf63slb9DA/EY5nyyx
8v8anMAom1OFwdAI8isT+9vmf3JAnaOJhc5nBTjRtORbwFvIq2RGrc69DtLf
GWvn8iTRdlJZJAqEOBKNHFc4umA/j/1wR/wPiEktcecaAAA=

-->

</rfc>
