<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-intarea-proxy-config-11" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Proxy Configuration PvDs">Communicating Proxy Configurations in Provisioning Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-intarea-proxy-config-11"/>
    <author initials="T." surname="Pauly" fullname="Tommy Pauly">
      <organization>Apple, Inc.</organization>
      <address>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author initials="D." surname="Damjanovic" fullname="Dragana Damjanovic">
      <organization>Microsoft</organization>
      <address>
        <email>ddamjanovic@microsoft.com</email>
      </address>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="17"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 39?>

<t>This document defines a mechanism for accessing provisioning domain information
associated with a proxy, such as other proxy URIs that support different protocols
and information about which destinations are accessible using a proxy.</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/tfpauly/privacy-proxy"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>HTTP proxies that use the CONNECT method defined in <xref section="9.3.6" sectionFormat="of" target="HTTP"/>
(often referred to as "forward" proxies) allow clients to open connections to
hosts via a proxy. These typically allow for TCP stream proxying, but can also support
UDP proxying <xref target="CONNECT-UDP"/> and IP packet proxying
<xref target="CONNECT-IP"/>. The locations of these proxies are not just defined as
hostnames and ports, but can use URI templates <xref target="URITEMPLATE"/>.</t>
      <t>In order to make use of multiple related proxies, clients need a way to understand
which proxies are associated with one another, and which protocols can be used
to communicate with the proxies.</t>
      <t>Clients can also benefit from learning about additional information associated with
the proxy to optimize their proxy usage, such knowing that a proxy is configured
to only allow access to a limited set of destinations.</t>
      <t>These improvements to client behavior can be achieved through the use of
Provisioning Domains. Provisioning Domains (PvDs) are defined in <xref target="PVD"/>
as consistent sets of network configuration information, which can include proxy
configuration details <xref section="2" sectionFormat="of" target="PVD"/>. <xref section="4.3" sectionFormat="of" target="PVDDATA"/> defines a JSON
<xref target="JSON"/> format for describing Provisioning Domain Additional Information,
which is an extensible dictionary of properties of the Provisioning Domain.</t>
      <t>This document defines several mechanisms to use PvDs to help clients understand how
to use proxies:</t>
      <ol spacing="normal" type="1"><li>
          <t>A way to fetch PvD Additional Information associated with a known proxy URI (<xref target="proxy-pvd"/>)</t>
        </li>
        <li>
          <t>A way to list one or more proxy URIs in a PvD, allowing clients to
learn about other proxy options given a known proxy (<xref target="proxy-enumeration"/>).</t>
        </li>
        <li>
          <t>A way to define the set of destinations that are accessible through the
proxy (<xref target="destinations"/>).</t>
        </li>
      </ol>
      <t>Additionally, this document outlines how these mechanisms might be used
to discover proxies associated with a network (<xref target="network-proxies"/>). However, this approach is not described for the
purpose of generic proxy discovery, and requires careful
security considerations for clients to limit usage to trusted
scenarios.</t>
      <t>Using this mechanism a client can learn that a legacy insecure HTTP proxy that
the client is configured with is also accessible using HTTPS. In this way,
clients can upgrade to a more secure connection to the proxy.</t>
      <section anchor="background">
        <name>Background</name>
        <t>Other non-standard mechanisms for proxy configuration and discovery have been
used historically, some of which are described in <xref target="RFC3040"/>.</t>
        <t>Proxy Auto Configuration (PAC) files <xref section="6.2" sectionFormat="of" target="RFC3040"/> are Javascript
scripts that take URLs as input and provide an output of a proxy configuration
to use.</t>
        <t>Web Proxy Auto-Discovery Protocol (WPAD) <xref section="6.4" sectionFormat="of" target="RFC3040"/> allows
networks to advertise proxies to use by advertising a PAC file. This solution
uses the DHCPv4 option 252, reserved for private use according to <xref section="2.1" sectionFormat="of" target="IANA-DHCP"/>.</t>
        <t>These common (but non-standard) mechanisms only support defining proxies by
hostname and port, and do not support configuring a full URI template
<xref target="URITEMPLATE"/>.</t>
        <t>The mechanisms defined in this document are intended to offer a standard
alternative that works for URI-based proxies and avoids dependencies
on executing Javascript scripts, which are prone to implementation-specific
inconsistencies and can open up security vulnerabilities.</t>
      </section>
      <section anchor="requirements">
        <name>Requirements</name>
        <t>The key words "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.
<?line -6?>
        </t>
      </section>
    </section>
    <section anchor="proxy-pvd">
      <name>Fetching PvD Additional Information for proxies</name>
      <t>This document defines a way to fetch PvD Additional Information associated with
a proxy. This PvD describes the properties of the network accessible through the proxy.</t>
      <t>In order to fetch PvD Additional Information associated with a proxy, a client
issues an HTTP GET request for the well-known PvD URI (".well-known/pvd") as defined in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>
and the host authority of the proxy. This is applicable for both proxies that are identified
by a host and port only (such as SOCKS proxies and HTTP CONNECT proxies) and proxies
that are identified by a URI or URI template. The fetch MUST use the "https" scheme.
By default, the fetch SHOULD use the standard port for HTTP over TLS (443) and the ".well-known/pvd" path.
However, both the port and the path MAY be overridden by local configuration policy on the client.</t>
      <t>It is not necessary for the client to re‑fetch PvD Additional Information unless
one of the following conditions occurs:</t>
      <ul spacing="normal">
        <li>
          <t>The current time is beyond the "expires" value defined in <xref section="4.3" sectionFormat="of" target="PVDDATA"/></t>
        </li>
        <li>
          <t>A new Sequence Number for that PvD is received in a Router Advertisement (RA)</t>
        </li>
      </ul>
      <t>To avoid synchronized queries toward the server hosting the PvD Additional Information
when an object expires, clients MUST apply a randomized backoff as specified in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>.</t>
      <t>For example, a client would issue the following request for the PvD associated
with "https://proxy.example.org/masque{?target_host,target_port}":</t>
      <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
      <t>A client would send the same request as above for the PvD
associated with an HTTP CONNECT proxy on "proxy.example.org:8080".
Note that the client will not make the GET request for the PvD to port 8080, but
to port 443.</t>
      <t>Note that all proxies that are co-located on the same host share the same PvD
Additional Information. Proxy deployments that need separate PvD configuration properties
MUST use different hosts.</t>
      <t>PvD Additional Information is required to contain the "identifier", "expires", and
"prefixes" keys. For proxy PvDs as defined in this document, the "identifier" MUST
match the hostname of the HTTP proxy. The "prefixes" array MUST be empty for cases when the PvD identifier is not provided by a Router Advertisement as defined in <xref target="PVDDATA"/>.</t>
      <section anchor="svcparamkey">
        <name>Discovery via HTTPS/SVCB Records</name>
        <t>To allow clients to determine whether PvD Additional Information is available for a given proxy,
this document defines a new SvcParamKey in HTTPS and SVCB DNS records defined in <xref target="SVCB-DNS"/>.</t>
        <t>Presence of this SvcParamKey, named <tt>pvd</tt> indicates that the proxy host supports PvD discovery via
the well-known PvD URI ".well-known/pvd" defined in <xref section="4.1" sectionFormat="of" target="PVDDATA"/>. The presence of this
key in an HTTPS or SVCB record signals that the proxy's PvD Additional Information can be fetched
using the "https" scheme from the proxy host on port 443 using the well-known path. The presentation and
wire-format values for <tt>pvd</tt> SvcParamKey MUST be empty.</t>
        <t>A client receiving a DNS record like the following:</t>
        <artwork><![CDATA[
proxy.example.org. 3600 IN HTTPS 1 . alpn="h3,h2" pvd
]]></artwork>
        <t>can interpret the presence of the pvd key as an indication that it MAY perform a PvD fetch from
"https://proxy.example.org/.well-known/pvd" using HTTP GET method.</t>
        <t>While this key is particularly useful for detecting proxy configurations when
looking up a DNS record for a known proxy name, this key generically provides
a hint that PvD Additional Information is available, and can be used for use
cases unrelated to proxies.
This marker is advisory; clients MAY still attempt to fetch PvD Additional Information even if
<tt>pvd</tt> SvcParamKey is not present.</t>
        <t>The <tt>pvd</tt> SvcParamKey is registered with IANA as described in <xref target="svcparamkey-iana"/>.</t>
      </section>
    </section>
    <section anchor="proxy-enumeration">
      <name>Enumerating proxies within a PvD</name>
      <t>This document defines a new PvD Additional Information key, <tt>proxies</tt>, that
is an array of dictionaries, where each dictionary in the array defines
a single proxy that is available as part of the PvD (see <xref target="proxies-key-iana"/>).
Each proxy is defined by a proxy protocol and a proxy location (i.e., a hostname and port or a URI template
<xref target="URITEMPLATE"/>), along with other optional keys.</t>
      <t>When a PvD that contains the <tt>proxies</tt> key is fetched from a known proxy
using the method described in <xref target="proxy-pvd"/>, the proxies array describes
equivalent proxies (potentially supporting other protocols) that can be used
in addition to the known proxy.</t>
      <t>Such cases are useful for informing clients of related proxies as a discovery
method, with the assumption that the client already is aware of one proxy.
Many historical methods of configuring a proxy only allow configuring
a single hostname and port for the proxy. A client can attempt to fetch the
PvD information from the well-known URI to learn the list of complete
URIs that support non-default protocols, such as <xref target="CONNECT-UDP"/> and
<xref target="CONNECT-IP"/>.</t>
      <section anchor="proxy-dictionary-keys">
        <name>Proxy dictionary keys</name>
        <t>This document defines two required keys for the sub-dictionaries in the
