<?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.23 (Ruby 3.3.6) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-nottingham-public-resolver-errors-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title>DNS Filtering Details for Applications</title>
    <seriesInfo name="Internet-Draft" value="draft-nottingham-public-resolver-errors-01"/>
    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
      <organization>Cloudflare</organization>
      <address>
        <postal>
          <postalLine>Prahran</postalLine>
          <postalLine>Australia</postalLine>
        </postal>
        <email>mnot@mnot.net</email>
        <uri>https://www.mnot.net/</uri>
      </address>
    </author>
    <date year="2025" month="February" day="22"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 27?>

<t><xref target="I-D.ietf-dnsop-structured-dns-error"/> introduces structured error data for DNS responses that have been filtered. This draft suggests additions to that mechanism that enable applications to convey the details of some filtering incidents to their users.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/mnot/public-resolver-errors"/>.</t>
    </note>
  </front>
  <middle>
    <?line 31?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Internet DNS resolvers are increasingly subject to legal orders that require blocking or filtering of specific names. Because such filtering happens during DNS resolution, there is not an effective way to communicate what is happening to end users, often resulting in misattribution of the issue as a technical problem, rather than a policy intervention.</t>
      <t>This draft defines a mechanism to communicate such details when DNS resolver filtering of a name is legally mandated, based upon the structured error data for DNS responses introduced by <xref target="I-D.ietf-dnsop-structured-dns-error"/>.</t>
      <t>Allowing DNS resolvers to inject user-visible messages brings unique challenges. Because DNS resolvers are often automatically configured by unknown networks and DNS responses are unauthenticated, these messages can come from untrusted parties -- including attackers (e.g., the so-called "coffee shop" attack) that leverage many users' lack of a nuanced model of the trust relationships between all of the parties that are involved in the service they are using.</t>
      <t>Furthermore, lowering the barrier to the presentation of messages explaining why access has been denied by the DNS resolver risks encouraging the wider deployment of DNS-based censorship on the Internet.</t>
      <t>This draft attempts to mitigate these risks by minimising the information carried in the DNS response to abstract, publicly registered identifiers -- the DNS Resolver Operator ID and the Filtering Incident ID. A consuming party (e.g., a Web browser) can selectively present messages from those operators that they believe to be using this mechanism for its stated goal -- in particular, those who using it to surface policy-driven filtering, rather than enact discretionary censorship or attack end users.</t>
      <section anchor="example">
        <name>Example</name>
        <t>In typical use, a DNS query that is filtered might contain an Extended DNS Error Code 17 (see <xref target="RFC8914"/>) and an EXTRA-TEXT field containing:</t>
        <sourcecode type="json"><![CDATA[
{
  "ro": "exampleResolver",
  "inc": "abc123"
}
]]></sourcecode>
        <t>This indicates that the "exampleResolver" resolver has generated the error, and the incident identifier is "abc123".</t>
        <t>An application that decides to present errors from "exampleResolver" to its users would look up "exampleResolver" in a local copy of the IANA DNS Resolver Identifier Registry (see <xref target="registry"/>) and obtain the corresponding template (see <xref target="template"/>). For purposes of this example, assume that the registry entry for that value contains:</t>
        <artwork><![CDATA[
https://resolver.example.com/filtering-incidents/{inc}
]]></artwork>
        <t>That template can be expanded using the value of "inc" to:</t>
        <artwork><![CDATA[
https://resolver.example.com/filtering-incidents/abc123
]]></artwork>
        <t>The application could (but might not) then decide to convey some or all of this information to its user; for example, with a statement that conveys:</t>
        <ul empty="true">
          <li>
            <t>The webpage at www.example.net was blocked due to a legal request. Your DNS resolver may have more information about the legal request here:</t>
            <t>https://resolver.example.com/filtering-incidents/abc123</t>
          </li>
        </ul>
        <t>Note that there is no requirement for the template to expand to a URL on any particular hostname; for example, it could be hosted by a party other than the resolver's server.</t>
      </section>
      <section anchor="notational-conventions">
        <name>Notational Conventions</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="data-types">
      <name>Data Types</name>
      <t>This section defines the data types used to look up the details of a filtering incident from a DNS error response. Note that these identifiers are not for presentation to end users.</t>
      <section anchor="op-id">
        <name>DNS Resolver Operator ID</name>
        <t>A DNS Resolver Operator ID is a short, textual string that uniquely identifies the operator of a DNS resolver. It is carried in the EXTRA-TEXT field of the Extended DNS Error with the JSON field name "ro". For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "ro": "exampleResolver"
}
]]></sourcecode>
        <t>Generators <bcp14>MUST</bcp14> only use values that are registered in the DNS Resolver Operator registry; see <xref target="registry"/>. Consumers <bcp14>MUST</bcp14> ignore unregistered values, and <bcp14>MAY</bcp14> ignore registered values.</t>
      </section>
      <section anchor="incident-id">
        <name>Filtering Incident ID</name>
        <t>A Filtering Incident ID is an opaque, string identifier for a particular filtering incident. It might be specific to a particular request, but need not be. It is carried in the EXTRA-TEXT field of the Extended DNS Error with the JSON field name "inc". For example:</t>
        <sourcecode type="json"><![CDATA[
{
  "inc": "abc123"
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="template">
      <name>Incident Resolution Templates</name>
      <t>An Incident Resolution Template is a URI Template <xref target="RFC6570"/> contained in the DNS Resolver Identifier Registry (<xref target="registry"/>) that, upon expansion, provides a URI that can be dereferenced to obtain details about the filtering incident.</t>
      <t>It <bcp14>MUST</bcp14> be a Level 1 or Level 2 template (see <xref section="1.2" sectionFormat="of" target="RFC6570"/>). It has the following variables available to it:</t>
      <dl>
        <dt>ro:</dt>
        <dd>
          <t>the DNS Resolver Operator ID (see <xref target="op-id"/>)</t>
        </dd>
        <dt>inc:</dt>
        <dd>
          <t>the Filtering Incident ID (see <xref target="incident-id"/>)</t>
        </dd>
      </dl>
      <t>For example:</t>
      <artwork><![CDATA[
https://resolver.example.com/filtering-incidents/{inc}
]]></artwork>
      <t>Applications <bcp14>MUST</bcp14> store a local copy of the DNS Resolver Identifier Registry for purposes of template lookup; they <bcp14>MUST NOT</bcp14> query the IANA registry upon each use.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="extra-text-json-names">
        <name>EXTRA-TEXT JSON Names</name>
        <t>IANA will register the following fields in the "EXTRA-TEXT JSON Names" sub-registry established by <xref target="I-D.ietf-dnsop-structured-dns-error"/>:</t>
        <dl spacing="compact">
          <dt>JSON Name:</dt>
          <dd>
            <t>"ro"</t>
          </dd>
          <dt>Short Description:</dt>
          <dd>
            <t>a short, textual string that uniquely identifies the operator of a DNS resolver</t>
          </dd>
          <dt>Mandatory:</dt>
          <dd>
            <t>no</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>this document</t>
          </dd>
        </dl>
        <dl spacing="compact">
          <dt>JSON Name:</dt>
          <dd>
            <t>"inc"</t>
          </dd>
          <dt>Short Description:</dt>
          <dd>
            <t>an opaque, string identifier for a particular filtering incident</t>
          </dd>
          <dt>Mandatory:</dt>
          <dd>
            <t>no</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="registry">
        <name>The DNS Resolver Identifier Registry</name>
        <t>IANA will establish a new registry, the "DNS Resolver Identifier Registry." Its registration policy is first-come, first-served (FCFS), although IANA may refuse registrations that it deems to be deceptive or spurious.</t>
        <t>It contains the following fields:</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>The name of the DNS resolver operator</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>an e-mail address or other appropriate contact mechanism</t>
          </dd>
          <dt>DNS Resolver Operator ID:</dt>
          <dd>
            <t>see <xref target="op-id"/></t>
          </dd>
          <dt>Incident Resolution Template:</dt>
          <dd>
            <t>see <xref target="template"/></t>
          </dd>
        </dl>
        <t>The Incident Resolution Template can be updated by the contact at any time. However, operators <bcp14>SHOULD</bcp14> accommodate potentially long lag times for applications to update their copies of the registry.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification does not provide a way to authenticate that a particular filtering incident as experienced by an application was actually associated with the information presented. This means that an attacker (for example, one controlling a DNS resolver) can claim that a particular filtering incident is occurring when in fact it is not. However, a successful attack would need to reuse an existing DNS Resolver Operator ID and Filtering Incident ID that combine to expand to a URL that can be successfully dereferenced. Doing so is not currently thought to be particularly advantageous to an attacker to do so. Future iterations of this specification may introduce more robust protections.</t>
      <t>The details of DNS responses are not available to all applications, depending on how they are architected and the information made available to them by their host. As a result, this mechanism is not reliable; some applications will not be able to display this error information.</t>
      <t>Because the registry is first-come, first-served, Applications (such as Web browsers) will need to exercise judgement regarding which operators' error messages they display to users. This decision might be influenced by the identity of the resolver (e.g., so-called "public resolvers" are likely to use this mechanism responsibly), its history (e.g., a well-known Internet Service Provider that has been subject to legal filtering orders), or local configuration (e.g., application or operating system settings that indicate that a particular resolver is to be trusted).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="I-D.ietf-dnsop-structured-dns-error">
        <front>
          <title>Structured Error Data for Filtered DNS</title>
          <author fullname="Dan Wing" initials="D." surname="Wing">
            <organization>Citrix Systems, Inc.</organization>
          </author>
          <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
            <organization>Nokia</organization>
          </author>
          <author fullname="Neil Cook" initials="N." surname="Cook">
            <organization>Open-Xchange</organization>
          </author>
          <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
            <organization>Orange</organization>
          </author>
          <date day="26" month="November" year="2024"/>
          <abstract>
            <t>   DNS filtering is widely deployed for various reasons, including
   network security.  However, filtered DNS responses lack structured
   information for end users to understand the reason for the filtering.
   Existing mechanisms to provide explanatory details to end users cause
   harm especially if the blocked DNS response is for HTTPS resources.

   This document updates RFC 8914 by signaling client support for
   structuring the EXTRA-TEXT field of the Extended DNS Error to provide
   details on the DNS filtering.  Such details can be parsed by the
   client and displayed, logged, or used for other purposes.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-structured-dns-error-10"/>
      </reference>
      <reference anchor="RFC8914">
        <front>
          <title>Extended DNS Errors</title>
          <author fullname="W. Kumari" initials="W." surname="Kumari"/>
          <author fullname="E. Hunt" initials="E." surname="Hunt"/>
          <author fullname="R. Arends" initials="R." surname="Arends"/>
          <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
          <author fullname="D. Lawrence" initials="D." surname="Lawrence"/>
          <date month="October" year="2020"/>
          <abstract>
            <t>This document defines an extensible method to return additional information about the cause of DNS errors. Though created primarily to extend SERVFAIL to provide additional information about the cause of DNS and DNSSEC failures, the Extended DNS Errors option defined in this document allows all response types to contain extended error information. Extended DNS Error information does not change the processing of RCODEs.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8914"/>
        <seriesInfo name="DOI" value="10.17487/RFC8914"/>
      </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="RFC6570">
        <front>
          <title>URI Template</title>
          <author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
          <author fullname="R. Fielding" initials="R." surname="Fielding"/>
          <author fullname="M. Hadley" initials="M." surname="Hadley"/>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <author fullname="D. Orchard" initials="D." surname="Orchard"/>
          <date month="March" year="2012"/>
          <abstract>
            <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6570"/>
        <seriesInfo name="DOI" value="10.17487/RFC6570"/>
      </reference>
    </references>
    <?line 212?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to David Adrian, Tommy Pauly, Emily Stark, and Martin Thomson for their input to this specification.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Va25LbxhF9x1dMqAdrUySlVZzYphwla60Ub0q37K4qcblc
riEwJMcLYOAZYClGJX9LviVfltPdMwC4S8kq23GVJZIYzKX79OnTPZrNZllr
29Is1OmLC/XUlq3xtl6rU9NqWwa1cl6dNE1pc91aV4dML5feXC+ywuW1rvBe
4fWqndWubfHeRlezplti+Myb4Mpr42fGe+fD7P5xVujWLDLMZNbO7xYqtEWW
2cYvVOu70D64f/+L+w+yK7PbOl8s1FmNzdSmnZ3SElkWWl0X3+vS1Vh2Z0IW
Ku3b73/sXGvCQtUua+xCfdu6fKrwh60LU7dTFZxvvVkFfNpV8UPrbY5Huasa
HT9UGIxHti5tbb7LMt21G+cXmZplCv/ZGks8n6sX/UH5Z7HBc+2vbj5xfq1r
+28220I9Ll1XrErtDT9sHA5TLvizUjP1yuuN1zV/z11Xt2SeE9jE69Jq/tlU
cMhCVbD0X+mPOSzDDzqPU2/atgmLe/e22+08Pb2XZdlsNlN6SfPksODbt787
m53OrWlXs6IOrpnhSZe3nTcF/SC+evcOp229K7rcBDWMUPxUwYuacUGIgZcb
wALj2o1u1UZfG7U0plYrhpIp5upyY4OgRIVuvTahDUoXhWU8wVHyZmXyDewV
Kvlqar0sjdIj6NHQ3NXXZochRhURoW4FD1cmLkjYtXVuyfVxcmO96oLxYS7m
qGxRlAa2uUMI42PS/FmW8JYOxvDFXr2hKb3RAbOXO5xi+YPJW5q9NGtdwtUF
DeSNe/NjZ/HGsnT5Fe0Ghhq2RpttTG5XNmfohLn6yuQa28Os+WY0coOjGxy6
6CQe05Y62uuUjkXbCkB9q3StzGqFLVlYf6t3Yqmq6mqyHX6ijWGszEnTYYCp
CzHLFLtq4TFM35WtGBBGCrpFlCx5Pdo32dyG0MEpsIlq4S+avlSNd3BVNVVe
067IDDUGNA6e2xGSjL+GNzANHDACQ2FWiDSaa+T7/Y2zTZKjtxtscuyafbtq
Nigdk50CP1WgC8xSTNVSB8C3A1L5GB8L6T4KCrXcqY8NHpzypCzdds9tjCSc
ztYMHTL87NoGSyAHDIJGXKglnSUonP5HmBk2KUtTr8cguY1M8R3IylUIk5wP
jihZ2TWfD/vu6qvabWsFZINXr/AaPL9/UJqoq4nxyFG5GA1fwmhzObyac6B5
VymiKNATVmjAwRbPEVmIkrIr6NzAjs6vaI93zXw9n4rZ3Yz2h3cmuQNe8cvG
NZM4+EjipzQ4GhYk7+0EoJ+oEs+jjztdkz8qV5gywZK3guOUQhQb28CWOC3x
EBZMw9JOeR2J6muyZEGA5w0CqTY39HknNqGIhz+fdp6gXTlvpgquFdDRK0vt
vSXQO1kCNoUJdQqa3nrmTVNqy7G33WDyHNRKARmELUFXVrxFs+yB3NsAn5ka
aQF2SetuwXDArWlKt6PMRYvhtZkgPQdzIOfCECpCPnHbfgjC8qZqhCgrEPKa
gk78LstiQxV2DTZIC9sacVLJAXM+fG++MaZoxpR3pkokAZDpzdoGzguKKRpE
SCABdtIE5+ncLxvgoEVMnp0yYmnAoE/OIsfj6VydEOJDV9EDcvIuoU6rf5ol
wspt4dojhnAwpRAldhO9NXiJoY20j/27uHyEC0NiaUoLeNLZlhEceABrDgRG
JGJbypoURGrtQJAcGYK+vIMEmMYlthsXJ7GcTELnVxrwE+acFR67rAeS2ydY
JEjwSGEDEhM5Q/vdntt9DKuB5+H6O3fUkze6aij9ncFpu4YZHI/JVmR+EI/f
yZFxrpTEAYL1piUrg4pryjdP3oB2CiNE8oRJ9DFCUh1/pu4GRDbI8vzp48+/
OP703bsj9h+99K/L85PZJf7CzKYs0oQ43CLLfvrpJ/VDQCJ+C1kz8W6yUBMj
u02gmEzpEWiGnullfvzgD5PsHb0ZYQ3Nx/Q1eO32HENoUfitTU2ONgIwpvBp
j7ekJEZgJbOkpYnp67FGkVULQ29xUCWEiQYWfN3eEOUFYIa9pLaug2VK566Q
sA4MJvvjMfktd80ukdvZyYuT/QA6G/Z8zmEHx0bf+Pg9+cYt2a80T+68xDDz
ONFDSaQQX0zf8eJcPYXTm85Dy5og27BEdLxf2BBaoTKDH9KaACT9SYHCz651
SclOkBAEB1mSs8lV8zjtHBnoXh8Rs17p3XuLjz0QaMW0cYp5BCv4VzNeu57J
ZGHsmwEFJ/zStQUNsjhW31OtpObhzrvQUTGIINgo1THp0wwjWcs6liI35SxG
9MC3I5w8ZAP2xt7adgNYMOtwOmDTyrRk00eK9rU1y4ZSKx5RnZDORZJ3S5mI
JCtMVHRC31HdkqKFaJ+rb5CB9nNTBa3Jkp8y495W9dJ14ve9SRTJ1kX2CBv6
pWbOUGcNsEoiOOluPrxgywwgILnLAJBzvT5/RnmRBMbAygqc3JKEvGFa20Yf
AkU0RNK0jonGDYwsIJfDfBJYTOBUGbMu9sx2gSUek1NqKaYZLah3FRW84JXn
ry8uJ1P5W714yZ/Pn/zj9dn5k1P6fPH1ybNn/Ycsjrj4+uXrZ6fDp+HNxy+f
P3/y4lRexq9q76ds8vzkm4mw3eTlq8uzly9Onk0km5NEcHnH5iQlJCmPxTw4
jYygQwaSy1EiiAL46vGr//7n+NPI/A+Oj79AHRnTwPFnSAMs4GU1VyP7yldK
rBnVJfCAFbmW68aiOg7EISQRoV3J0TDl778ly3y3UF8u8+b400fxBzrw3o/J
Zns/ss1u/3LrZTHigZ8OLNNbc+/3G5be3+/JN3vfk91HP375F2pBqNnx5395
xGXqKZUnl7vGhJjmguGStS+huB6mQS0NIoJgpKckcqNc1gdqZUlNogGkJkpK
jlseQ8BBt4yVG2GDSlAKmT3xO64wRXm8V929vYNayhbvkE3fP8hSoQgweMjJ
1rxpO4QStXGYzLE1KZoAq353Ypak4+TgY/aaqzMWOTdU7C2REhPsAcXDrEvP
/n7x8kUczUUoqRfJj5FGPlLeJC3zNxElJBkY3xwvVP9xzhpVMGM9PYjw2wZM
yfehuikA5kRIlKnTWnZdOy4HR3PLshK7AHAac2uEOPqgSoeXE9aSrw+PI0ej
dmo03DlNLh7pL0KaHvP2bTCzZyXbgrT6hgtz/+jFmJOmipJzbXAKQvLS/D+B
QVLjw8g4rG7vDDY679tA6jImuADr9tKMRemHRkssvT4/G34Rnv7THz+7D56O
Wuw9mDooK/clJcFzKu0WTruBW1aNd9esi2VtUSiizlDLmhX+59Iebop6NHHW
ICYO+BqVTCvIxURaPUOBVqpjklHy8cEtEXsR2fN4/oB82B/8iB1PRQEv5VIT
51p7S91IbOQa++HGJEsx+M5DNS4+XLzGVYXj3h1lGbaeXjocAvGNcbzQe7dQ
86tk8rirL/YLLQX1oeLiZwGwulkKJJNTCuqah1I/p1zdV5mxbOlLA4GMzjdE
dnNp0dIAoihqeMQ7CK5jh2jkIHtB3VRggYZvbVn25HTDmRyMISF7cnCaCbV4
Z0PBAlm9LG3YpD7gR7UB4aJ+RnI3UX6WXVAGU6csnBq+GsCj3zixZdlz7nzS
HUvG9yLZReRAnZbcU3jZ2wVYUudY88+TeCcyAY/cOAAx0/tO8CsZ+zfbMpBx
+TGAfXunJ6wxaHpXU6vRbHtkSgNz8nPTzidgkJDeEiGU+uDUTfGhnVEPdRo/
c42A6vDp46cXR0ivZbtx3XojoKfiCrRIaX88Ycz+lvoMpgpRmaOWNA33/2Hs
gFC0rgvCjam0PhgIQGnyL9mNk9Qo6PtKL6Etyx7TdHkbvW5mdC1F9zmeGpoE
R66IoOi9a8Cbbazt89EVT5a9jyxp1j26pD7V+zPZMHxoTEhR9cH8F7NO1/D1
QOq6pm2StEJl2NoKSuBrt6WG9HTUD4zFgM7ppsLRFPBxS1jg5nvpYNxSr3kC
uUC9eYslC8erKfCsTf2ToUsi5IdMBU+izLxJgFIFjCMEkWHkNijmWSA4XgWN
+/pROn44GqnuQuLGj5KRqd7d73NRuwC26vjEOgSXWzZlL3zGvYBYF/R3gZXR
CcU0bbwqUHf3ym5Xi0c8AMs3Cnt4lF5uXmpbfdyJsKzLYUwvHXhTUwZYkbtt
G6/RRs7WdPNEHfpVV6Y+qvTlWCa21G6guKQAeAN/paue9zavD+f52KSpllTu
HehRjCXSsCFYfKyX5urU0cTBpetAOiZWKAnWRCdt5IjBQuS04loD72sDnuAV
R57A18JhQgjVjvIabJSg1/el9sFHXNXflkk3yLsl3coAja3orTCX0BxVordv
ofg6c6yyqCEwjp8pXXoY6U5i4Y3bDtc12ucbS6tRe6Jv4Q5ArDSFxXh2jKhi
/FvpAM3VCSlUuQyd3mzvRwt7U7IifCgtu7345jwihYRKyxQ2gHl2sUPKJcJo
X7BLut/ba5R+IGVM9/5RBgQjXZQiJkfXHeEobiUi1rwxPrdY44euWEufDCtp
X0hEWEzQc9wncZP9xQibuD+Fi2V9vNoHEAKbN1VcOBuqwUQd7AXOle1uoLkY
KPGiZnQ1KHdFwy3nhF1b2ivSQLL0Ta9ECNlluTuacosUz0lLDPdAW1OWM7kH
7a/5L+J13yshTJ/+CUO8k7t1zT+6buYLf6wFGyW1LFeuArS07IgxXcqhHKs7
KNMKqYv/xUjK6PHu4gCh9eayKd/H29ej+G8alghcShgnOZ0RdhQPc6bQ9RW/
dapxSnVSICmjGrtE8tqpV7orIW6eVBbGvWi1v4pFPq2NjLlxFQrT1FC1BNum
ayVybpLAPPsf0SW70E4kAAA=

-->

</rfc>