<tt>proxies</tt> array: <tt>protocol</tt> and <tt>proxy</tt>. There are also optional keys, including
<tt>mandatory</tt>, <tt>alpn</tt>, and <tt>identifier</tt>. Other optional keys can be added to the
dictionary to further define or restrict the use of a proxy. The keys
are registered with IANA as described in <xref target="proxy-info-iana"/>, with the initial
content provided below.</t>
        <table anchor="proxy-information-keys-table">
          <name>Initial Proxy Information PvD Keys Registry Contents</name>
          <thead>
            <tr>
              <th align="left">JSON Key</th>
              <th align="left">Optional</th>
              <th align="left">Description</th>
              <th align="left">Type</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">protocol</td>
              <td align="left">No</td>
              <td align="left">The protocol used to communicate with the proxy</td>
              <td align="left">String</td>
              <td align="left">"connect-udp"</td>
            </tr>
            <tr>
              <td align="left">proxy</td>
              <td align="left">No</td>
              <td align="left">String containing the URI template or host and port of the proxy, depending on the format defined by the protocol</td>
              <td align="left">String</td>
              <td align="left">"https://example.org:4443/masque/<br/>{?target_host,target_port}"</td>
            </tr>
            <tr>
              <td align="left">mandatory</td>
              <td align="left">Yes</td>
              <td align="left">An array of optional keys that client must understand and process to use this proxy</td>
              <td align="left">Array of Strings</td>
              <td align="left">["example_key"]</td>
            </tr>
            <tr>
              <td align="left">alpn</td>
              <td align="left">Yes</td>
              <td align="left">An array of Application-Layer Protocol Negotiation protocol identifiers</td>
              <td align="left">Array of Strings</td>
              <td align="left">["h3","h2"]</td>
            </tr>
            <tr>
              <td align="left">identifier</td>
              <td align="left">Yes</td>
              <td align="left">A string used to refer to the proxy, which can be referenced by other dictionaries, such as entries in <tt>proxy-match</tt></td>
              <td align="left">String</td>
              <td align="left">"udp-proxy"</td>
            </tr>
          </tbody>
        </table>
        <t>The values for the <tt>protocol</tt> key are defined in the proxy protocol
registry (<xref target="proxy-protocol-iana"/>), with the initial contents provided below.
For consistency, any new proxy types that use HTTP Upgrade Tokens (and use
the <tt>:protocol</tt> pseudo-header) MUST define the <tt>protocol</tt> value to match
the Upgrade Token / <tt>:protocol</tt> value. Extensions to proxy types that use
the same HTTP Upgrade Tokens ought to be covered by the same <tt>protocol</tt> value;
if there are properties specific to an extension, the extensions can either
define new optional keys or rely on negotiation within the protocol to discover
support.</t>
        <table anchor="proxy-protocol-value-table">
          <name>Initial PvD Proxy Protocol Registry Contents</name>
          <thead>
            <tr>
              <th align="left">Proxy Protocol</th>
              <th align="left">Proxy Location Format</th>
              <th align="left">Reference</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">socks5</td>
              <td align="left">host:port</td>
              <td align="left">
                <xref target="SOCKSv5"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">http-connect</td>
              <td align="left">host:port</td>
              <td align="left">
                <xref section="9.3.6" sectionFormat="of" target="HTTP"/></td>
              <td align="left">Standard CONNECT method, using unencrypted HTTP to the proxy</td>
            </tr>
            <tr>
              <td align="left">https-connect</td>
              <td align="left">host:port</td>
              <td align="left">
                <xref section="9.3.6" sectionFormat="of" target="HTTP"/></td>
              <td align="left">Standard CONNECT method, using TLS-protected HTTP to the proxy</td>
            </tr>
            <tr>
              <td align="left">connect-udp</td>
              <td align="left">URI template</td>
              <td align="left">
                <xref target="CONNECT-UDP"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">connect-ip</td>
              <td align="left">URI template</td>
              <td align="left">
                <xref target="CONNECT-IP"/></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">connect-tcp</td>
              <td align="left">URI template</td>
              <td align="left">
                <xref target="CONNECT-TCP"/></td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The value of <tt>proxy</tt> depends on the Proxy Location Format defined by proxy protocol.
The types defined here either use a host as defined in <xref section="3.2.2" sectionFormat="of" target="URI"/> and port,
or a full URI template.</t>
        <t>The value of the <tt>mandatory</tt> key is an array of keys that the client must understand and process to be
able to use the proxy. A client that does not understand a key from the array or cannot fully process
the value of a key from the array MUST ignore the entire proxy dictionary.</t>
        <t>The <tt>mandatory</tt> array can contain keys that are either:</t>
        <ul spacing="normal">
          <li>
            <t>registered in an IANA registry, defined in <xref target="proxy-info-iana"/> and marked as optional,</t>
          </li>
          <li>
            <t>or proprietary, as defined in <xref target="proxy-proprietary-keys"/></t>
          </li>
        </ul>
        <t>The <tt>mandatory</tt> array MUST NOT include any entries that are not present in the sub-dictionary.</t>
        <t>If the <tt>alpn</tt> key is present, it provides a hint for the Application-Layer Protocol Negotiation
(ALPN) <xref target="ALPN"/> protocol identifiers associated with this server. For HTTP proxies,
this can indicate if the proxy supports HTTP/3, HTTP/2, etc.</t>
        <t>The value of <tt>identifier</tt> key is a string that can be used to refer to a particular
proxy from other dictionaries, specifically those defined in <xref target="destinations"/>. The
string value is an arbitrary non-empty JSON string using UTF-8 encoding
as discussed in <xref section="8.1" sectionFormat="of" target="JSON"/>. Characters that need to be escaped in JSON strings
per <xref section="7" sectionFormat="of" target="JSON"/> are NOT RECOMMENDED as they can lead to difficulties in
string comparisons as discussed in <xref section="8.3" sectionFormat="of" target="JSON"/>. Identifier values MAY be duplicated
across different proxy dictionaries in the <tt>proxies</tt> array. References to a particular identifier
apply to the set of proxies sharing that identifier. Proxies without the <tt>identifier</tt> key are
expected to accept any traffic since their destinations cannot be contained in <tt>proxy-match</tt> array defined
in <xref target="destinations"/>. Proxies with <tt>identifier</tt> keys are expected to accept only traffic
matching rules in the <tt>proxy-match</tt> array and SHOULD NOT be used if they are not included in
the <tt>proxy-match</tt> array.</t>
      </section>
      <section anchor="proxy-proprietary-keys">
        <name>Proprietary keys in proxy configurations</name>
        <t>Implementations MAY include proprietary or vendor-specific keys in the sub-dictionaries of the <tt>proxies</tt>
array to convey additional proxy configuration information not defined in this specification.</t>
        <t>A proprietary key MUST contain at least one underscore character ("_"). The right-most underscore serves
as a separator between a vendor-specific namespace and the key name, i.e. the string to the right of the
right-most underscore is the key name and the string left from the underscore specifies the
vendor-specific namespace. For example, "acme_tech_authmode" could be a proprietary key indicating an
authentication mode defined by a vendor named "acme_tech".</t>
        <t>When combined with <tt>mandatory</tt> array, this mechanism allows implementations to extend proxy metadata while
maintaining interoperability and ensuring safe fallback behavior for clients that do not support a given
extension.</t>
      </section>
      <section anchor="example">
        <name>Example</name>
        <t>Given a known HTTP CONNECT proxy FQDN, "proxy.example.org", a client could
request PvD Additional Information with the following request:</t>
        <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
        <t>If the proxy has a PvD definition for this FQDN, it would return the following
response to indicate a PvD that has two related proxy URIs.</t>
        <artwork><![CDATA[
:status = 200
content-type = application/pvd+json
content-length = 322

{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80"
    },
    {
      "protocol": "connect-udp",
      "proxy": "https://proxy.example.org/masque{?target_host,target_port}"
    }
  ]
}
]]></artwork>
        <t>From this response, the client would learn the URI template of the proxy that supports UDP using <xref target="CONNECT-UDP"/>,
at "https://proxy.example.org/masque{?target_host,target_port}".</t>
      </section>
    </section>
    <section anchor="destinations">
      <name>Destination accessibility information for proxies</name>
      <t>Destination accessibility information is used when only a subset of destinations is reachable through
a proxy. Destination restrictions are often used in VPN tunnel configurations such as split
DNS in IKEv2 <xref target="IKEV2SPLIT"/>, and in other proxy configuration mechanisms like PAC files (see <xref target="background"/>).</t>
      <t>PvD Additional Information can be used to indicate that a set of proxies only allows access to
a limited set of destinations.</t>
      <t>To support determining which traffic is supported by different proxies, this document defines
a new PvD Additional Information key <tt>proxy-match</tt>. This key has a value that is an array of
dictionaries, where each subdictionary describes a rule for matching traffic to one or more
proxies, or excluding the traffic from all proxies described in the PvD. These subdictionaries are referred
to as "destination rules", since they define rules about which destinations can be accessed
for a particular proxy or set of proxies.</t>
      <section anchor="destination-rule-keys">
        <name>Destination Rule Keys</name>
        <t>This document defines four keys for destination rules. Any destination rule MUST contain
the <tt>proxies</tt> key. Values corresponding to the <tt>proxies</tt> key may be either an empty array,
which implies that no proxy defined in this PvD can process matching traffic, or an array of strings
with at least one proxy <tt>identifier</tt> string. All destination rules MUST also contain at least one
other key use to describe the destination properties. Each key MUST correspond to an array
with at least one entry.</t>
        <t>Extensions or proprietary deployments can define new keys to describe destination properties.
Any destination rules that include keys not known to the client, or values that cannot be
parsed, MUST be ignored in their entirety.</t>
        <t>Destination rule keys are registered with IANA as defined in <xref target="proxy-destination-iana"/>,
with the initial content provided below.</t>
        <table anchor="destination-rule-keys-table">
          <name>Initial PvD Proxy Destination Rule Registry Contents</name>
          <thead>
            <tr>
              <th align="left">JSON Key</th>
              <th align="left">Optional</th>
              <th align="left">Description</th>
              <th align="left">Type</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">proxies</td>
              <td align="left">No</td>
              <td align="left">An array of strings that match <tt>identifier</tt> values from the top-level <tt>proxies</tt> array</td>
              <td align="left">Array of Strings</td>
              <td align="left">["tcp-proxy", "udp-proxy"]</td>
            </tr>
            <tr>
              <td align="left">domains</td>
              <td align="left">Yes</td>
              <td align="left">An array of FQDNs and wildcard DNS domains</td>
              <td align="left">Array of Strings</td>
              <td align="left">["www.example.com", "*.internal.example.com"]</td>
            </tr>
            <tr>
              <td align="left">subnets</td>
              <td align="left">Yes</td>
              <td align="left">An array of IPv4 and IPv6 addresses and subnets</td>
              <td align="left">Array of Strings</td>
              <td align="left">["2001:db8::1", "192.0.2.0/24"]</td>
            </tr>
            <tr>
              <td align="left">ports</td>
              <td align="left">Yes</td>
              <td align="left">An array of TCP and UDP port ranges</td>
              <td align="left">Array of Strings</td>
              <td align="left">["80", "443", "1024-65535"]</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>domains</tt> array includes specific FQDNs and zones that are either accessible using specific proxy (for
rules with non-empty <tt>proxies</tt> array) or non-accessible through any proxies (for rules with empty <tt>proxies</tt> array).
Wildcards are allowed only as prefixes (<tt>*.</tt>). A wildcard prefix is used to indicate matching entire domains or subdomains instead of
specific hostnames. Note that this can be used to match multiple levels of subdomains. For example, "*.example.com"
matches "internal.example.com" as well as "www.public.example.com".
Entries that include the wildcard prefix also MUST be treated as if they match
an FQDN that only contains the string after the prefix, with no subdomain. So,
an entry "*.example.com" in the <tt>domains</tt> array of a <tt>proxy-match</tt> rule would match the FQDN "example.com".
This is done to prevent commonly needing to include both "*.example.com" and "example.com"
in the <tt>domains</tt> array of a <tt>proxy-match</tt> rule.
Matches are performed against absolute domain names, independent of the client's configured DNS search suffixes.
Clients MUST NOT apply local DNS suffix search rules when interpreting <tt>domains</tt> entries. A trailing dot (".")
at the end of a domain name is not required; the matching logic is the same regardless of its presence or absence.</t>
        <t>The <tt>subnets</tt> array includes IPv4 and IPv6 address literals, as well as IPv4 and IPv6 address subnets
written using CIDR notation <xref target="CIDR"/>. Subnet-based destination information can apply to cases where
applications are communicating directly with an IP address (without having resolved a DNS name)
as well as cases where an application resolved a DNS name to a set of IP addresses. Note that
if destination rules include an empty <tt>proxies</tt> array (indicating that no proxy is applicable for
this subnet), an application can only reliably follow this destination rule if it resolves DNS
names prior to proxying.</t>
        <t>The <tt>ports</tt> array includes specific ports (used for matching TCP and/or UDP ports), as well as
ranges of ports written with a low port value and a high port value, with a <tt>-</tt> in between.
For example, "1024-2048" matches all ports from 1024 to 2048, including the 1024 and 2048.
If <tt>ports</tt> key is not present, all ports are assumed to match. The array may
contain individual port numbers (such as "80") or inclusive ranges of ports. For example,
"1024-2048" matches all ports from 1024 to 2048, including the 1024 and 2048.</t>
      </section>
      <section anchor="using-destination-rules">
        <name>Using Destination Rules</name>
        <t>The destination rules can be used to determine which traffic can be sent through proxies, and
which specific set of proxies to use for any particular connection. By evaluating the rules in
order, a consistent behavior for usage can be achieved.</t>
        <t>Rules in the <tt>proxy-match</tt> array are provided in order of priority, such that a client
can evaluate the rules from the first in the array to the last in the array, and attempt
using the matching proxy or proxies from the earliest matching rule first. If earliest matching
rule has empty array of <tt>proxies</tt> client SHOULD NOT send matching traffic to any proxy defined
in this PvD.</t>
        <t>In order to match a destination rule in the <tt>proxy-match</tt> array, all properties MUST apply. For
example, if a destination rule includes a <tt>domains</tt> array and a <tt>ports</tt> array, traffic that matches
the rule needs to match at least one of the entries in the <tt>domains</tt> array and one of the entries in the
<tt>ports</tt> array. In addition, a destination rule is considered a match only if at least one of the
associated proxy identifiers supports the protocol required by the connection attempt (for
example, <tt>connect-udp</tt> for UDP traffic). If no listed proxy identifier is applicable to the protocol,
the rule MUST be treated as not matching, and the client continues evaluation of subsequent rules.</t>
        <t>A matched rule will then either point to one or more proxy <tt>identifier</tt> values, which correspond
to proxies defined in the array from <xref target="proxy-enumeration"/>, or instructs the client to not send the
matching traffic to any proxy. If a matching rule contains more than one <tt>identifier</tt> the client
MUST treat the array as an ordered list, where the first <tt>identifier</tt> is the most preferred.
Multiple proxy dictionaries can contain the same <tt>identifier</tt> value. In this case, the client
can choose any of the proxies; however, the client ought to prefer using the same proxy for the consecutive requests
to the same proxy <tt>identifier</tt> to increase connection reuse.</t>
        <t>Entries listed in a <tt>proxy-match</tt> object MUST NOT expand the set of destinations that a client is
willing to send to a particular proxy. The array can only narrow the set of destinations
that the client is willing to send through the proxy. For example, if the client
has a local policy to only send requests for "*.example.com" to a proxy
"proxy.example.com", and <tt>domains</tt> array of a <tt>match</tt> object contains "internal.example.com" and
"other.company.com", the client would end up only proxying "internal.example.com"
through the proxy.</t>
      </section>
      <section anchor="proprietary-keys-in-destination-rules">
        <name>Proprietary Keys in Destination Rules</name>
        <t>Implementations MAY include proprietary or vendor-specific keys in destination rules to define custom matching logic
not specified in this document.</t>
        <t>Similar to proprietary keys in proxy dictionaries (<xref target="proxy-proprietary-keys"/>), a proprietary key in destination
rule MUST contain at least one underscore character ("_"), which separates a vendor-specific namespace from the key name.
For example, "acme_processid" could be a key used to apply rules only to traffic of a specific process identifier as
defined by a vendor named "acme".</t>
        <t>Clients that encounter a proprietary key they do not recognize MUST ignore the entire destination rule in which the
key appears. This ensures that unknown or unsupported matching logic does not inadvertently influence proxy selection
or bypass security controls. This handling applies uniformly across all match rules, including fallback rules.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>In the following example, two proxies are defined with a common identifier ("default_proxy"), with
a single destination rule for "*.internal.example.org".</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "http-connect",
      "proxy": "proxy2.example.org:80",
      "identifier": "default_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.internal.example.org" ],
      "proxies": [ "default_proxy" ]
    }
  ]
}
]]></artwork>
        <t>The client could then choose to use either proxy associated with the "default_proxy" identifier
for accessing TCP hosts that fall within the "*.internal.example.org" zone. This would include the
hostnames "internal.example.org", "foo.internal.example.org", "www.bar.internal.example.org" and
all other hosts within "internal.example.org". The client will use the same proxy for the following
requests to hosts falling into the "*.internal.example.org" zone to increase connection reuse and make
use of the connection resumption. The client will not use the proxies defined in this configuration
to hosts outside of the "*.internal.example.org" zone.</t>
        <t>In the next example, two proxies are defined with a separate identifier, and there are
three destination rules:</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "http-connect",
      "proxy": "special-proxy.example.org:80",
      "identifier": "special_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.special.example.org" ],
      "ports": [ "80", "443", "49152-65535" ],
      "proxies": [ "special_proxy" ]
    },
    {
      "domains": [ "no-proxy.internal.example.org" ],
      "proxies": [ ]
    },
    {
      "domains": [ "*.internal.example.org" ],
      "proxies": [ "default_proxy" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client would use "special-proxy.example.org:80"
for any TCP traffic that matches "*.special.example.org" destined to ports 80, 443 or any port between
49152 and 65535. The client would not use any of the defined proxies for access to
"no-proxy.internal.example.org". And finally, the client would use
"proxy.example.org:80" to access any other TCP traffic that matches
"*.internal.example.org".</t>
        <t>In the following example, three proxies are sharing a common identifier ("default-proxy"), but use
separate protocols constraining the traffic that they can process.</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "connect-udp",
      "proxy": "https://proxy.example.org/masque/udp/{target_host},{target_port}",
      "identifier": "default_proxy"
    },
    {
      "protocol": "connect-ip",
      "proxy": "https://proxy.example.org/masque/ip{?target,ipproto}",
      "identifier": "default_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.internal.example.org" ],
      "proxies": [ "default_proxy" ]
    }
  ]
}
]]></artwork>
        <t>The client would use proxies in the following way:</t>
        <ul spacing="normal">
          <li>
            <t>Traffic not destined to hosts within the "*.internal.example.org" zone is not sent
to any proxy defined in this configuration</t>
          </li>
          <li>
            <t>TCP traffic destined to hosts within the "*.internal.example.org" zone is sent
either to the proxy with "http-connect" protocol or to the proxy with "connect-ip" protocol</t>
          </li>
          <li>
            <t>UDP traffic destined to hosts within the "*.internal.example.org" zone is sent
either to the proxy with "connect-udp" protocol or to the proxy with "connect-ip" protocol</t>
          </li>
          <li>
            <t>Traffic other than TCP and UDP destined to hosts within the "*.internal.example.org" zone is sent
to the proxy with "connect-ip" protocol</t>
          </li>
        </ul>
        <t>The following example provides a configuration of proxies to be used by default with a
set with exceptions to bypass:</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80",
      "identifier": "default_proxy"
    },
    {
      "protocol": "http-connect",
      "proxy": "backup.example.org:80",
      "identifier": "secondary_proxy"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "*.intranet.example.org" ],
      "proxies": [ ]
    },
    {
      "subnets": [ "192.0.2.0/24", "2001:db8::/32" ],
      "proxies": [ ]
    },
    {
      "proxies": [ "default_proxy", "secondary_proxy" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client will not forward TCP traffic that is destined to hosts matching
"*.intranet.example.org", 192.0.2.0/24 or 2001:db8::/32, through the proxies.
Due to the order in "proxies" array in the last rule of "proxy-match", the client would prefer
"proxy.example.org:80" over "backup.example.org:80"</t>
        <t>The following example provides a configuration of proxies that enable setting one proxy
for "example.org" and a different proxy for all of its subdomains, i.e. "*.example.org":</t>
        <artwork><![CDATA[
{
  "identifier": "proxy.example.org.",
  "expires": "2026-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy1.example.org:80",
      "identifier": "proxy1"
    },
    {
      "protocol": "http-connect",
      "proxy": "proxy2.example.org:80",
      "identifier": "proxy2"
    }
  ],
  "proxy-match": [
    {
      "domains": [ "example.org" ],
      "proxies": [ "proxy1" ]
    },
    {
      "domains": [ "*.example.org" ],
      "proxies": [ "proxy2" ]
    }
  ]
}
]]></artwork>
        <t>In this case, the client will forward TCP traffic that is destined to host "example.org"
to "proxy1.example.org:80" and all traffic to the subdomains of "example.org", i.e.
"*.example.org" will be forwarded to "proxy2.example.org:80".</t>
      </section>
    </section>
    <section anchor="network-proxies">
      <name>Discovering proxies from network PvDs</name>
      <t><xref target="PVDDATA"/> defines how PvD Additional Information is discovered based
on network advertisements using Router Advertisements <xref target="RFC4861"/>. A network
defining its configuration via PvD information can include the <tt>proxies</tt>
key (<xref target="proxy-enumeration"/>) to inform clients of a list of proxies available
on the network.</t>
      <t>This association of proxies with the network's PvD can be used as a mechanism
to discover proxies, as an alternative to PAC files. However, client systems MUST
NOT automatically send traffic over proxies advertised in this way without
explicit configuration, policy, or user permission. For example, a client
can use this mechanism to choose between known proxies, such as if the client was
already proxying traffic and has multiple options to choose between.</t>
      <t>Further security and experience considerations are needed for these cases.</t>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>The mechanisms in this document allow clients using a proxy to "upgrade" a configuration
for a cleartext HTTP/1.1 or SOCKS proxy into a configuration that uses TLS to communication to the proxy.
This upgrade can add protection to the proxied traffic so it is less observable by
entities along the network path; however it does not prevent the proxy itself from
observing the traffic being proxied.</t>
      <t>Configuration advertised via PvD Additional Information, such DNS zones or associated
proxies, can only be safely used when fetched over a secure TLS-protected connection,
and the client has validated that the hostname of the proxy, the identifier of
the PvD, and the validated hostname identity on the certificate all match.</t>
      <t>When using information in destination rules (<xref target="destinations"/>), clients MUST only allow
the PvD configuration to narrow the scope of traffic that they will send through a proxy.
Clients that are configured by policy to only send a particular set of traffic through
a particular proxy can learn about rules that will cause them to send more narrowly-scoped
traffic, but MUST NOT send traffic that would go beyond what is allowed by local policy.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="proxies-key-iana">
        <name>New PvD Additional Information key</name>
        <t>This document registers two new keys in the "Additional Information PvD Keys" registry <xref target="IANA_PVD"/>.</t>
        <section anchor="proxies-key">
          <name><tt>proxies</tt> Key</name>
          <t>JSON Key: proxies</t>
          <t>Description: Array of proxy dictionaries associated with this PvD</t>
          <t>Type: Array of dictionaries</t>
          <t>Example:</t>
          <artwork><![CDATA[
[
 {
  "protocol": "connect-udp",
  "proxy": "https://proxy.example.org/masque{?target_host,target_port}"
 }
]
]]></artwork>
        </section>
        <section anchor="proxy-match-key">
          <name><tt>proxy-match</tt> Key</name>
          <t>JSON Key: proxy-match</t>
          <t>Description: Array of proxy match rules, as dictionaries, associated with
entries in the <tt>proxies</tt> array.</t>
          <t>Type: Array of dictionaries</t>
          <t>Example:</t>
          <artwork><![CDATA[
[
 {
  "domains": [ "*.internal.example.org" ],
  "proxies": [ "default_proxy" ]
 }
]
]]></artwork>
        </section>
      </section>
      <section anchor="proxy-info-iana">
        <name>New PvD Proxy Information Registry</name>
        <t>IANA is requested to create a new registry "Proxy Information PvD Keys", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON keys for use in sub-dictionaries under the <tt>proxies</tt> key.
The initial contents of this registry are given in <xref target="proxy-information-keys-table"/>.</t>
        <t>New assignments in the "Proxy Information PvD Keys" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names or semantics, do not contain an underscore character ("_")
in the names (since underscores are reserved for vendor-specific keys), and have clear format definitions.
The reference and notes fields MAY be empty.</t>
      </section>
      <section anchor="proxy-protocol-iana">
        <name>New PvD Proxy Protocol Registry</name>
        <t>IANA is requested to create a new registry "Proxy Protocol PvD Values", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON values for the <tt>protocol</tt> key in <tt>proxies</tt> sub-dictionaries.
The initial contents of this registry are given in <xref target="proxy-protocol-value-table"/>.</t>
        <t>New assignments in the "Proxy Protocol PvD Values" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names. The reference and notes fields MAY be empty.</t>
      </section>
      <section anchor="proxy-destination-iana">
        <name>New PvD Proxy Destination Rule Registry</name>
        <t>IANA is requested to create a new registry "Proxy Destination Rule PvD Keys", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON keys for use in sub-dictionaries under the <tt>proxy-match</tt> key.
The initial contents of this registry are given in <xref target="destination-rule-keys-table"/>.</t>
        <t>New assignments in the "Proxy Destination Rule PvD Keys" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names or semantics, and do not contain an underscore character ("_")
in the names (since underscores are reserved for vendor-specific keys).</t>
      </section>
      <section anchor="svcparamkey-iana">
        <name>New DNS SVCB Service Parameter Key (SvcParamKey)</name>
        <t>IANA is requested to add a new entry to the "DNS SVCB Service Parameter Keys (SvcParamKeys)" registry
<xref target="IANA_SVCB"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Number: TBD</t>
          </li>
          <li>
            <t>Name: pvd</t>
          </li>
          <li>
            <t>Meaning: PvD configuration is available at the well-known path</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: this document, <xref target="svcparamkey"/></t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="IANA_PVD" target="https://www.iana.org/assignments/pvds/pvds.xhtml#additional-information-pvd-keys">
          <front>
            <title>Additional Information PvD Keys Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA_SVCB" target="https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml#dns-svcparamkeys">
          <front>
            <title>SvcParamKeys Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HTTP">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="URITEMPLATE">
          <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>
        <reference anchor="PVDDATA">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <author fullname="É. Vyncke" surname="É. Vyncke"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="W. Shao" initials="W." surname="Shao"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>Provisioning Domains (PvDs) are defined as consistent sets of network configuration information. PvDs allows hosts to manage connections to multiple networks and interfaces simultaneously, such as when a home router provides connectivity through both a broadband and cellular network provider.</t>
              <t>This document defines a mechanism for explicitly identifying PvDs through a Router Advertisement (RA) option. This RA option announces a PvD identifier, which hosts can compare to differentiate between PvDs. The option can directly carry some information about a PvD and can optionally point to PvD Additional Information that can be retrieved using HTTP over TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8801"/>
          <seriesInfo name="DOI" value="10.17487/RFC8801"/>
        </reference>
        <reference anchor="JSON">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </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="SVCB-DNS">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="ALPN">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CONNECT-UDP">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="CONNECT-IP">
          <front>
            <title>Proxying IP in HTTP</title>
            <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9484"/>
          <seriesInfo name="DOI" value="10.17487/RFC9484"/>
        </reference>
        <reference anchor="PVD">
          <front>
            <title>Multiple Provisioning Domain Architecture</title>
            <author fullname="D. Anipko" initials="D." role="editor" surname="Anipko"/>
            <date month="June" year="2015"/>
            <abstract>
              <t>This document is a product of the work of the Multiple Interfaces Architecture Design team. It outlines a solution framework for some of the issues experienced by nodes that can be attached to multiple networks simultaneously. The framework defines the concept of a Provisioning Domain (PvD), which is a consistent set of network configuration information. PvD-aware nodes learn PvD-specific information from the networks they are attached to and/or other sources. PvDs are used to enable separation and configuration consistency in the presence of multiple concurrent connections.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7556"/>
          <seriesInfo name="DOI" value="10.17487/RFC7556"/>
        </reference>
        <reference anchor="RFC3040">
          <front>
            <title>Internet Web Replication and Caching Taxonomy</title>
            <author fullname="I. Cooper" initials="I." surname="Cooper"/>
            <author fullname="I. Melve" initials="I." surname="Melve"/>
            <author fullname="G. Tomlinson" initials="G." surname="Tomlinson"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>This memo specifies standard terminology and the taxonomy of web replication and caching infrastructure as deployed today. It introduces standard concepts, and protocols used today within this application domain. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3040"/>
          <seriesInfo name="DOI" value="10.17487/RFC3040"/>
        </reference>
        <reference anchor="IANA-DHCP">
          <front>
            <title>Procedures and IANA Guidelines for Definition of New DHCP Options and Message Types</title>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="September" year="2000"/>
            <abstract>
              <t>This document describes the procedure for defining new DHCP options and message types. 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="43"/>
          <seriesInfo name="RFC" value="2939"/>
          <seriesInfo name="DOI" value="10.17487/RFC2939"/>
        </reference>
        <reference anchor="SOCKSv5">
          <front>
            <title>SOCKS Protocol Version 5</title>
            <author fullname="M. Leech" initials="M." surname="Leech"/>
            <author fullname="M. Ganis" initials="M." surname="Ganis"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="R. Kuris" initials="R." surname="Kuris"/>
            <author fullname="D. Koblas" initials="D." surname="Koblas"/>
            <author fullname="L. Jones" initials="L." surname="Jones"/>
            <date month="March" year="1996"/>
            <abstract>
              <t>This memo describes a protocol that is an evolution of the previous version of the protocol, version 4 [1]. This new protocol stems from active discussions and prototype implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1928"/>
          <seriesInfo name="DOI" value="10.17487/RFC1928"/>
        </reference>
        <reference anchor="CONNECT-TCP">
          <front>
            <title>Template-Driven HTTP CONNECT Proxying for TCP</title>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="5" month="December" year="2025"/>
            <abstract>
              <t>   TCP proxying using HTTP CONNECT has long been part of the core HTTP
   specification.  However, this proxying functionality has several
   important deficiencies in modern HTTP environments.  This
   specification defines an alternative HTTP proxy service configuration
   for TCP connections.  This configuration is described by a URI
   Template, similar to the CONNECT-UDP and CONNECT-IP protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-connect-tcp-10"/>
        </reference>
        <reference anchor="IKEV2SPLIT">
          <front>
            <title>Split DNS Configuration for the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="P. Wouters" initials="P." surname="Wouters"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This document defines two Configuration Payload Attribute Types (INTERNAL_DNS_DOMAIN and INTERNAL_DNSSEC_TA) for the Internet Key Exchange Protocol version 2 (IKEv2). These payloads add support for private (internal-only) DNS domains. These domains are intended to be resolved using non-public DNS servers that are only reachable through the IPsec connection. DNS resolution for other domains remains unchanged. These Configuration Payloads only apply to split- tunnel configurations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8598"/>
          <seriesInfo name="DOI" value="10.17487/RFC8598"/>
        </reference>
        <reference anchor="CIDR">
          <front>
            <title>Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan</title>
            <author fullname="V. Fuller" initials="V." surname="Fuller"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <date month="August" year="2006"/>
            <abstract>
              <t>This memo discusses the strategy for address assignment of the existing 32-bit IPv4 address space with a view toward conserving the address space and limiting the growth rate of global routing state. This document obsoletes the original Classless Inter-domain Routing (CIDR) spec in RFC 1519, with changes made both to clarify the concepts it introduced and, after more than twelve years, to update the Internet community on the results of deploying the technology described. 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="122"/>
          <seriesInfo name="RFC" value="4632"/>
          <seriesInfo name="DOI" value="10.17487/RFC4632"/>
        </reference>
        <reference anchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+097XbbxpX/5ykm9I9KXZLWl12b3WyqSHajxpFVS05Pt5tj
g8RIQg0CXACUzMjq2VfYN9hn2UfZJ9n7NV8AKCuO2+2e054mocjBzJ079/ve
uRiNRqrJmtxM9EE5ny+LbJY0WXGhT6ry/Qq+K86zi2UF35VFrbMCv7/KavgL
Bx2W8yQrapVMp5W5mvQ9pE+uDmuVlrMimcMiaZWcN6PMNOejrGiSyiSjBT40
mtFDo+1tlSaNmSgAw1yU1Wqi6yZVKltUE91Uy7rZ2dp6urWj3pnVdVmlE31U
NKYqTDM6xKmVqpukSN8keVnAcitTq0U20X9qytlQ12XVVOa8hk+rOX74Qalk
2VyW1UTpkdLwP9jNRJ+N9UmyzFf0DcN9BshZBd+W1cVE7y8WuRkCBLMxfWkA
GzmAucBhv0nw1/GsnEdzH471YTL/c1IAGmfBAgD9RVIk7R9pne+yWVXWJewu
WCVN3cjfzO2AznJ/HOtX8Ms8eXdZ0rfnyzznFf+YwDN5ctUaACsmRfYjHd5E
/2s9S3JThQuvKjv+Nz/yr7SqKspqDk9dweFpfbR/vP/m5PvDCT0JB31hmom+
bJpFPXn48Pr6epzBbsew2MOkrrOLYm6Kpn64uEr5X+P3l808f5CkaYaAJDmQ
yzkvUBYjGDECAqh5cibffTcUDsQNRfLT38JQ/cpcZHVTrSxwp98ffP0ToUuL
elRfzabug0Apfy6SKpm3wTq9mp3g9zEMajQa6WQKn5MZ0OzZZVZr4JElrqNT
c54VptaJnpvZJRxGPdewIZ3MZgagAb5bhEyYEhPqAD8KgC5nGXBQqq+z5hJm
IiYDul/O4K9al82lqfhL/frVUa2by6SBXxcLYBGdZufnpkJQYARwTpkDixdp
uAQAXy4bfX2ZwYSpqUFmiIwAnraQTnOjlwSwADDmjc+zNM2NUg+QeasyXc4I
avXN2dkJDcyMQLSsDXww+uDl8fGzgzNACHBrKhhCgPTNzamhx/XT8e74sS7P
9Rc4z5evnh883d7eur1VG8AYptDA8Kaq4KmmRBQMYC/XSZUO7IqbOsnz8lrP
8gxPG4eVC3gOJFPBS+B36rKs4cerLHGb0meXBuFcLUB45vlK5sEjOzs4AfkF
Um7OYwEXQz0FxM0SQGFelxbn6vXhiRsCm/pKdjyC72krO0+f3N5qPIUjGJjM
3pnGjVfB+CMevvdk7/aWINN5OZOjAdw0BKrFMZ5VUTb6zyBXHVKTmvaIQqKm
BRG+2oONZwI0oxszX+RAYzWCC1+cPfvu5MX+2TNc//GjXwHm4biPChAoKdAa
YBNkhqGnAY75Mm8ykI9wKjnRqYA0dOgvDMKir5MVPrssYBIS7YppLtxCm9xB
9APgROND2oF7hImZtjElWFIFk8+c5jM8AZKcLAB7OBCI3JlNTQG4avR5Vc51
bpKK+JA5wkusmF1iEJVdYcVk1mTz7Eci9cyy5bJOLoxw7LuivMYliCeE7DSI
jJloWt5GWTjaYwYkStc5zI3r1kAxgPmQWccoepAgsjmKFDO3hM+HABu9TK4y
oGNBWDK7zMwVstBlVS4vGFF8oqrPMBj3mgt6A22CTTq6iJO/AoWB1POrR48e
A98mtMEaJCbCAuATBYOqB8X/zu2d8RvgeijHjTBnxSxfpoJqFT+Smgb0WR1I
kB2cH2BAzvHf7o13SarAD4f7Z/sI4JMnW9vAjV5Q/+705TFw4Rf4Xxqw8+gp
DGCYSBIA2mdVNhXTqo2TNdprKMSeISNq8x4QwVI1zQi2pFohaLC7hakaZAdm
8b4lxuvUTA0nWsG6TtkQBeCp4jHh50uTLxxfek7Ul+W1kqHCLROltsd633Lt
uWkAelTBa7RzV1EhqRdeM+mNmxs2EEHn395uxvPnQBvE7YDgeVmZUKMBUhNc
esgsgYjwkl0R1wrLhsoQWRFF5QXYMUULHAeKKQCDTEUA0jiGidFKp9DDccLC
sY4MuEm5pcKneBWPwxxUeRMdJuwjp9OEMxEhH5znPLu4bEKJl2b1DPi98mK0
cxCWzwAU+TiSwQiN/qa8RroROMDWrcqEKRUVilA7zIa0T/taVouSZf8FiM8q
mwlWLSgrFtWV+fdlVhmUtqCwl7mqzWxZZc2KZUFqrC+CEweqmqQcC038k1wF
2Gs9M8AlWYmi7nXNMhRg9IZVYmUdigumCpGyublIZis0oxECo511sqIRJMLl
2UgUMwIRKagrOqYQTnM6Bi5gSIBqhmoWaJjl4qJKUsOym4ha1vd2CG3QKhDY
2IMH+muwCC6AigCDNw+m7o9bpV4SdRdgNRPTgsUTUgZikfcUC0c8CncyGrSA
AfIxhUIC0gB3U1Zs7KBXNadjZVHFQt2ePot1EIi7W3tsELCLuL+ELcR+4sbJ
/sGmPs9yE4rkx2MSym4Gmv93yVWCKywaxf8RtmrQwHj96gWSMyy9QHVcpGwt
p2gSIJvgtzBj0rdtkWYA5h/MVHtQR4cOFSdiROiNP5zsH25GoO61QEW5Uyvh
HtbG6RUK6sAEE/k5Xbnf2F4GbBAy0IYDMqnLfEkQwuCaDv/wm4OTqz0RWHrn
0c4QeKc21ZUw3aLKrtCgwdmBCMEKI+ovQ3033kaIv0J/aITzoeraebr7lE6K
LQO0jfB00PoLiWgzpCKyPJz3gAJQvBTa4nTlDEpnTzKzpyVJC/ukPQvGAHqq
kaEJCjYwMy2MIRyBNRGLR6SarAD1mbL9X6KDA2vY3agkxygCua9MS3xkiEhY
czRNam+jEujJVZmluOICJy1m8L0qUUcDs1IAxROpFiIdBiwCUxXE42B55WR3
sWdbL8wsOwfnHywXa/vM7JooHsglWS60E4tXyxzEaTLN8qxhexXEwSuWomTP
MZbAL8U9AciD716fng2G/F99/JI+v3r2+9dHr54d4ufTb/ZfvHAflIw4/ebl
6xeH/pN/8uDld989Oz7kh+FbHX2lBt/t/3HA5z14eXJ29PJ4/8Wg/4gatK3p
oKpFZRp2RiJp8vXByX//1/YeEPEXSKvb22hm8R9Ptn8FPg/g2BS8GlEl/wkM
s1KgpEC+k2EAlDVLFlkDInqIwqK+RDUPghJ4/5+/Qk2qR4+/+heFPupzNGLI
bltvx1gxiid188AbLOtd+0+0kFTgdMLE+KDFT211QssWtIq83+BwSiT01D7B
bpMAg1WnKqvrJZEt683fPjsj1Q5GjTUJ9LXJ8xEbWLgUWXuDsf8WA0GDTTye
Xn9/j6WXmOXoLxQpzYvCRnNcDxlE0BCijS2WHDQYYgPhmYIRGIceSGQAZzfA
jmBIoICWmUWEMX1t2JDK6cuDb08jEUEbt5ELH2QonCBRPQuRJiBcsOhx0o+d
eT4Z4lwbGxlQ3GoAUuYSGH6svl4hvhJwsInu5RFhWvuQswVoJ4gBgpZswrMX
p3pjb2+XYaUl2qeiF0lzOVbOCCT0EZZxOvsYDtLA/cjUOHOVpbBP3CHGJPKW
ybEo4UDguArtLSuky8YalWD9AAGjz2MpSMwvoNjK/M9//OdHyXZZgHWBctpY
qjgvnXNQFvwMMM4MZCv6MiPCOfxBwTBw0g3CMjWr0iLGvF+gtTrQV0m+NOsI
dTcm1BF4C4W51qfIEMXM6OPlfAqI520BSeAWYKEKNpxd8XSJfgXGCwzatyYE
CZSNV/vgE52VrI90vSpmwNtF9iM8BZNXbGJgnEs8kgpPGOmYbWFzB7oUyk6y
mqZ/hq1o2asP0RAZIiMhyVZw6uWcFkb7EzQsCVbWZx/jXTjn57B58z6ZU0jd
WeXX5TKHZ1GYtM6rLU1wH14sKRJLAxvSZeaX6SmuO09qeP7mKw7+vkGMDOUz
0vDtAI7/L3/5i5pIyPFLFGFqwkwGf9HMauLFzJe6s4iaEAd8qR+2+EehLAbD
4EsrhhAp+MM//bkGvOO6aj9GQW2E5Go0o+zmAcPgw16ZEAvd6G/RFUXEZ4MO
xJMnW0+2BmN1XDZiBwVsdp2B2kRGpEAe/tAn1fEcgCFJEOBsFDhU9hsQK3DW
fnrUxB2xOytHFLQ0qZUGtGmSvvUlGQr2O9xvP/WOxX4HCy0vVxLZwhUosFgb
jNY3DG5LDjkNqpyc9RFxCv+iH7NeyhDnkv1FtibM3iQZ72PgBH2FxpKVHmSv
KDgOEB/vUZpgFmGsnzvnjCIxyXoDd9iZnZhTAUSzS6cUyQIXwee9WVYsweJJ
VYFxQnsHwQ3qp2GJO0vQ9yChYA/aL2iFtDhbosd6ZVZboYdSAGxX72thkJ3c
5YeYrAGjdkYG7M2DINlyy9KvHblPwXqs5mjHAbzkAd99YGCsZ7mzBhKJ/7BR
o5o1NhzJcJ/fwd0QuKQACeTD41OU4gR2tOcv8OcR/MzR+sfWOQaXCxUCHRIs
Gsw+pERhqt+CmHgLk6QUr649lzKlMJOwQyX2YYhPtcbw6mr4e9lcTDuLFtiY
nCWdZfEBKCV0MCo0ZtTA8m6B/ov6rjOSCDSpeBDvy9rqr9j84Zh8Cx1kXLDw
0f7BAAtkzQRbaVwQBPRIZUYSxyUdz04hn0J4+BG/jAP5zVqcfVpPDzrP3rVU
mmicjlAe693HW1v66Fiwua3HQPCL4svB5e7wcgeMMdAopDM45C3ek2AhPBqD
Q8kVTMg0FyqikBKeRdaQuQbiD3fM8VOxHxGv6g592qEfH+0iNcFqFCMrlxl5
IEDdRCY1YB9kw2yZJ1WOaQ+M+knIvEGyk0hCK1TDgkjlZfkOR4BHHGGXuTiM
3iL3DP26EoSkfJ3IrBqcK3D0Gm+D3UNeDJ1nLuFVWho+KBaXy8JmuFAF2pwS
eSHzpHrHgjNJr7K6rFa/9qYVHAPYaKAdkwY9gOZebplBoZWdqy51OulM5C2R
k95hFeWojQtkYnCIRXYU1AtE8AiT5Sy99TMbGg/iPziNjcY77ziMoa/3klHC
3rHfdygW38o6b4ccl+VkCSsxjL7bVAllF6/Rx9cGQ9VBDkW0Mz8jqwMxIAXn
Lk9HDBJqioRJ1+VcAM6N2hjNaQJYbuSRszlWzxJJWxKarXglNcnf2vwkx5fk
S5u91RvZ2IyH4oRGsTRNtN6KlH3Rm5HdxGxICWfDeVJSjBxBBMyS0YEMauxh
0Z7FfuHwgkO2ZV4RyCx3I44LZLRL20ckFOR1hmHK1Z2DxDUUGlMge6UggYZs
LErMCmbEv6LucDWXy+FM76ZsIcj3IiUKNdk4egA07P90ScnDWpLLgUDiJGOY
SYKjbyWwSbJ6nat460OfVwbrfDlfeJkbGNhJXpkkJbQm17g2TI++qkD2XVKs
gti7YJWAiCOn1sB36eDgZ0/WXTqyJryYhfthaqQjhjCpQyZgGAazyjfQrUSX
pUutGEnaIcyoPIBYuwUoGGiWGIY/S1+9cnMTVEdwVYTy3x2dWEtSHADP51Sc
s0bYNNelN9txoENHvZyOQiki4kJ5XiCCnRBzEKxvCaf0++otGRaY8MN/MCUU
MdxQctR4NG/nGJSB412BLHuLKv4tq5e33s6G6V522dYl6FMJcCN8wcbx1JYV
PSf5Sdgb6IIGKKkJsvhRTQujC8G+p05ghkaCEKkXkH1WZMitmINvhJHFTzBA
oXBeHyiJjrVa+oN+aTf3QR8aDp8jfX3QZ6uFgf88Y8tDf4DHsKJo7b/hdydW
P+jjEqdgCufvSGPfVQKC0Jw2xFgf9EBycKNluhjYyWkIzSzjRGBa4RcKZkR7
K4gYRCeHkk4gQVaIcUiWZ6AtmhD8EDZrm4Xu/B6YvBLqePjP0+pf7oh30HYc
AcKEfwRK/6D3A1UakxxLVpYQcywgCioDJMhpi1A46oimnqBr307J4ONCfxoI
4G9g9sEPBA6yQC8k+z5sMnqRrNC9syg5NhclUJp15flLzz/1utUvdwfDAVjT
vHLg2Lr1sZKLbE2hGSooi3KxYenJ1PAAtL7p4Fg1xeaIlWiwmJUsLDVG5Lm/
1dEJA9VxtSwe1s1EP/AMZysj8WRGDZknVID45eCIGU+E4Z2lkZiRReasB7ds
IAYOj1X+It/Ih4jrdzzH2GGqshP7Kg75yZpFXQmhRULUHRGB4RCfFKN6gRVZ
iGKggWgIygbJ83gtyfSz8p3BwiOkS7TNaTcTv51FbZZpOboE9WuqTfblgkKO
YOMc56VqNjggmihaRD+MJqbhY5BXVLrDJYS98CoX0uoDHLM1jaTHyLDwsoCe
aQP4a5WRXBG1EySFbIKRstGupqjkHJn/kzWKyXAOJZhAVMcigJRITrHEImA7
MfgjSRUUnShR8yT0mSxPvEDjL15Ys/c5C8APQKTCTCRtMfLRK/zhu7qcvasf
wRco5CYkZT9gGQJlaK4eoTW8/XQHyyk/0HgUnCOR7J2nOtWleDz06KlNocTF
qUPxfJcFAFutFmgb0pGGgsKtW3/+hc9enBKbwfNrlw70GEwYaagPHfPqQ/RI
ducTR90HmlnvE65i9ezg5Muj0eGYLgUgTqaZwwo+LBN6eedkCJH6GmkHsq1F
WndLOcSwGGyihWurg/spMlDJsdQb06TM3XYQe53ETVyQIVbAmtTm7niH617Q
i0N63X365LGU/1L1hCKXr1MhMW5tiGSXNyqtzxa6x16VB47IR9T51CjGeeny
iW2XgWZMS8Nhh3AqAsI5CgIHVZjiSNzSyq5FMtFtpvdJktTZRVFKUgC1tqsD
9AawDXgEuODnUcrZAL1HReJOi5KAgfnLUU2yf61yG8Zn2DGCCXsU60mp9F4k
6BAm5vj+AlQ/mGKrYYceHL3bIaTfb2/X7cZWdLi6V9SQ1rZwOwsCQVZvRy4O
VQMI8ZAT4gJ1/NAQ44Q2ZqYlZmZthPtZZmpj/8XJMVZPfYEfqOh3l2pqe022
dkaLbEnOZXKWJLw5IPH6mY9vgm0RWNk+Oo5PPdwd8n93hhr82jYHhZ6XYx9r
CLZjC5FRmARxTanqJNrtNQNFKVM0A2R53cokx7Wg5JwpgYEhtUw9zZoK/T10
oDlxQ06VM1zx36/Pno+eAFXMSnI6keZAMS/rui2FnnCwH2fARQ8uE7ytgufh
82hskoCLliz48WC9WoHREcz3Kz8b0WGrVAipH+t0bCVmyjbD+TnisGHr2O4a
YweAu5ounNyxgd1wA0fephfDVmoT0iXTrMHEbFXWdXwDJpQk3v0PQmHEfGNv
odTt8w+IWXG+XDSyVAjb2BEmNx1h+Wc4lWlDqViyTOu3SRNwqsz7Bev9hktP
Fw3JAKAKxCOGfmb2mkFUlizil8xLkoaMy9gZCeOjFEjrUmYIaAdCDqj1gEih
KoGRc5aU4V/mLWy3IKE0mytGc1zIzL5ysk6EIW5IrZnKxYusoGVwM5s8aKUe
bh6skcwgOKN6Piax4BaCmx+E1hUYGWXlSv7ckr0xJ6vNLdEpRgHnl69wtz5E
3gNzFKbjCu04k+xEEOXOMX21iLHBysXqSqBPYFGpvmf1PkMdPLNCQm8M3gw2
OY5UYfn5aF46o2LGZc0gv2tF8VJJx2MhlmmuDQWg2+ihC0mLZGZcfRFCxWkd
jI1LXVMlZa6NXVhQp/qhyOpoKje3TJSb88bbHCH0UthCj6u1sLJ6cnUtg2Q2
N2/ANL98g5Uj8zI1A8ApFnhg9K6Dc5ugw7BuQXdVkaHEEMWn4zwCgyGJYr/W
wEb1QWxOaTSzZ9t+kPRYUBxPFcytGlWSbuQopkJp4H8kMFGC0Y/cKLxtYgNg
lI1E55MLVJlnwcXkUHWdnBt9DqtgxZC/bRSV9rMhGdUJS3peOW+V2VeCgkr9
Nrq80VP78vz3h8fDnvKXQVB5RKeibHXLHUkoF8Do1Cb9X5cQHYVWzyUxGheM
nlOsRepW6cwZI5mtNqpMs6yKeFeAi3oBx89ly9ayChJFuAJH0X1GhC/jjAUR
4AI0yxpg3tnaspHgEXpK67Zhx+SmuCA07O7sKHWjdFTrMuk5yvFgiKNshQ0M
2dnaeTzaejza2T3bejzZ2oL//ysPcqUvE/2nH+QbkrL4BV3mvaF/8w9knuKE
YdyAJrIj3q96QZo82RrQqNvh+knDCHN3zp9Rz8Yrw79/ULdMHs9ZrFHOl092
GJV7ESX4vE0cxw5JK8zd1BpvsrKl2QokDBUM+zlboAzzobc4XEkzi5ZsbUF2
ZKUodb8pAC9kTlDBEyfTUC33XeoiFCYgNYPial+pHS5ncy6ZvSrNd5OXYrt+
f3KsmyVQQN42OWykuAYuaRRWOsDwo2+fXe1gLAU+fL9zevLi6IxuHz7Cy8Kc
OoJR4f222CgIrk5QOYq9dFLbRHZwk4iuoH28QMf6QU5AyG2qlqXrk5O1v6yq
PnpZtQxumXCBF9IZB92tjYvGDA9itRjb8uRv9RZ0qfuUG8TGo5ST4/csXiU6
bEsFfJxFrS1DAJIKEnW+mD8h+5cI2VnEdot02dfdelRuX2RqSDaR+NM+wNn5
oNYyytxJ9YK9yB5CZK9Y28vzSi7PpyFNo50OqtM5F9ZHEAt+basAd6sYzx/m
5qKdwG2SRHbVoh6pEwxAeIWo+vaO7O55uax8VrcD/VjvF6vO15HJq2KfD+Ya
6+/ZjQSDkCVoGtiecaXEHKhg6kKAGFon75zNLnvLFyShC9QUNk3QNtSpYDUp
XDyuTRxEBWGEzzrjXAsc2u28QOSl8WBAB9BKB0tS8I057D4/QLGgwe0u2Uqw
VEYICafzCYmxprqYwMGwuJQMBe2jB3gMa6HfFqRW4nBaVPmLGAvSGBzqCwBc
A5zqIws5IevV0VxonrK5KcfPSpQOQ4INNlrEfrYCMgeaH7q6QQ5iWn4E/5xD
mVRLeNgmTOdMr8/Md8KIwTZsel6tS779bdPzJJEkh77fpVzGHJcyR8Rq05PW
PWvKBViKV6A8W7GZdTnfZmYTqsMwu8op4FS6FfTln9Fc5ks+11mezjAZgyrZ
P9K7HDaWsQYPuGK46L/9ckwuEiAz+olBAElcYNuDPhCO8PYn9wO5eozef4VC
lIHyz/XCAdb39iSdPplMthGG7ac7460x/PNwZ08WZkuub1nsaIJLUL8SVMRV
UlyYtUuByQsr7O3t0kJbO3ujx48e7T6iZTCjExIlUvZdCWyX0ulI/rWpnbdy
IpYOhGeDNKg/yR/LwnTi/9372+5Jlp4boE8USwViJh95bdHgJooC/LXnHh6G
6Cwf4IQ6mLB/srH6gxCetEBBU8rInceEQvXk0uiNt78cv92k/gSWUvk3Z9+G
xppTJpJHsQSNKhisAvkL/mkwPgtmjcOGaxkz1uHlkaxuG4bMx67/C/Erhbf8
Au2gCTBJyBscIYS9DXpZB7ePvjLZKchyi+UUPMtozFg9C7MiVpRT6VoLTaTu
rJDGVj58LdVFGbkOAPaIlMTT0SFEZZMSTUrOMTImddkw+dDSjN/8WJ+WQ5yO
9Ftn7y4c2iJsyo/FgU1SFOzE+WsgBOQgRoW9EpnKlWSA7YojIHj1O19RpF8s
G4spuvDXAY7u+EZH9dPAxRpHPlqqWuAydET3BT7cYMcsvAdv6ZLDbFhBZ69h
u3oqVr+/iPoyoISuwZ0lo/uc2GPsmvu41BnH5/mCIj1BQ+2DwpjoErpCe0SN
36Ck25DjwCIDt5JadDV4tXWwqSTPirEzwkGwEVujbYsQf82ls5Yj8/KCnRtX
9AG6H+gUbzTiXFljE3Qz8gwAV/jRZj5FJXQEYa8aATeswZ4wfDnaMlP/UJlY
XVdZw64sQntwdPgKd8NCGrP98AX6pnuPd3cwUXBKj8nF+tDCylo+pcuXuOtH
4PEEwaJaroyFzQtTwN+swdvfcv/t6MTBu2FzKBhspFgd0NQV9ZrC48aT2FTB
roNltYBjA7A9j3LmR9wVv2okFrE2p2tT+pRtv8jXG0EwOHYROteZOQPKJ4Ml
3zHY1EYA+boyeQaPrCTGJ25x29bMkLbsXmvcqeLeYGBol5WrZ0K3wV4rQOth
vcpl42LDXZZwJC62xUO8+SzmRb0ZkqASYwNdQZrEEp1cQsdNkFHCfjjXG1xm
oGH9t0M7+O0Ir1HZhMM4voDKtsrO1t6TgbbqhvxnWpYsThyBu8dBQRUv8Sf9
hsvjj2MMxFqkvOtcxhgGE0s3s+U80JWcQ2FkghuprOuF5AA2+jLhh3VBl4hr
fyMdjS+yOgi2GltbtPAXK1r1eTeNPrrmnjttg016UnSZoGUrhLf4whCPDKu5
0oRtKBcE8T3iHMW1gk9St0LhBrS8fMDB99gZ669X2iDFWI4zjlEVNUqgXIHv
TxZlL7gPUatrGqDk1UdTmly8wr5XZlsyEOwZJQmkZlSiatJsgWr1GFYTQOoc
o/Osql2th0scUjF+0vqBo4ZS7R9e4bBM6mIyFptuFdCQGL9odJTB5cXHGnig
M4AMZwqdBeEQV4lFsk+C0UGal25C94XErBUdpahtzKTTixAtoqRH2q09m6EN
oNlSSn/9nfhIOeGRnffPLIIw6ZhDLKgiuTn0O3Per+GKKJoNbbI62EkYGhEb
KCgq7rPBuEXKmtEqAobaVdkE87B3c7Xrz0X6kKEiLYPY6EIX3lIXLRYU/Lhk
QlRD6q5nSOlr0BHLXk8hd8wdxNsgm/KWm/mAXhHEbhJNFtxFrgeKllr1NZQE
zNAfRY9zwLfkmUSHLqfsMouwQoGRCytfYAPsANXUEaKRoCRm4fngU7Hm8UIg
5oCtd7ooM+5/0W2C1xMpceXpLsam/KXEdik3Ewkxd2/fuyFrFvBsljM5KN+O
g7K10rFA3cmrdAhJS2Q432nOdX1ksLQqXvyCfE2fsB9AzjdcieFNSmdsw+5e
IkYTimlNBQILG+8Gj8R6qj2VQGH1oK/F7iDed3tDYzJMspHknl2WWPGFKAnS
ajD/r7Gbn+2y59DrasEZyOBGMy0vpWa2Q0pJ7euor5VkpWtli4/88Biz5OYB
OuuIxSrDrdGs5yxsQzc7Y3Ep/UKcS2XeL1xZxdqWiL6XnkIyF3+TiajsSQuE
ZpGzaOFcKm6A2LeSate5Yv+99lqd1khxMCIL/UvFWR92FqV/jW3ESrNZlNN5
dNxl3hfdlWxlizk6SFe/ej3nGNGOXdYFRLC5BAXnx1Q4V6xkgU62F2FeLngD
1qpfM6vqayLVKqL6Viqaeuy/z1An1ROXd+03Z8u6AckVe8+KxFLYkSZKBOLd
z2yeIYWxWFxTDBaJgI31VbrouvRU9IRwq06a6V6VVf/2ZrBphbntZFLfWTLl
jDRb6NT2d6hYSHJKWRoVJUlCh/mQvHHGNlftlU6sE2mG4VHKTwUKlZq53Vmu
NAjaLROzYpnqEsmvB5WcaSwlaDIrL7Dt0bqK8D5DT5wKUFFUPknt4WrJ6VKN
krufU3BuBy37wieXW7EZV+4O61DDE1g6p5qCnNs8SfmxyVmiYhH/dLVIMIgS
NDltqjK3UIDmS0k8kSFC7QQyDI9gkJcrVdEmZWOLDiX0yVxhlbUmfI1UTdZw
XLTkaAFreKxREN7xEr9ZOkIG57oxkMu6bzh/Ire6/FXjDvKtOOxIFizCkmqh
/8dVPm5YDH6MpY+WAt1n5Z2fsTTWAjk8iPLu4kL0D/6gB2tOjOdx4AlO26vq
H7o1SGehWYwSh6xbsYjET7e2LnFP9yqA6awTVFvH703AABP37ye2RgYJL6ut
pUjKDQlLSkcynzEIuuV3NSUXFQ7Oy7J/5iGnKKZJtWZl1N0IJufWGXgBuX81
tovCll2u51/XPAyL+8RSwX7ftApiR0o4y3ug506zUe7AvDNK7pm33DdgXmmK
0AWfLhAF14w6vkrQfdl18eUtlMsGXVK74EfO18nEwrxv7i0OXScxT3XO4+Pr
l2gpmZ5o1+Qfcu4+K5NFkeSjnwKBPPPzxZ1MtFbaYZCCx0aZ7r2n2492JNW9
TjjGMFrhOLwDnKIUJPwUIXyPeT+7VF/n7orwRG6++1iVjc2ixO4LhBEv9x4O
s5n0W6IYEvYgxNZfNtyLwXKJ+is6KGJXOqxY+hCwVvwE7rmVAC4C6pQMFjF+
5Jiw1CzVMIFt499FTtsbFKTYCzNo9RW2n8A6BKm7zKs7bD8SVaG4s3eS7jT8
Rs7wwz7huAUnFi2nc4AQU6KuM0YEd2Ovfonj8A8r8HMUhD+Exx7eBBXVt8Ob
qKb68wKZfRKM2cIWfQ+zBU37k+D6O7NjvYyzbJS12e06WXF3YWEAeWWGk1uR
mXcP00sSipgPU32JkDV20iiSHj8TAFpcTPWo34DvxOsYyIf0y97BATm5oQBt
ELz/K0Mb9fn5NGDt2bKYphh2WDv3OeC/LzBEnR1hH17hjq8FxKlSm4+dur7i
YvoqDLFyjdp7vItk74ZxTOMf1u29VsYAzXJxX7PWYJfypFp9FvlXJYVpPt2E
lMIfnjCqIR3qoMT04e7OT5v3Dsk77KLgp5mf1p+Ud/91rSdXABNypktXC192
ETfUIQJQUEQIGHbSClRcfrh0aUVOTGeF374rn/F5egqdAXNGB91jQnJiaJ0V
ST3+19DdzxIVHK+lZClIBm7HaG8ZkEE/iGiNk97tm/ZkS2O8gyvafFGoXPIN
kyg4zf8/MbN9T2bnwX/bMCEP/nS5ch9jSvZ1P8f03hPufIIk+ClSIN4bqt41
p8l0jXl6n+1u+Ea/q6Y+j2dj0lZt0mYgp8bCycCsOVC+GykdtsLuu5T5se+A
oT7yNw/aL3RTKujC7u5M4avk7u6CbDt60Tsf8AYXNQKT182EPd9ryVL39YOv
5RVhe08eb2Nl6L6dQrk3SaEkiOUOtoZvdx8NX/gY3cCi9M6at/dx2JLaXQdN
XRPXpdS5wrbtryptkJCAtK9VtHHpllB0MWoZ/gt/gcvaVUn0pt++t/MNpZgh
eklV6W9rBm/jE/KuV3Vj5lyipKiqedmUiCZuMcOZbmugRu8BtCfjfQZ8U5HU
zGJ7kTybZU18GkPJfVNJCOypwtLteVbT1fw4fR6VrLm2kL7jANb5cvDfNoLw
zXmjjolRHh5grJXtnruweWu7QXpVJTzi7hyU3laNF8PXkEibVJeRo4YF7xf4
KhXM4bXeQkg9RoxJjXvTIUa/sWSYGPLUznIQP3bzAOYfxXPddl5n1n1HVvSa
g+jVyiQa5N2Bg7aalpuVM7zM3WBwmzoebWN/nyp4cdGKY/1tHW9bFNb0ZqCo
WWrWeRkhMYN9hyHVb6cUKGu6ry7EHLxrTFNikTE8yuXsU2wOQpbEdKVQQVHB
HbeuDriJGve7KhmcweVg7SUG7yCBEDH5OTey5wXacaip8YITqzXjFxQGrGGl
z5q3tjKRYkk43ylC5Ps30zhSdlUrWMqanJt8FVw4t321iTsT+w7IuLefT6AM
VavGDOn9KsmzlFvP27qX9ltACDOsGIOwXnlOxW388lSZ10/m5uAnGv/KJkTP
ubSFsGlp23qEiTW6X99XwdF98WnrdUP+4riFsU2tZVQFNCsXvNtOrJG0a1Tz
495SHpUg8PUCd4sE+/31VPpEBUpSe+TXdB0B2neb/VtH+ZZ0cL+U4Jslkvqa
uwolqonjLearEW0wVe7yL8ZfXeFVJOfltYboIFyU9iVW1/aqutwfc+/m4j2S
EKM7pbEAo1qC44/fludGSVEr/PYNbXuDlXuHuMu5NhKyZnLbu3bg2vCBFYGA
vuH3NyOAD4IyYhirlL3BOrHqhG7W2uurE3+DcdGt8+ltQYdvH1J45zV4NnwK
byeT4hMvBUznG/WR+O5navZxq35gE9jhwZXn9eBCfrsbH1GZCXVdC1satF9U
2K4+dkdhG259At7uH8P9WPw2QI+j4xPaZUhl7l7pTdBq2ZIxsYW868nU0tBs
RjXA8uYKR5qD7tSOgIdR4O9k/fvSA1JfJBdGVG20jrwAtua72q7dAYoQWKDT
U4yqy1qng30NyA7ptGO27yRyq6Fg5PcktRpfdptRE0cinoFKsouCzf5gz+uQ
4xezvlCSYtMPufIO0opOwQrwZ2inNXBsVxmsZV8LuvMYl+ff7K354Mi40ovF
o42XE+qktAw1cJ4stL1vyP0o5gk24gK6l1GufK+4q2jP3ofkiTa4Y4Yfb6EL
XuPbV/y4ORSb9sqwTRe1ic+kWwoeoutATg8U1DYZVHyeut6H9nVFHT446fTN
vWn33/1kRnBz43LcROOvyAd3dzG3XQ6J+tss8rNYweEp6FN8D0boQ87P5IO/
BhtIa79PJ7D1t/gtoXU6VnwKrXWW+TuUvE41f7r0vaORwj1obj2S/g4pryWA
gxeJ/02FsKdp9PTo/Xan6FTCZPQ+Lby7SP1SNoI3bG3Gby+8k6zRc2aa5l4A
tgzv7uXqaL2QeJVYyPjs7S2YVr+UF89O9NnXh/gXzDKht8n9Un9nEuSESY+H
Fb8Eix3L1sv0YIKDS7xrSh05qjLPcZWjZ2fP4RfXJ3cShzeG8WvFbm/V/wK7
cclIno4AAA==

-->

</rfc>
