<?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.5) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-href-24" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="7595" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <?v3xml2rfc table_borders="light"?>
  <front>
    <title>Constrained Resource Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-24"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2025" month="August" day="31"/>
    <workgroup>CoRE Working Group</workgroup>
    <abstract>
      <?line 109?>

<t>The Constrained Resource Identifier (CRI) is a complement to the Uniform
Resource Identifier (URI) that represents the URI components in Concise
Binary Object Representation (CBOR) rather than as a sequence of characters.
This approach simplifies parsing, comparison, and reference resolution in
environments with severe limitations on processing power, code size, and
memory size.</t>
      <t>This RFC updates RFC 7595 to add a note on how the "URI Schemes"
registry of RFC 7595 cooperates with the "CRI Scheme Numbers"
registry created by the present RFC.</t>
      <t><cref anchor="status">(This "cref" paragraph will be removed by the RFC editor:)<br/>
The present revision –24 attempts to address follow-on AD review
comments as well as comments from the ARTART review.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-href/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/href"/>.</t>
    </note>
  </front>
  <middle>
    <?line 129?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The <xref target="STD66">Uniform Resource Identifier (URI)</xref> and its most common
usage, the URI reference, are the Internet standard for linking to
resources in hypertext formats such as <xref target="W3C.REC-html52-20171214">HTML</xref>
or the <xref target="RFC8288">HTTP "Link" header field</xref>.</t>
      <t>A URI reference is a sequence of characters chosen from the repertoire
of US-ASCII characters (Section <xref target="RFC3986" section="4.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
The individual components of a URI reference are delimited by a number
of reserved characters, which necessitates the use of a character escape
mechanism called "percent-encoding" when these reserved characters are
used in a non-delimiting function.
The resolution of URI references (Section <xref target="RFC3986" section="5" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>)
involves parsing a character sequence
into its components, combining those components with the components of a
base URI, merging path components, removing dot-segments (<tt>"." and
".."</tt>, see Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), and
recomposing the result back into a character sequence.</t>
      <t>Overall, the proper handling of URI references is quite intricate.
This can be a problem especially in constrained environments <xref target="RFC7228"/><xref target="I-D.ietf-iotops-7228bis"/>,
where nodes often have severe code size and memory size limitations.
As a result, many implementations in such environments support only an
ad-hoc, informally-specified, bug-ridden, non-interoperable subset.</t>
      <t>This document defines the <em>Constrained Resource Identifier (CRI)</em> by
constraining URIs to a simplified subset and representing their
components in <xref target="STD94">Concise Binary Object Representation (CBOR)</xref>
instead of a sequence of characters.
Analogously, <em>CRI references</em> are to CRIs what URI references are to
URIs.</t>
      <t>CRIs and CRI references allow typical operations on URIs and URI references such as parsing,
comparison, and reference resolution (including all corner cases) to be
implemented in a comparatively small amount of code and to be less
prone to bugs and interoperability issues.</t>
      <t>As a result of simplification, however, <em>Simple CRIs</em> (i.e., not using
CRI extensions, see <xref target="extending"/>) are not capable of
expressing all URIs permitted by the generic syntax of <xref target="STD66"/> (hence
the "constrained" in "Constrained Resource Identifier").
The supported subset includes all URIs of the
<xref target="RFC7252">Constrained Application Protocol (CoAP)</xref>, most URIs of the
<xref target="STD97">Hypertext Transfer Protocol (HTTP)</xref>,
<xref target="RFC8141">Uniform Resource Names (URNs)</xref>, and other similar URIs.
The exact constraints are defined in <xref target="constraints"/>.
CRI extensions (<xref target="extending"/>) can be defined to address some of the
constraints and/or to provide more convenient representations for
certain areas of application.</t>
      <t>This RFC creates a "CRI Scheme Numbers" registry and updates <xref target="RFC7595"/>
to add a note on how this new registry cooperates with the "URI Schemes"
registry that <xref target="RFC7595"/> describes.</t>
      <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 <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>In this specification, the term "byte" is used in its now customary
sense as a synonym for "octet".</t>
        <t>Terms defined in this document appear in <em>italics</em> where they
are introduced (in the plaintext form of this document, they are
rendered as the new term surrounded by underscores).</t>
        <t>The general structure of data items is shown in the <xref target="RFC8610">Concise Data Definition
Language (CDDL)</xref> <xref target="RFC9165">including its control
extensions</xref>.
Specific examples are notated in CBOR Extended
Diagnostic Notation (EDN), as originally introduced in Section <xref target="RFC8949" section="8" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> and extended in <xref section="G" sectionFormat="of" target="RFC8610"/>.
(<xref target="I-D.ietf-cbor-edn-literals"/> more rigorously defines and further extends EDN.)</t>
      </section>
    </section>
    <section anchor="constraints">
      <name>From URIs to CRIs: Considerations and Constraints</name>
      <section anchor="the-cri-interchange-data-model">
        <name>The CRI interchange data model</name>
        <t>A Constrained Resource Identifier consists of the same five components
as a URI: scheme, authority, path, query, and fragment.</t>
        <t>Many components of a URI can be "absent", i.e., they are optional.
This is not mirrored in CRIs, where all components are part of all
CRIs.
Some CRI components can have values that are <tt>null</tt> or empty arrays.
By defining a default value for each of certain components, they often can
be elided at the tail of the serialized form during interchange.
(Note that some subcomponents such as port numbers or userinfo are
optional in a CRI as well and therefore can be absent from a CRI.)</t>
        <t>In a CRI reference, components can additionally be <em>not set</em>
(indicated by interchanging a discard value instead of scheme and
authority, or by <tt>null</tt> for the scheme, path and query components that
can otherwise not have that value).
(For example, for a CRI reference where authority is either not set or
has either of the NOAUTHORITY values, the equivalent URI reference's
authority is absent.)</t>
        <!-- possibly too confusing at this point.
for a CRI reference where the query is an
empty array or not set, the equivalent URI reference's query is absent).
 -->

<t>The components are subject to the considerations and constraints
listed in this section.
Note that CRI extensions can relax constraints; for
example, see <xref target="pet"/> for partially relaxing constraint <xref format="counter" target="c-nfc"/>.</t>
        <ol spacing="normal" type="C%d." start="0"><li anchor="c-nfc">
            <t>Text strings in CRIs ("CRI text strings") are CBOR text
strings (i.e., in UTF-8 form <xref target="STD63"/>) that represent Unicode
strings (see Definition D80 in <xref target="Unicode"/>) in Unicode Normalization
Form C (NFC) (see Definition D120 in <xref target="Unicode"/> and specifically
<xref target="norm-nfc"/>).</t>
          </li>
          <li anchor="c-scheme">
            <t>The scheme name can be any CRI text string that
matches the syntax of a URI scheme (see Section <xref target="RFC3986" section="3.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>, which constrains scheme names to a subset of ASCII),
in its canonical form.
(The canonical form as per Section <xref target="RFC3986" section="3.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> requires
alphabetic characters to be in lowercase.)
<!-- see also Definition D139 in {{Unicode}}). -->
The scheme is always present.</t>
          </li>
          <li anchor="c-authority">
            <t>An authority is always a host identified by an IP
address or a "registered name" (see <xref format="counter" target="c-reg-name"/> below), along with
optional port information, and optionally preceded by user
information.  </t>
            <t>
Alternatively, URIs can be formed without an authority.
The two cases for this defined in Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> are
modeled by two different special values used in the CRI authority component:  </t>
            <ul spacing="normal">
              <li>
                <t>the path can be root-based (zero or more path segments that are
each started in the URI with "/", as when the authority is
present), or</t>
              </li>
              <li>
                <t>the path can be rootless, which requires at least one path
segment, the first one of which has non-zero length and is not
started in the URI with "/" (such as in <tt>mailto:info@example.org</tt>
or in URNs <xref target="RFC8141"/>).</t>
              </li>
            </ul>
            <t>
(Note that, in <xref target="cddl"/>, <tt>no-authority</tt> is marked as a feature, as
not all CRI implementations will support authority-less URIs.)</t>
          </li>
          <li anchor="c-userinfo">
            <t>A userinfo is a text string built out of unreserved
  characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or "sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>); any other character needs to be percent-encoded (<xref target="pet"/>).
Note that this excludes the ":" character, which is commonly
deprecated as a way to delimit a cleartext password in a userinfo.</t>
          </li>
          <li anchor="c-ip-address">
            <t>An IP address can be either an IPv4 address or an
IPv6 address (optionally with a zone identifier; see
<xref target="zone-id-issue"/>).
Future versions of IP are not supported (it is likely that a binary
mapping would be strongly desirable, and that cannot be designed
ahead of time, so these versions need to be added as a future
extension if needed).</t>
          </li>
          <li anchor="c-reg-name">
            <t>A <em>registered name</em> is represented as a sequence of
one or more lowercase CRI text string <em>labels</em> that do not contain
dots (".").
(These labels joined with dots (".") in between them result in the
CRI equivalent of a URI registered name as per Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>.
The syntax may be further restricted by the scheme.
A URI registered name can be empty, for which case a scheme can
define a default for the host.)</t>
          </li>
          <li anchor="c-port-range">
            <t>A port is always an integer in the range from 0 to 65535.
Ports outside this range, empty ports (port subcomponents with no
digits, see Section <xref target="RFC3986" section="3.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), or ports with redundant
leading zeros, are not supported.</t>
          </li>
          <li anchor="c-port-omitted">
            <t>If the scheme's port handling is known to the
CRI creator, it is <bcp14>RECOMMENDED</bcp14> to omit the port if and only if the
port would be the same as the scheme's default port (provided the
scheme defines such a default port) or the scheme is not using
ports.</t>
          </li>
          <li anchor="c-path">
            <t>A path consists of zero or more path segments.
Note that a path of just a single zero-length path segment is allowed —
this is considered equivalent to a path of zero path segments by
HTTP and CoAP, but this equivalence does not hold for CRIs in general as they only perform
normalization on the Syntax-Based Normalization level (Section <xref target="RFC3986" section="6.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), not on the scheme-specific Scheme-Based
Normalization level (Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).  </t>
            <t>
(A CRI implementation may want to offer scheme-cognizant
interfaces, performing this scheme-specific normalization for
schemes it knows.  The interface could assert which schemes the
implementation knows and provide pre-normalized CRIs.  This can
also relieve the application from removing a lone zero-length path
segment before putting path segments into CoAP Options, i.e., from
performing the check and jump in item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>.  See also <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/>.)</t>
          </li>
          <li anchor="c-path-segment">
            <t>A path segment can be any CRI text string, with
the exception of the special "." and ".." complete path segments.
Note that this includes the zero-length string.  </t>
            <t>
If no authority is present in a CRI, the leading path segment cannot be empty.
(See also <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/>.)</t>
          </li>
          <li anchor="c-query">
            <t>Queries are optional in URIs; there is a difference
   between an absent query and a present query that is the
   empty string.
   A CRI represents its query component as an array of zero or more CRI
   text strings, called "query parameters."
   Zero query parameters (an empty array) is equivalent to a URI where
   the query is absent; a single query parameter that is the empty
   string is equivalent to a URI with a present, but empty, query
   string.
   URI query strings are often in the form of "key=value" pairs joined
   by ampersand characters.
   A query string present in a URI is represented in a CRI by
   splitting its text up on any ampersand ("&amp;") characters into one or
   more query
   parameters, which may contain certain characters (including
   ampersands) that were percent-encoded in the URI.
   When converting a CRI to a URI, one or more query parameters are
   constructed into a URI query by joining them together with
   ampersand characters, where certain characters (including
   ampersands) present in the query parameters are percent-encoded.
   (This matches the structure and encoding of the target URI in CoAP
   requests.)</t>
          </li>
          <li anchor="c-fragment">
            <t>A fragment identifier can be any CRI text string.
   Fragment identifiers are optional in URIs; in CRIs there is a
   difference between a <tt>null</tt> fragment identifier and a fragment
   identifier that is the empty string.</t>
          </li>
          <li anchor="c-escaping">
            <t>The syntax of registered names, path segments, query
   parameters, and fragment identifiers may be further restricted and
   sub-structured by the scheme.
   There is no support, however, for escaping sub-delimiters
   that are not intended to be used in a delimiting function.</t>
          </li>
          <li anchor="c-mapping">
            <t>When converting a CRI to a URI, any character that is
   outside the allowed character range or is a delimiter in the URI syntax
   is percent-encoded.
   For CRIs, percent-encoding always uses the UTF-8 encoding form (see
   Definition D92 in <xref target="Unicode"/>) to convert the character to a sequence
   of bytes, which are then converted to a sequence of %HH triplets.
   <!-- As per 3986 2.1, use uppercase hex. -->
            </t>
          </li>
        </ol>
        <t>Examples for URIs at or beyond the boundaries of these constraints are in <xref format="counter" target="sp-constraints"/> in <xref target="the-small-print"/>.</t>
      </section>
      <section anchor="discard">
        <name>CRI References: The <tt>discard</tt> Component</name>
        <t>As with URI references and URIs, CRI references are a shorthand for a
CRI that is expressed relative to a base CRI.
URI and CRI references often <em>discard</em> part or all of the trailing
path segments of the base URI or CRI.</t>
        <t>In a URI reference, this is expressed by syntax for its path component
such as leading special path segments <tt>.</tt> (to protect a colon in the
first path component) and <tt>..</tt> (to
discard one more segment) or a leading slash (to discard all segments)
before giving the path segments to be added at the end of the (now
truncated) base URI.
For use in CRI references, we instead add in a <tt>discard</tt> component as
an alternative to the <tt>scheme</tt> and <tt>authority</tt> components, making the
specification of discarding base URI path segments separate from
adding new path segments from the CRI reference.</t>
        <t>The discarding intent of a CRI reference is thus fully condensed to a
single value in its discard component:</t>
        <ul spacing="normal">
          <li>
            <t>An unsigned integer as the discard component specifies the number of
path segments to be discarded from the base CRI (note that this
includes the value 0 which cannot be expressed in URI references that then add any path component);</t>
          </li>
          <li>
            <t>the value <tt>true</tt> as the discard component
specifies discarding all path segments from the base CRI.</t>
          </li>
        </ul>
        <t>Note that path components can be empty; <tt>ftp://example.com/a/</tt>
includes the two path components <tt>"a"</tt> and <tt>""</tt>; the latter is the one
that will be discarded when the URI reference <tt>"b"</tt> is resolved with
<tt>ftp://example.com/a/</tt> as its base URI.</t>
        <table anchor="tbl-exa-discard">
          <name>URI reference equivalents of CRI reference examples with discard values</name>
          <thead>
            <tr>
              <th align="left">CRI reference</th>
              <th align="left">URI reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>[0, ["a"]]</tt></td>
              <td align="left">(cannot be expressed)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>[1, ["a"]]</tt></td>
              <td align="left">
                <tt>a</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[1, ["this:that"]]</tt></td>
              <td align="left">
                <tt>./this:that</tt><br/>(Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>[1, ["a", "b"]]</tt></td>
              <td align="left">
                <tt>a/b</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[2, ["a"]]</tt></td>
              <td align="left">
                <tt>../a</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[3, ["a"]]</tt></td>
              <td align="left">
                <tt>../../a</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>[true, ["a"]]</tt></td>
              <td align="left">
                <tt>/a</tt></td>
            </tr>
          </tbody>
        </table>
        <t>If a scheme or authority is present in a CRI reference, the discard
component is implicitly equivalent to a value of <tt>true</tt> and thus not
included in the interchanged data item.</t>
      </section>
      <section anchor="constraints-not-expressed-by-the-data-model">
        <name>Constraints not expressed by the data model</name>
        <t>There are syntactically valid CRIs and CRI references that cannot be converted into a URI or URI reference, respectively.</t>
        <t>CRI references of this kind can be acceptable -- they still can be resolved
and result in a valid full CRI that can be converted back.
Examples of this are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>[0, ["p"]]</tt>: appends a slash and the path segment "p" to its base,
sets the query to an empty array and the fragment to <tt>null</tt></t>
          </li>
          <li>
            <t><tt>[0, null, []]</tt>: leaves the path alone but sets the query to an
empty array and the fragment to <tt>null</tt></t>
          </li>
        </ul>
        <t>(Full) CRIs that do not correspond to a valid URI are not valid on their own, and cannot be used.
Normatively they are characterized by the <xref target="cri-to-uri"/> process not producing a valid and syntax-normalized URI.
For easier understanding, they are listed here:</t>
        <ul spacing="normal">
          <li>
            <t>CRIs (and CRI references) containing dot-segments (path segment <tt>"."</tt> or <tt>".."</tt>).  </t>
            <t>
These segments would be removed by the remove_dot_segments algorithm of <xref target="STD66"/>,
and thus never produce a normalized URI after resolution.  </t>
            <t>
(In CRI references, the <tt>discard</tt> value is used to afford segment
removal (see <xref target="discard"/>),
and with "." being an unreserved character, expressing them as "%2e" and "%2e%2e" is not even viable,
let alone practical).</t>
          </li>
          <li>
            <t>CRIs without authority whose path starts with a leading empty segment
followed by at least one more segment.  </t>
            <t>
When converted to URIs, these would violate the requirement that in
absence of an authority, a URI's path cannot begin with two slash
characters.
(E.g., two leading empty segments would be indistinguishable from a URI with a shorter path and a present but empty authority component.)
(Compare <xref format="counter" target="c-path-segment"/>.)</t>
          </li>
          <li anchor="naked-rootless">
            <t>CRIs without authority that are rootless and have
an empty path
component (e.g., <tt>["a", true, []]</tt>), which would be indistinguishable
from its root-based equivalent (<tt>["a", null, []]</tt>) as both would have the URI <tt>a:</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="norm">
      <name>Creation and Normalization</name>
      <t>In general, resource identifiers are generated when a
resource is initially created or exposed under a certain resource identifier.</t>
      <t>The naming authority that creates
a Constrained Resource Identifier <bcp14>SHOULD</bcp14> be the authority that governs
the namespace of the resource identifier (see also <xref target="BCP190"/>).
For example, for the resources of an HTTP origin server,
that server is responsible for creating the CRIs for those resources.
If the naming authority creates a URI instead that can be obtained as
a conversion result from a CRI (<xref target="cri-to-uri"/>) that CRI can be
considered to have been created by the naming authority.</t>
      <t>The naming authority <bcp14>MUST</bcp14> ensure that any CRI created
satisfies the required constraints defined in <xref target="constraints"/>. The creation of a
CRI fails if the CRI cannot be validated to satisfy all of the required
constraints.</t>
      <t>If a naming authority creates a CRI from user input, the following
normalizations can increase the likelihood that the resulting CRI
will be valid:</t>
      <ul spacing="normal">
        <li>
          <t>map the scheme name to lowercase (<xref format="counter" target="c-scheme"/>);</t>
        </li>
        <li>
          <t>map the registered name to NFC (<xref format="counter" target="c-nfc"/>) and split it on
embedded dots (<xref format="counter" target="c-reg-name"/>);</t>
        </li>
        <li>
          <t>elide the port if it is the default port for the scheme
(<xref format="counter" target="c-port-omitted"/>);
<!-- * elide a single zero-length path segment ({{<c-path}}); -->
          </t>
        </li>
        <li>
          <t>map path segments (<xref format="counter" target="c-path-segment"/>), query parameters
(<xref format="counter" target="c-query"/>), and the fragment identifier (<xref format="counter" target="c-fragment"/>) to
NFC form (<xref format="counter" target="c-nfc"/>).</t>
        </li>
      </ul>
      <t>Once a CRI has been created, it can be used and transferred without
further normalization.
All operations that operate on a CRI <bcp14>SHOULD</bcp14> rely on the
assumption that the CRI is appropriately pre-normalized.
(This does not contradict the requirement that, when CRIs are
transferred, recipients must operate on as-good-as untrusted input and
fail gracefully in the face of malicious inputs.)</t>
      <t anchor="norm-nfc">Note that the processing of CRIs does not imply that all the
constraints continuously need to be checked and enforced.
Specifically, the text normalization constraints (NFC) can be expanded
as:
The recipient of a CRI <bcp14>MAY</bcp14> reasonably expect the text strings to be in
NFC form, but as with any input <bcp14>MUST NOT</bcp14> fail (beyond possibly not
being able to process the specific CRI) if they are not.
So the onus of fulfilling the expectation is on the original creator
of the CRI, not on each processor (including consumer).
This consideration extends to the sources the CRI creator uses in
building the text strings, which the CRI creator <bcp14>MAY</bcp14> in turn expect to be in
NFC form if that expectation is reasonable.
See <xref section="C" sectionFormat="of" target="MNU"/> for some background.</t>
      <t>CRIs have been designed with the objective that, after the above
normalization, conversion of two distinct CRIs to URIs do
not yield the "same" URI, including equivalence under syntax-based
normalization (Section <xref target="RFC3986" section="6.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), but not including
scheme-based or protocol-based normalization.
Note that this objective exclusively applies to (full) CRIs, not
to CRI references: these need to be resolved relative to a base URI,
with results that may be equivalent or not depending on the base.</t>
    </section>
    <section anchor="comparison">
      <name>Comparison</name>
      <t>One of the most common operations on CRIs is comparison: determining
whether two CRIs are equivalent, without dereferencing the CRIs (i.e.,
using
them to access their respective resource(s)).</t>
      <t>Determination of equivalence or difference of CRIs is based on simple
component-wise comparison. If two CRIs are identical
component-by-component (using code-point-by-code-point comparison for
components that are Unicode strings) then it is safe to conclude that
they are equivalent.</t>
      <t>This comparison mechanism is designed to minimize false negatives while
strictly avoiding false positives.
The constraints defined in <xref target="constraints"/> imply the most
common forms of syntax- and scheme-based normalizations in URIs, but do
not comprise scheme-based or protocol-based normalizations that require accessing the
resources or detailed knowledge of the scheme's dereference algorithm
(such as the Scheme-Based Normalization (Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) specified for http(s) in Section <xref target="RFC9110" section="4.2.3" sectionFormat="bare"/> of RFC 9110 <xref target="STD97"/> that would
classify <tt>https://example.org:443</tt> as equivalent to <tt>https://example.org</tt>).
False negatives can be caused, for example, by CRIs that are not
appropriately pre-normalized and by resource aliases.</t>
      <t>When CRIs are compared to select (or avoid) a network action, such as
retrieval of a representation, fragment components (if any) do not
play a role and typically are excluded from the comparison.</t>
    </section>
    <section anchor="cri-references">
      <name>CRI References</name>
      <t>The most common usage of a Constrained Resource Identifier is to embed
it in resource representations, e.g., to express a hyperlink between the
represented resource and the resource identified by the CRI.</t>
      <t><xref target="cbor-representation"/> first defines the representation of CRIs in
<xref target="STD94">Concise Binary Object Representation (CBOR)</xref>.
When reduced representation size is desired, CRIs are often not represented directly.
Instead, CRIs are indirectly referenced through <em>CRI references</em>.
These take advantage of hierarchical locality and provide a very compact
encoding.
The CBOR representation of CRI references also is specified in
<xref target="cbor-representation"/>.</t>
      <t>The only operation defined on a CRI reference is <em>reference resolution</em>:
the act of transforming a CRI reference into a CRI.
<!-- , relative to a base URI -->
An application <bcp14>MUST</bcp14> implement this operation by applying
the algorithm specified in <xref target="reference-resolution"/> (or any algorithm
that is functionally equivalent to it).</t>
      <t>The reverse operation of transforming a CRI into a CRI reference is
not specified in detail in this document;
implementations are free to use any algorithm as long as reference
resolution of the resulting CRI reference yields the original CRI.
Notably, a CRI reference is not required to satisfy all of the
constraints of a CRI; the only requirement on a CRI reference is that
reference resolution <bcp14>MUST</bcp14> yield the original CRI.</t>
      <t>When testing for equivalence or difference, it is rarely appropriate
for applications to directly compare CRI references; instead, the
references are typically resolved to their respective CRIs before
comparison.</t>
      <section anchor="cbor-representation">
        <name>CBOR Representation</name>
        <t><cref anchor="replace-xxxx">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
        <t>A CRI or CRI reference is encoded as a CBOR array (Major type 4 in
Section <xref target="RFC8949" section="3.1" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>).
<xref target="fig-railroad"/> has a coarse visualization of the structure of this
array, without going into the details of the elements.</t>
        <figure anchor="fig-railroad">
          <name>Overall Structure of a CRI or CRI Reference</name>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 530 360">
                <g transform="translate(40 50)">
                  <text x="-30" y="-10">cri-reference:</text>
                  <path class="station" d="M5.5 14 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M400.5 14 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="60" y="10"/>
                  <text class="rule" text-anchor="middle" x="95" y="25">scheme</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="150" y="10"/>
                  <text class="rule" text-anchor="middle" x="195" y="25">authority</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="115" y="40"/>
                  <text class="rule" text-anchor="middle" x="150" y="55">discard</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="290" y="10"/>
                  <text class="rule" text-anchor="middle" x="335" y="25">local-part</text>
                  <path d="M260 30 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M185 50 h65 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 40 q0 10 10 10 h65" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M260 30 q0 -10 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 20 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M130 20 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 20 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M380 20 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 20 h50" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
                <g transform="translate(40 160)">
                  <text x="-30" y="-10">local-part:</text>
                  <path class="station" d="M5.5 74 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M460.5 74 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="arrow" d="M237 10 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="60" y="70"/>
                  <text class="rule" text-anchor="middle" x="85" y="85">path</text>
                  <path class="arrow" d="M272 30 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="160" y="70"/>
                  <text class="rule" text-anchor="middle" x="185" y="85">query</text>
                  <path class="arrow" d="M307 50 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="260" y="70"/>
                  <text class="rule" text-anchor="middle" x="305" y="85">fragment</text>
                  <path d="M40 20 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M430 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M140 40 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M400 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 60 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M370 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M350 80 h110" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M230 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 60 q0 -10 10 -10 h110 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M210 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M130 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M140 40 q0 -10 10 -10 h240 q10 0 10 10 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M110 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 20 q0 -10 10 -10 h370 q10 0 10 10 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[cri-reference:
    │├──╮── scheme ── authority ──╭── local-part ──┤│
        │                         │
        ╰──────── discard ────────╯

local-part:
        ╭─────────────────────>─────────────────────╮
        │                                           │
        │          ╭──────────────>──────────────╮  │
        │          │                             │  │
        │          │           ╭──────>───────╮  │  │
        │          │           │              │  │  │
    │├──╯── path ──╯── query ──╯── fragment ──╰──╰──╰──┤│

]]></artwork>
          </artset>
        </figure>
        <t><xref target="cddl"/> has a more detailed description of the structure, in CDDL.</t>
        <figure anchor="cddl">
          <name>CDDL for CRI CBOR representation</name>
          <sourcecode type="cddl"><![CDATA[
; not expressed in this CDDL spec: trailing defaults to be left off

RFC-XXXX-Definitions = [CRI, CRI-Reference]

CRI = [
  scheme,
  authority / no-authority,
  path,                    ; use [] for empty path
  query,                   ; use [] for empty query
  fragment / null
]


CRI-Reference = [
  ((scheme / null, authority / no-authority)
   // discard),            ; relative reference
  path / null,             ; null is explicitly not set
  query / null,            ; null is explicitly not set
  fragment / null
]

scheme      = scheme-id / (scheme-name .feature "scheme-name")
scheme-id   = nint              ; -1 - scheme-number
scheme-name = text .regexp "[a-z][a-z0-9+.-]*"

no-authority = NOAUTH-ROOTBASED / NOAUTH-ROOTLESS
NOAUTH-ROOTBASED = null .feature "no-authority"
NOAUTH-ROOTLESS = true .feature "no-authority"

authority   = [?userinfo, host, ?port]
userinfo    = (false, text .feature "userinfo")
host        = (host-ip // host-name)
host-name   = (*text)      ; lowercase, NFC labels; no dot
host-ip     = (bytes .size (4/16), ?zone-id)
zone-id     = text
port        = 0..65535

discard     = DISCARD-ALL / 0..127
DISCARD-ALL = true
path        = [*text]
query       = [*text]
fragment    = text

]]></sourcecode>
        </figure>
        <t anchor="discard1">We call the elements of the top-level array <em>sections</em>.
The sections containing the rules <tt>scheme</tt>, <tt>authority</tt>, <tt>path</tt>, <tt>query</tt>, <tt>fragment</tt>
correspond to the components of a URI and thus of a CRI, as described in
<xref target="constraints"/>.
For use in CRI references, the <tt>discard</tt> section (see also <xref target="discard"/>) provides an
alternative to the <tt>scheme</tt> and <tt>authority</tt> sections.</t>
        <t anchor="prose">This CDDL specification is simplified for exposition and needs to be
augmented by the following rules for interchange of CRIs and CRI
references:</t>
        <ul spacing="normal">
          <li>
            <t>Trailing default values (<xref target="tbl-default"/>) <bcp14>MUST</bcp14> be removed.</t>
          </li>
          <li>
            <t>Two leading null values (scheme and authority both not given) <bcp14>MUST</bcp14>
be represented by using the <tt>discard</tt> alternative instead.</t>
          </li>
          <li>
            <t>An empty path in a <tt>CRI</tt> is represented as the empty array
<tt>[]</tt>.
Note that for <tt>CRI-Reference</tt> there is a difference between empty
paths and paths that are not set, represented by <tt>[]</tt> and <tt>null</tt>, respectively.</t>
          </li>
          <li>
            <t>An empty query in a <tt>CRI</tt> (no query parameters, not even an empty
string) is represented as the empty array
<tt>[]</tt>; note that this is equivalent to the absence of the question
mark in a URI, while the equivalent of just a question mark in a URI is
an array with a single query parameter represented by an empty
string <tt>[""]</tt>).
Note that for <tt>CRI-Reference</tt> there is a difference between providing
a query as above and a query that is not set, represented by <tt>null</tt>.</t>
          </li>
          <li>
            <t>An empty outer array (<tt>[]</tt>) is not a valid CRI.
It is a valid CRI reference,
equivalent to <tt>[0]</tt> as per <xref target="ingest"/>, which essentially copies the
base CRI up to and including the path section, setting query and
fragment to absent.</t>
          </li>
        </ul>
        <table anchor="tbl-default">
          <name>Default Values for CRI Sections</name>
          <thead>
            <tr>
              <th align="left">Section</th>
              <th align="left">Default Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">scheme</td>
              <td align="left">–</td>
            </tr>
            <tr>
              <td align="left">authority</td>
              <td align="left">
                <tt>null</tt></td>
            </tr>
            <tr>
              <td align="left">discard</td>
              <td align="left">
                <tt>0</tt></td>
            </tr>
            <tr>
              <td align="left">path</td>
              <td align="left">
                <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">query</td>
              <td align="left">
                <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">fragment</td>
              <td align="left">
                <tt>null</tt></td>
            </tr>
          </tbody>
        </table>
        <t anchor="no-indef">For interchange as separate encoded data items, CRIs <bcp14>MUST NOT</bcp14> use
indefinite length encoding (see
Section <xref target="RFC8949" section="3.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>).
This requirement is relaxed for
specifications that embed CRIs into an encompassing CBOR
representation that does provide for indefinite length encoding;
those specifications that are selective in where they provide for
indefinite length encoding are <bcp14>RECOMMENDED</bcp14> to not provide it for
embedded CRIs.</t>
        <section anchor="scheme-id">
          <name><tt>scheme-name</tt> and <tt>scheme-id</tt></name>
          <t>In the scheme section, a CRI scheme is usually given as a negative integer
<tt>scheme-id</tt> derived from the <em>scheme number</em>.
Optionally, it can instead be identified by its
<tt>scheme-name</tt> (a text string giving the scheme name as in URIs' scheme
section, mapped to lower case).
(Note that, in <xref target="cddl"/>, <tt>scheme-name</tt> is marked as a feature, as only
less constrained CRI implementations might support <tt>scheme-name</tt>.)</t>
          <t>Scheme numbers are unsigned integers that are mapped to and from URI
scheme names by the "CRI Scheme Numbers" registry (<xref target="cri-reg"/>).
The relationship of a scheme number to its <tt>scheme-id</tt> is as follows:</t>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="5.009ex" role="img" viewBox="0 -791.3 43055.4 2156.8" width="100ex">
                <defs>
                  <path d="M390 441l-24 -146h-15c0 64 -36 120 -92 120c-25 0 -51 -17 -51 -58c0 -55 134 -147 134 -242c0 -62 -48 -125 -135 -125c-34 0 -98 20 -110 20c-9 0 -18 -4 -30 -21h-17l25 156h16c0 -63 41 -130 104 -130c59 0 73 50 73 89c0 82 -130 132 -130 230c0 79 59 107 114 107 c43 0 63 -20 92 -20c11 0 22 10 30 20h16Z" id="E1-STIXWEBNORMALI-1D460" stroke-width="1"/>
                  <path d="M363 111l12 -13c-51 -60 -113 -109 -198 -109c-97 0 -137 78 -137 155c0 140 121 297 263 297c50 0 97 -27 97 -76c0 -38 -16 -70 -54 -70c-26 0 -38 21 -38 38c0 24 29 36 29 58c0 12 -10 21 -34 21c-119 0 -176 -179 -176 -259c0 -87 49 -109 94 -109 c61 0 107 33 142 67Z" id="E1-STIXWEBNORMALI-1D450" stroke-width="1"/>
                  <path d="M469 106l14 -11c-29 -34 -78 -106 -133 -106c-18 0 -41 10 -41 42c0 12 1 26 64 267c2 7 7 29 7 44c0 19 -7 35 -24 35c-36 0 -102 -85 -134 -133c-34 -51 -62 -102 -67 -122l-32 -122h-78l152 600c1 4 2 7 2 10c0 13 -10 22 -31 22c-10 0 -21 -1 -29 -2l-2 14l159 24 l-109 -416h4c53 58 125 189 216 189c42 0 57 -34 57 -70c0 -22 -6 -43 -11 -64l-58 -230c-1 -5 -2 -7 -2 -10c0 -6 3 -14 13 -14c22 0 49 35 63 53Z" id="E1-STIXWEBNORMALI-210E" stroke-width="1"/>
                  <path d="M363 112l14 -13c-70 -86 -138 -110 -200 -110c-98 0 -137 84 -137 156c0 23 1 37 6 60c25 111 135 236 262 236c42 0 102 -14 102 -76c0 -127 -167 -176 -286 -182v-28c0 -64 52 -107 113 -107c42 0 90 18 126 64zM124 211h9c104 0 198 69 198 157c0 25 -19 43 -44 43 c-74 0 -134 -115 -163 -200Z" id="E1-STIXWEBNORMALI-1D452" stroke-width="1"/>
                  <path d="M667 107l13 -11c-32 -54 -84 -104 -131 -104c-22 0 -39 10 -39 49c0 7 1 17 6 37l56 221c4 14 6 23 6 40c0 20 -6 38 -24 38c-54 0 -164 -181 -179 -242l-34 -135h-79l77 299c2 9 5 25 5 40c0 20 -5 38 -23 38c-52 0 -162 -181 -178 -242l-35 -135h-78l95 374 c0 18 -6 31 -33 31c-8 0 -19 -1 -27 -2l-2 14l157 24l-44 -169h6c94 143 154 169 192 169c37 0 55 -37 55 -81c0 -17 -3 -32 -9 -52l-10 -36h5c29 52 81 114 130 147c22 15 41 22 61 22c36 0 54 -26 54 -71c0 -18 -1 -37 -7 -61l-61 -231c-1 -3 -2 -9 -2 -12 c0 -8 6 -12 15 -12c17 0 43 16 62 53Z" id="E1-STIXWEBNORMALI-1D45A" stroke-width="1"/>
                  <path d="M285 194h-246v63h246v-63Z" id="E1-STIXWEBMAIN-2D" stroke-width="1"/>
                  <path d="M257 566c0 -26 -22 -46 -48 -46c-29 0 -48 20 -48 46c0 25 19 50 48 50c26 0 48 -25 48 -50zM227 441l-92 -364c-1 -6 -1 -10 -1 -14c0 -7 6 -10 13 -10c22 0 28 12 64 51l13 -10c-35 -45 -85 -105 -134 -105c-28 0 -40 19 -40 46c0 12 0 31 79 338c1 2 2 9 2 12 c0 17 -8 22 -31 22c-9 0 -21 -2 -28 -4l-3 16Z" id="E1-STIXWEBNORMALI-1D456" stroke-width="1"/>
                  <path d="M527 668l-149 -598c-1 -3 -2 -9 -2 -12c0 -6 5 -9 15 -9c20 0 48 35 62 56l11 -12c-30 -45 -83 -105 -130 -105c-32 0 -40 23 -40 41c0 20 2 34 10 64h-5c-74 -93 -134 -105 -171 -105c-73 0 -88 74 -88 127c0 103 103 326 257 326c57 0 80 -26 81 -50h2l53 209 c1 4 2 8 2 12c0 13 -7 20 -33 20c-9 0 -20 -2 -27 -3l-4 15zM363 340c0 47 -15 71 -56 71c-99 0 -180 -200 -180 -296c0 -49 28 -66 56 -66c70 0 136 94 164 186c11 35 16 74 16 105Z" id="E1-STIXWEBNORMALI-1D451" stroke-width="1"/>
                  <path d="M637 320h-589v66h589v-66zM637 120h-589v66h589v-66Z" id="E1-STIXWEBMAIN-3D" stroke-width="1"/>
                  <path d="M621 220h-557v66h557v-66Z" id="E1-STIXWEBMAIN-2212" stroke-width="1"/>
                  <path d="M394 0h-276v15c74 4 95 25 95 80v449c0 34 -9 49 -30 49c-10 0 -27 -5 -45 -12l-27 -10v14l179 91l9 -3v-597c0 -43 20 -61 95 -61v-15Z" id="E1-STIXWEBMAIN-31" stroke-width="1"/>
                  <path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -133c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -29 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B" stroke-width="1"/>
                  <path d="M444 428l-89 -348c-1 -4 -1 -6 -1 -9c0 -8 4 -14 14 -14c21 0 40 26 57 46l5 6l13 -11c-23 -33 -74 -107 -132 -107c-29 0 -40 19 -40 52c0 9 1 25 4 37l26 95h-1c-7 -5 -97 -126 -137 -156c-23 -17 -49 -28 -72 -28c-47 0 -61 36 -61 74c0 21 3 40 8 59l59 231 c4 15 6 21 6 25c0 12 -11 23 -33 23c-7 0 -19 -1 -26 -3l-3 15l157 26l-84 -326c-2 -9 -3 -16 -3 -24c0 -21 8 -34 26 -34c25 0 65 31 100 77c43 57 89 146 109 219l21 75h77Z" id="E1-STIXWEBNORMALI-1D462" stroke-width="1"/>
                  <path d="M214 382l4 -4c33 32 72 63 121 63c70 0 111 -69 111 -151c0 -121 -109 -301 -266 -301c-53 0 -94 18 -139 48l144 563c1 4 2 8 2 11c-1 13 -16 21 -29 21c-10 0 -22 -1 -30 -4l-3 16l158 24zM179 252l-55 -215c0 -7 32 -19 55 -19c122 0 188 174 188 276 c0 70 -38 92 -71 92c-72 0 -106 -89 -117 -134Z" id="E1-STIXWEBNORMALI-1D44F" stroke-width="1"/>
                  <path d="M175 267l5 -1c9 18 21 38 32 56c34 54 82 119 137 119c29 0 44 -21 44 -48c0 -38 -24 -82 -65 -82c-39 0 -29 38 -47 38c-61 0 -148 -256 -153 -273l-21 -76h-77l92 364c3 11 4 18 4 23c0 13 -11 19 -33 19c-7 0 -21 -2 -27 -3l-2 15l157 23Z" id="E1-STIXWEBNORMALI-1D45F" stroke-width="1"/>
                </defs>
                <g fill="black" stroke="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
                  <g transform="translate(14519,0)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="440" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="856" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="1369" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="1815" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="2525" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="2971" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D456" x="3304" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D451" x="3616" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-3D" x="4426" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="5389" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-31" x="6075" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="6797" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="7705" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="8146" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="8561" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="9075" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="9520" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="10231" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="10676" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B" x="11010" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462" x="11507" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="11982" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D44F" x="12692" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="13163" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45F" x="13608" y="0"/>
                  </g>
                  <g transform="translate(14519,-1200)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="440" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="856" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="1369" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="1815" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="2525" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="2971" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B" x="3304" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462" x="3802" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="4276" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D44F" x="4987" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="5457" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45F" x="5903" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-3D" x="6589" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="7552" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-31" x="8238" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="8960" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="9868" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="10309" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="10724" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="11238" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="11683" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="12394" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="12839" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D456" x="13173" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D451" x="13484" y="0"/>
                  </g>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[scheme-id = -1 - scheme-number
scheme-number = -1 - scheme-id
]]></artwork>
          </artset>
          <t>For example, the scheme-name <tt>coap</tt> has the (unsigned integer)
scheme-number <tt>0</tt> which is represented in a (negative integer)
scheme-id <tt>-1</tt>.</t>
        </section>
        <section anchor="the-discard-section">
          <name>The <tt>discard</tt> Section</name>
          <t>The <tt>discard</tt> section can be used in a CRI reference when neither a
scheme nor an authority is present.
It then expresses the operations performed on a base CRI by CRI references that
are equivalent to URI references with relative paths and path prefixes such as "/", "./", "../", "../../", etc.<br/>
"." and ".." are not available in CRIs and are therefore expressed
using <tt>discard</tt> after a normalization step, as is the presence or
absence of a leading "/" (see <xref target="discard"/> for examples).</t>
          <t>E.g., a simple URI reference "foo" specifies to remove one trailing
segment, if any,
from the base URI's path, which is represented in the equivalent CRI
reference discard section as the value <tt>1</tt>; similarly "../foo" removes
two trailing segments, if any, represented as <tt>2</tt>;
and "/foo" removes all segments, represented in the <tt>discard</tt> section as the value <tt>true</tt>.
The exact semantics of the section values are defined by
<xref target="reference-resolution"/>.</t>
          <t>Most URI references that Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> calls "relative
references" (i.e., references that need to undergo a resolution
process to obtain a URI) correspond to the CRI reference form that starts with
<tt>discard</tt>.  The exception are relative references with an <tt>authority</tt>
(called a "network-path reference" in Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), which
discard the entire path of the base CRI.
These CRI references never carry a <tt>discard</tt> section: the value of
<tt>discard</tt> defaults to <tt>true</tt>.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <figure anchor="fig-ex-1">
            <name>CRI for coap://198.51.100.1:61616/.well-known/core</name>
            <sourcecode type="cbor-diag"><![CDATA[
[-1,             / scheme-id -- equivalent to "coap" /
 [h'C6336401',   / host /
  61616],        / port /
 [".well-known", / path /
  "core"]
]
]]></sourcecode>
          </figure>
          <figure anchor="fig-ex-2">
            <name>CRI Reference for /.well-known/core?rt=temperature-c</name>
            <sourcecode type="cbor-diag"><![CDATA[
[true,                  / discard /
 [".well-known",        / path /
  "core"],
 ["rt=temperature-c"]  / query /
]
]]></sourcecode>
          </figure>
          <figure anchor="fig-ex-3">
            <name>CRI for did:web:alice:bob</name>
            <sourcecode type="cbor-diag"><![CDATA[
[-6,                / scheme-id -- equivalent to "did" /
 true,              / authority = NOAUTH-ROOTLESS /
 ["web:alice:bob"]  / path /
]
]]></sourcecode>
          </figure>
        </section>
        <section anchor="specific-terminology">
          <name>Specific Terminology</name>
          <t>A CRI reference is considered <em>well-formed</em> if it matches the
structure as expressed in <xref target="cddl"/> in CDDL, with the additional
requirement that trailing <tt>null</tt> values are removed from the array.</t>
          <t>A CRI reference is considered a <em>full</em> CRI if it is well-formed
and the sequence of sections starts with a non-null <tt>scheme</tt>.</t>
          <t>A CRI reference is considered <em>relative</em> if it is well-formed
and the sequence of sections is empty or starts with a section other
than those that would constitute a <tt>scheme</tt>.</t>
        </section>
      </section>
      <section anchor="ingest">
        <name>Ingesting and encoding a CRI Reference</name>
        <t>From an abstract point of view, a CRI reference is a data structure
with six sections:</t>
        <t>scheme, authority, discard, path, query, fragment</t>
        <t>We refer to this as the <em>abstract form</em>, while the <em>interchange form</em> (<xref target="cddl"/>) has either
two sections for scheme and authority or one section for discard, but
never both of these alternatives.</t>
        <t>Each of the sections in the abstract form can be <em>not set</em> ("null"),
<!-- "not defined" in RFC 3986 -->
except for discard,
which is always an unsigned integer or <tt>true</tt>.  If scheme and/or
authority are non-null, discard is set to <tt>true</tt>.</t>
        <t>When ingesting a CRI reference that is in interchange form, those
sections are filled in from interchange form (sections not set are
filled with null), and the following steps are performed:</t>
        <ul spacing="normal">
          <li>
            <t>If the array is empty, replace it with <tt>[0]</tt>.</t>
          </li>
          <li>
            <t>If discard is present in interchange form (i.e., the outer array
starts with true or an unsigned integer), set scheme and authority to null.</t>
          </li>
          <li>
            <t>If scheme and/or authority are present in interchange form (i.e.,
the outer array starts with null, a text string, or a negative integer), set
discard to <tt>true</tt>.</t>
          </li>
        </ul>
        <t>Upon encoding the abstract form into interchange form, the inverse
processing is performed:  If scheme and/or authority are not null, the
discard value is not transferred (it must be true in this case).  If
they are both null, they are both left out and only discard is
transferred.
Trailing null values are removed from the array.
As a special case, an empty array is sent in place for a remaining
<tt>[0]</tt> (URI reference "").</t>
        <section anchor="unprocessable">
          <name>Error handling and extensibility</name>
          <t>It is recommended that specifications that describe the use of CRIs in CBOR-based protocols
use the error handling mechanisms outlined in this section.
Implementations of this document <bcp14>MUST</bcp14> adhere to these rules
unless a containing document overrides them.</t>
          <t>When encountering a CRI that is well-formed in terms of CBOR, but that</t>
          <ul spacing="normal">
            <li>
              <t>is not well-formed as a CRI,</t>
            </li>
            <li>
              <t>does not meet the other requirements on CRIs that are not covered by
the term "well-formed", or</t>
            </li>
            <li>
              <t>uses features not supported by the implementation,</t>
            </li>
          </ul>
          <t>the CRI is treated as "unprocessable".</t>
          <t>When encountering an unprocessable CRI,
the processor skips the entire CRI top-level array, including any CBOR
items contained therein,
and continues processing the CBOR items surrounding the unprocessable CRI.
(Note: this skipping can be implemented in bounded memory for CRIs
that do not use indefinite length encoding, as mandated for CRIs as separate
encoded data items in <xref target="no-indef"/>.)</t>
          <t>The unprocessable CRI is treated as an opaque identifier
that is distinct from all processable CRIs,
and distinct from all unprocessable CRIs with different CBOR representations.
It is up to the implementation whether unprocessable CRIs with identical representations
are treated as identical to each other or not.
Unprocessable CRIs cannot be dereferenced,
and it is an error to query any of their components.</t>
          <t>This mechanism ensures that CRI extensions
(using originally defined features or later extensions)
can be used without extending the compatibility hazard to the containing document.
For example,
if a collection of possible interaction targets contains several CRIs,
some of which use the "no-authority" feature,
an application consuming that collection that does not support that
feature can still offer the supported interaction targets.</t>
          <t>The duty of checking validity is with the recipients that rely on this
validity.
An intermediary that does not use the detailed information in a CRI
(or merely performs reference resolution) <bcp14>MAY</bcp14> pass on a CRI/CRI
reference without having fully checked it, relying on the producer
having generated a valid CRI/CRI reference.
This is true for both Simple CRIs (e.g., checking for valid UTF-8) and
for extensions (e.g., checking both for valid UTF-8 and the minimal
use of PET elements in the text-or-pet feature as per <xref target="pet"/>).</t>
          <t>A system that is checking a CRI for some reason but is not its
ultimate recipient needs to consider the tension between security
requirements and the danger of ossification <xref target="RFC9170"/>: If the system rejects
anything that it does not know, it prevents the other components from
making use of extensions.
If it passes through extensions unknown to it, that might allow
semantics pass through that the system should have been designed to
filter out.</t>
        </section>
      </section>
      <section anchor="reference-resolution">
        <name>Reference Resolution</name>
        <t>The term "relative" implies that a "base CRI" exists against which the
relative reference is applied. Aside from fragment-only references,
relative references are only usable when a base CRI is known.</t>
        <t>The following steps define the process of resolving any well-formed CRI
reference against a base CRI so that the result is a full CRI in the form of
an CRI reference:</t>
        <ol spacing="normal" type="1" start="1"><li>
            <t>Establish the base CRI of the CRI reference (compare Section <xref target="RFC3986" section="5.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) and express it in the form of an abstract (full) CRI
reference.</t>
          </li>
          <li>
            <t>Initialize a buffer with the sections from the base CRI.</t>
          </li>
          <li>
            <t>If the value of discard is <tt>true</tt> in the CRI reference (which is
implicitly the case when scheme and/or authority are present in the reference), replace the
path in the buffer with the empty array, set query to empty and fragment
to null, and set a <tt>true</tt> authority to <tt>null</tt>.  If the value of
discard is an unsigned integer, remove as many elements
from the end of the path array; if it is non-zero, set query to empty and
fragment to null.  </t>
            <t>
Set discard to <tt>true</tt> in the buffer.</t>
          </li>
          <li>
            <t>If the path section is non-null in the CRI reference, append all
elements from the path array to the array in the path section in
the buffer; set query to empty and fragment to null.</t>
          </li>
          <li>
            <t>If query is non-null in the CRI reference, set fragment to <tt>null</tt>
in the buffer.
Apart from the path and discard, copy all non-null sections from
the CRI reference to the buffer in sequence.</t>
          </li>
          <li>
            <t>Return the sections in the buffer as the resolved CRI.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="relationship-between-cris-uris-and-iris">
      <name>Relationship between CRIs, URIs, and IRIs</name>
      <t>CRIs are meant to replace both <xref target="STD66">Uniform Resource Identifiers (URIs)</xref>
and <xref target="RFC3987">Internationalized Resource Identifiers (IRIs)</xref>
in constrained environments <xref target="RFC7228"/><xref target="I-D.ietf-iotops-7228bis"/>.
Applications in these environments may never need to use URIs and IRIs
directly, especially when the resource identifier is used simply for
identification purposes or when the CRI can be directly converted into a
CoAP request.</t>
      <t>However, it may be necessary in other environments to determine the
associated URI or IRI of a CRI, and vice versa. Applications can perform
these conversions as follows:</t>
      <dl newline="true">
        <dt>CRI to URI</dt>
        <dd>
          <t>A CRI is converted to a URI as specified in <xref target="cri-to-uri"/>.</t>
        </dd>
        <dt>URI to CRI</dt>
        <dd>
          <t>The method of converting a URI to a CRI is unspecified;
implementations are free to use any algorithm as long as converting
the resulting CRI back to a URI yields an equivalent URI.
</t>
          <t>Note that CRIs are defined to enable implementing conversions from
or to URIs analogously to processing URIs into CoAP Options and
back, with the exception that item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>
and item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/> do not apply to CRI processing.
See <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/> for more details.</t>
        </dd>
        <dt>CRI to IRI</dt>
        <dd anchor="critoiri">
          <t>A CRI can be converted to an IRI by first converting it to a URI as
specified in <xref target="cri-to-uri"/>, and then converting the URI
to an IRI as described in <xref section="3.2" sectionFormat="of" target="RFC3987"/>.</t>
        </dd>
        <dt>IRI to CRI</dt>
        <dd>
          <t>An IRI can be converted to a CRI by first converting it to a URI as
described in <xref section="3.1" sectionFormat="of" target="RFC3987"/>, and then
converting the URI to a CRI as described above.</t>
        </dd>
      </dl>
      <t>Everything about CRI references, URI references, and IRI references in
this section also applies to CRIs, URIs, and IRIs.</t>
      <section anchor="cri-to-uri">
        <name>Converting CRI (references) to URI (references)</name>
        <t>Applications <bcp14>MUST</bcp14> convert a CRI reference to a URI
reference by determining the components of the URI reference according
to the following steps and then recomposing the components to a URI
reference string as specified in Section <xref target="RFC3986" section="5.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>.</t>
        <dl newline="true">
          <dt>scheme</dt>
          <dd>
            <t>If the CRI reference contains a <tt>scheme</tt> section, the scheme
component of the URI reference consists of the value of that
section, if text (<tt>scheme-name</tt>); or, if a negative integer is given
(<tt>scheme-id</tt>), the lower case scheme name corresponding to the
scheme-id as per <xref target="scheme-id"/>.
Otherwise, the scheme component is not set.</t>
          </dd>
          <dt>authority</dt>
          <dd>
            <t>If the CRI reference contains a <tt>host-name</tt> or <tt>host-ip</tt> item, the
authority component of the URI reference consists of a host
subcomponent, optionally followed by a colon (":") character and a
port subcomponent, optionally preceded by a <tt>userinfo</tt> subcomponent.
Otherwise, the authority component is not set.
</t>
            <t>The host subcomponent consists of the value of the <tt>host-name</tt> or
<tt>host-ip</tt> item.</t>
            <t>The <tt>userinfo</tt> subcomponent, if present, is turned into a single
string by
appending a "@".  Otherwise, both the subcomponent and the "@" sign
are omitted.
Any character in the value of the <tt>userinfo</tt> element that is not in
the set of unreserved characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or
"sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or a colon (":") <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>The <tt>host-name</tt> is turned into a single string by joining the
elements separated by dots (".").
Any character in the elements of a <tt>host-name</tt> item that is not in
the set of unreserved characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or
"sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) <bcp14>MUST</bcp14> be
percent-encoded.
If there are dots (".") in such elements, the conversion fails
(percent-encoding is not able to represent such elements, as
normalization would turn the percent-encoding back to the unreserved
character that a dot is.)</t>
            <aside>
              <t>Implementations with scheme-specific knowledge <bcp14>MAY</bcp14> convert
  individual elements by using the ToASCII procedure (<xref section="4.1" sectionFormat="of" target="RFC3490"/>) as discussed in more detail in <xref section="3.1" sectionFormat="of" target="RFC3987"/>.
  This should not be done if the next step of conversion is to an
  IRI as defined in <xref target="critoiri"/> (CRI to IRI).</t>
              <t><cref anchor="toascii-note">Editor's note: Some other RFCs reference RFC5890 as the source of ToASCII, since that is the document that replaces RFC3490 and at least mentions ToASCII.
Unfortunately, this doesn’t define ToASCII (pointing to RFC 3490 instead), so we consider these references broken.
Instead, we reference RFC 3490, which is the document that actually does define ToASCII.
RFC 3987 (IRIs) references RFC 3490, too, kind of keeping it alive.</cref></t>
            </aside>
          </dd>
        </dl>
        <t anchor="host-ip-to-uri">The value of a <tt>host-ip</tt> item <bcp14>MUST</bcp14> be
  represented as a string that matches the "IPv4address" or
  "IP-literal" rule (Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).</t>
        <t anchor="zone-id-issue">The inclusion of zone-ids <xref target="RFC4007"/> in URIs has a complex history
  and currently has no interoperable representation (the previous
  specification for this, <xref target="RFC6874"/>, is now obsoleted by
  <xref target="RFC9844"/>; more background information is available in <xref target="I-D.schinazi-httpbis-link-local-uri-bcp"/>).
  The CRI specification does not define a conversion from a
  CRI containing a zone-id to a URI.
  As keeping a zone-id with an IP address in a URI turned out to be
  useful while <xref target="RFC6874"/> was in effect, CRIs maintain a position in
  the grammar to optionally store a <tt>zone-id</tt>.
  This can be used by consenting CRI implementations to exchange zone
  information without being concerned by the lack of a specification
  at the URI syntax level.
  The goal is to achieve approximate feature parity with the zone-id
  support in <xref target="I-D.ietf-netmod-rfc6991-bis"/>, which also contains further
  clarifications on the use of zone-ids with IP addresses.</t>
        <t>If the CRI reference contains a <tt>port</tt> item, the port
  subcomponent consists of the value of that item in decimal
  notation.
  Otherwise, the colon (":") character and the port subcomponent are
  both omitted.</t>
        <dl>
          <dt>path</dt>
          <dd>
            <t anchor="colon">If the CRI reference contains a <tt>discard</tt> item of value <tt>true</tt>, the
path component is considered <em>rooted</em>.  If it
contains a <tt>discard</tt> item of value <tt>0</tt> and the <tt>path</tt> item is
present, the conversion fails.  If it contains a positive discard
item, the path component is considered <em>unrooted</em> and
prefixed by as many "../" components as the <tt>discard</tt> value minus
one indicates.  If the discard value is <tt>1</tt> and the first element of
the path contains a <tt>:</tt>, the path component is prefixed by "./"
(this avoids the first element to appear as supplying a URI scheme;
compare <tt>path-noscheme</tt> in Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
</t>
            <t>If the discard item is not present and the CRI reference contains an
authority that is <tt>true</tt>, the path component of the URI reference is
considered unrooted.  Otherwise, the path component is considered
rooted.</t>
            <t>If the CRI reference contains one or more <tt>path</tt> items, the path
component is constructed by concatenating the sequence of
representations of these items.  These representations generally
contain a leading slash ("/") character and the value of each item,
processed as discussed below.  The leading slash character is
omitted for the first path item only if the path component is
considered "unrooted".  <!-- A path segment that contains a colon
character (e.g., --> <!-- "this:that") cannot directly be used as
the first such item.  Such a --> <!-- segment MUST be preceded by a
dot-segment (e.g., "./this:that") --> <!-- unless scheme and/or
authority are present. -->
            </t>
            <t>Any character in the value of a <tt>path</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
(":") or commercial at ("@") character <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>If the authority component is present (not <tt>null</tt> or <tt>true</tt>) and the
path component does not match the "path-abempty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the conversion fails.</t>
            <t>If the authority component is not present, but the scheme component
is, and the path component does not match the "path-absolute",
"path-rootless" (authority == <tt>true</tt>) or "path-empty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the conversion fails.</t>
            <t>If neither the authority component nor the scheme component are
present, and the path component does not match the "path-absolute",
"path-noscheme" or "path-empty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the
conversion fails.</t>
          </dd>
          <dt>query</dt>
          <dd>
            <t>If the CRI reference contains one or more <tt>query</tt> items,
the query component of the URI reference consists of the value of
each item, separated by an ampersand ("&amp;") character.
Otherwise, the query component is not set.
</t>
            <t>Any character in the value of a <tt>query</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
(":"), commercial at ("@"), slash ("/"), or question mark ("?")
character <bcp14>MUST</bcp14> be percent-encoded.
Additionally, any ampersand character ("&amp;") in the item
value <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
          <dt>fragment</dt>
          <dd>
            <t>If the CRI reference contains a fragment item, the fragment
component of the URI reference consists of the value of that
item.
Otherwise, the fragment component is not set.
</t>
            <t>Any character in the value of a <tt>fragment</tt> item that is
not in the set of unreserved characters or "sub-delims" or a colon
(":"), commercial at ("@"), slash ("/"), or question mark ("?")
character <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="extending">
      <name>Extending CRIs</name>
      <t>The CRI structure described up to this point, without enabling any
feature ("scheme-name", "no-authority", "userinfo"), is termed the
<em>Basic CRI</em>.
It should be sufficient for all applications that use the CoAP
protocol, as well as most other protocols employing URIs.</t>
      <t>With one or more of the three features enabled, we speak of <em>Simple
CRIs</em>, which cover a larger subset of protocols that employ URIs.
To overcome remaining limitations, <em>Extended Forms</em> of CRIs may be
defined to enable further applications.
They will generally extend the CRI structure to accommodate more potential
values of text components of URIs, such as userinfo, hostnames, paths,
queries, and fragments.</t>
      <t>Extensions may also be defined to afford a more natural
representation of the information in a URI.
<em>Stand-in Items</em> (<xref target="stand-in"/>) are one way to provide such
representations.
For instance, information that needs to be base64-encoded in a URI can
be represented in a CRI in its natural form as a byte string instead.</t>
      <t>Extensions are or will be necessary to cover two limitations of
Simple CRIs:</t>
      <ul spacing="normal">
        <li>
          <t>Simple CRIs do not support IPvFuture (Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
Definition of such an extension probably best waits until a wider
use of new IP literal formats is planned.</t>
        </li>
        <li>
          <t>More important in practice:  </t>
          <t>
Simple CRIs do not support URI components that <em>require</em>
percent-encoding (Section <xref target="RFC3986" section="2.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) to represent them
in the URI syntax, except where that percent-encoding is used to
escape the main delimiter in use.  </t>
          <t>
E.g., the URI  </t>
          <sourcecode type="uri"><![CDATA[
https://alice/3%2f4-inch
]]></sourcecode>
          <t>
is represented by the Basic CRI  </t>
          <sourcecode type="coap-diag"><![CDATA[
[-4, ["alice"], ["3/4-inch"]]
]]></sourcecode>
          <t>
However, percent-encoding that is used at the application level is not
supported by Simple CRIs:  </t>
          <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
          <t>
CRIs have been designed to relieve implementations operating on CRIs
from string scanning, which both helps constrained implementations and
implementations that need to achieve high throughput.  </t>
          <t>
An extension supporting application-level percent-encoded text in
CRIs is described in <xref target="pet"/>.</t>
        </li>
      </ul>
      <t>Consumers of CRIs will generally notice when an extended form is in
use, by finding structures that do not match the CDDL rules given in
<xref target="cddl"/>.
Future definitions of extended forms need to strive to be
distinguishable in their structures from the extended form presented
here as well as other future forms.</t>
      <t>Extensions to CRIs are not intended to change encoding constraints;
e.g., <xref target="no-indef"/> is applicable to extended forms of CRIs as well.
This also ensures that recipients of CRIs can deal with unprocessable CRIs
as described in <xref target="unprocessable"/>.</t>
      <section anchor="stand-in">
        <name>Extended CRI: Stand-In Items</name>
        <t>Application specifications that use CRIs may explicitly enable the use
of "stand-in" items (tags or simple values).
These are data items used in place of original representation items
such as strings or arrays, where the tag or simple value is defined to
stand for a data item that can be used in the position of the stand-in
item.
Examples would be (1) tags such as 21 to 23 (Section <xref target="RFC8949" section="3.4.5.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) or 108 (<xref section="2.1" sectionFormat="of" target="I-D.bormann-cbor-notable-tags"/>), which stand for text string components but internally
employ more compact byte string representations, or (2) reference tags and
simple values as defined in <xref target="I-D.ietf-cbor-packed"/>.</t>
        <t>Application specifications need to be explicit about which
stand-in items are allowed; otherwise, inconsistent interpretations at
different places in a system can lead to check/use vulnerabilities.</t>
        <t>(Note that specifications that define CBOR tags may be employed in CRI
extensions without actually using the tags defined there as stand-in
tags; e.g., compare the way IP addresses are represented in Basic CRIs
with <xref target="RFC9164"/>.)</t>
      </section>
      <section anchor="pet">
        <name>Extended CRI: Accommodating Percent Encoding (PET)</name>
        <t>This section presents a method to represent percent-encoded segments
of userinfo, hostnames, paths, and queries, as well as fragments.</t>
        <t>The four CDDL rules</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text .feature "userinfo")
host-name   = (*text)
path        = [*text]
query       = [*text]
fragment    = text
]]></sourcecode>
        <t>are replaced with</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text-or-pet .feature "userinfo")
host-name   = (*text-or-pet)
path        = [*text-or-pet]
query       = [*text-or-pet]
fragment    = text-or-pet

text-or-pet = text /
    text-pet-sequence .feature "text-or-pet"

; text1 and pet1 alternating, at least one pet1:
text-pet-sequence = [?text1, ((+(pet1, text1), ?pet1) // pet1)]
; pet is percent-encoded bytes
pet1 = bytes .ne ''
text1 = text .ne ""
]]></sourcecode>
        <t>That is, for each of the host-name, path, and query segments, and for
the userinfo and fragment components, an alternate representation is provided
besides a simple text string: a non-empty array of alternating non-blank text and byte
strings, the text strings of which stand for non-percent-encoded text,
while the byte strings retain the special
semantics of percent-encoded text without actually being
percent-encoded.</t>
        <t>The abovementioned DID URI</t>
        <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
        <t>can now be represented as:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':', "1-balun"]]]
]]></sourcecode>
        <t>(Note that, in CBOR diagnostic notation, single quotes delimit
literals for byte strings, double quotes for text strings.)</t>
        <t>To yield a valid CRI using the <tt>text-or-pet</tt> feature, the use of byte
strings <bcp14>MUST</bcp14> be minimal.
Both the following examples are therefore not valid:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:", '7:', "1-balun"]]]
]]></sourcecode>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':1', "-balun"]]]
]]></sourcecode>
        <t>An algorithm for constructing a valid <tt>text-pet-sequence</tt> might
repeatedly examine the byte sequences in each byte string; if such a
sequence stands for an unreserved ASCII character, or constitutes a
valid UTF-8 character ≥ U+0080, move this character over into a text
string by appending it to the end of the preceding text string,
prepending it to the start of the following text string, or splitting
the byte string and inserting a new text string with this character,
all while preserving the order of the bytes.
(Note that the properties of UTF-8 make this a simple linear process;
working around the NFC constraint <xref format="counter" target="c-nfc"/> in this way may be more
complex.)</t>
        <aside>
          <t>Unlike the text elements of a path or a query, which through CoAP's
heritage are designed to be processable element by element, a
text-pet-sequence does not usually produce a semantically meaningful
division into array elements.
This consequence of the flexibility in delimiters offered in URIs is
demonstrated by this example, which structurally singles out the one
':' that is <em>not</em> a delimiter at the application level.
Applications specifically designed for using CRIs will generally
avoid using the <tt>text-or-pet</tt> feature.
Applications using existing URI structures that require
text-pet-sequence elements for their representation typically need
to process them byte by byte.</t>
        </aside>
      </section>
    </section>
    <section anchor="integration-into-coap-and-ace">
      <name>Integration into CoAP and ACE</name>
      <t>This section discusses ways in which CRIs can be used in the context
of the CoAP protocol <xref target="RFC7252"/> and of Authorization for Constrained
Environments (ACE), specifically the Authorization Information Format
(AIF) <xref target="RFC9237"/>.</t>
      <section anchor="converting-between-coap-cris-and-sets-of-coap-options">
        <name>Converting Between CoAP CRIs and Sets of CoAP Options</name>
        <t>This section provides an analogue to Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>:
Computing a set of CoAP options from a request CRI (<xref target="decompose-coap"/>) and computing a
request CRI from a set of COAP options (<xref target="compose-coap"/>).</t>
        <t>As with Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>, the (intended or actually
used) request's destination transport address is considered an
additional parameter to these algorithms, usually used to be able to
elide (by supplying default values for) CoAP options that would
contain components of this transport address.
As with Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>, the text in this section
speaks about the request's destination IP address and the request's
destination UDP port as components of the request's destination
transport address used in this way; transports that do not have these
components or have other components that are to be used in this way
need to specify their own URI conversion, which then applies here as well.</t>
        <t>This section makes use of the mapping between CRI scheme numbers
and URI scheme names shown in <xref target="scheme-map"/>:</t>
        <table anchor="scheme-map">
          <name>Mapping CRI scheme numbers and URI scheme names</name>
          <thead>
            <tr>
              <th align="left">CRI scheme number</th>
              <th align="left">URI scheme name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">coap</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">coaps</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">coap+tcp</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">coaps+tcp</td>
            </tr>
            <tr>
              <td align="left">24</td>
              <td align="left">coap+ws</td>
            </tr>
            <tr>
              <td align="left">25</td>
              <td align="left">coaps+ws</td>
            </tr>
          </tbody>
        </table>
        <section anchor="decompose-coap">
          <name>Decomposing a Request CRI into a set of CoAP Options</name>
          <t>The steps to parse a request's options from a CRI »cri« (and from
   the request's intended destination IP address) are as
   follows.  These steps either result in zero or more of the Uri-Host,
   Uri-Port, Uri-Path, and Uri-Query Options being included in the
   request, or they fail.</t>
          <t>Where the following speaks of deriving a text-string for a CoAP Option
value from a data item in the CRI, the presence of any
<tt>text-pet-sequence</tt> subitem (<xref target="pet"/>) in this item fails this algorithm.</t>
          <ol spacing="normal" type="1" start="1"><li>
              <t>If »cri« is not a full CRI, then fail this algorithm.</t>
            </li>
            <li>
              <t>Translate the scheme-id into a URI scheme name as per
<xref target="scheme-id"/> and
<xref target="scheme-map"/>; if a scheme-id that corresponds to a scheme
number not in this list is being used, or if a scheme-name is
being used,
fail this algorithm.
Remember the specific variant of CoAP to be used based on this
URI scheme name.</t>
            </li>
            <li>
              <t>If the »cri«'s <tt>fragment</tt> component is non-null, then fail this algorithm.</t>
            </li>
            <li>
              <t>If the <tt>host</tt> component of »cri« is a <tt>host-name</tt>, include a
Uri-Host Option and let that option's value be the text string
values of the <tt>host-name</tt> elements joined by dots.  </t>
              <t>
If the <tt>host</tt> component of »cri« is a <tt>host-ip</tt>, check whether
the IP address given represents the request's destination IP
address (and the zone-ids of both addresses also match by being
absent or by pointing to the same interface).
Only if it does not, include a Uri-Host Option, and let that
option's value be the text value of the URI representation of
the IP address, as derived in <xref target="host-ip-to-uri"/> (note that
zone-ids are never present in Uri-Host Options).</t>
            </li>
            <li>
              <t>If the <tt>port</tt> subcomponent in a »cri« is not absent, then let »port« be that
subcomponent's unsigned integer value; otherwise, let »port« be
the default port number for the scheme.</t>
            </li>
            <li>
              <t>If »port« does not equal the request's destination port,
include a Uri-Port Option and let that option's value be »port«.</t>
            </li>
            <li>
              <t>If the value of the <tt>path</tt> component of »cri« is empty or
consists of a single empty string, then move to the next step.  </t>
              <t>
Otherwise, for each element in the »path« component, include a
Uri-Path Option and let that option's value be the text string
value of that element.</t>
            </li>
            <li>
              <t>If the value of the <tt>query</tt> component of »cri« is non-empty,
then, for each element in the <tt>query</tt> component, include a
Uri-Query Option and let that option's value be the text string
value of that element.</t>
            </li>
          </ol>
        </section>
        <section anchor="compose-coap">
          <name>Composing a Request CRI from a Set of CoAP Options</name>
          <t>The steps to construct a CRI from a request's options (and the
   destination IP address on which the request was received) are as follows.
   These steps either result in a CRI or they fail.</t>
          <ol spacing="normal" type="1" start="1"><li>
              <t>Based on the variant of CoAP used in the request, choose a
<tt>scheme-id</tt> as per <xref target="scheme-id"/> and table <xref target="scheme-map"/>.  Use
that as the first value in the resulting CRI array.</t>
            </li>
            <li>
              <t>If the request includes a Uri-Host Option, insert an
<tt>authority</tt> with its value determined as follows:
If the value of the Uri-Host Option is a <tt>reg-name</tt>, split it
on any dots in the name and use the resulting text string
values as the elements of the <tt>host-name</tt> array.
If the value is an IP-literal or IPv4address, represent the IP
address as a byte string of
the correct length in <tt>host-ip</tt>; if a <tt>zone-id</tt> can be
extracted from the request's destination
IP address and if the IP address is ambiguous in the context
of the local system, append the zone-id.
If the value is none of the three, fail this algorithm.  </t>
              <t>
If the request does not include a Uri-Host Option, insert an
<tt>authority</tt> with <tt>host-ip</tt> being the byte string that
represents the request's destination IP address and,
if one is present in the request's destination address, add a
<tt>zone-id</tt>.</t>
            </li>
            <li>
              <t>If the request includes a Uri-Port Option, let »port« be that
option's value.  Otherwise, let »port« be the request's
destination port.
If »port« is not the default port for the scheme, then insert
the integer value of »port« as the value of <tt>port</tt> in the
authority.
Otherwise, elide the <tt>port</tt>.</t>
            </li>
            <li>
              <t>Insert a <tt>path</tt> component that contains an array built from
the text string values of the Uri-Path Options in the request,
or an empty array if no such options are present.</t>
            </li>
            <li>
              <t>Insert a <tt>query</tt> component that contains an array built from
the text string values of the Uri-Query Options in the request,
or an empty array if no such options are present.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="coap-options">
        <name>CoAP Options for Forward-Proxies</name>
        <t>Apart from the above procedures to convert CoAP CRIs to and from sets
of CoAP Options, two additional CoAP Options are defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/> that support requests to forward-proxies:</t>
        <ul spacing="normal">
          <li>
            <t>Proxy-Uri, and</t>
          </li>
          <li>
            <t>its more lightweight variant, Proxy-Scheme</t>
          </li>
        </ul>
        <t>This section defines analogues of these that employ CRIs and the URI
Scheme numbering provided by the present specification.</t>
        <section anchor="proxy-cri">
          <name>Proxy-CRI</name>
          <table anchor="tab-proxy-cri">
            <name>Proxy-Cri CoAP Option</name>
            <thead>
              <tr>
                <th align="left">No.</th>
                <th align="left">C</th>
                <th align="left">U</th>
                <th align="left">N</th>
                <th align="left">R</th>
                <th align="left">Name</th>
                <th align="left">Format</th>
                <th align="left">Length</th>
                <th align="left">Default</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD235</td>
                <td align="left">x</td>
                <td align="left">x</td>
                <td align="left">-</td>
                <td align="left"> </td>
                <td align="left">Proxy-Cri</td>
                <td align="left">opaque</td>
                <td align="left">1-1023</td>
                <td align="left">(none)</td>
              </tr>
            </tbody>
          </table>
          <t>The Proxy-CRI Option carries an encoded CBOR data item that represents
a full CRI.
It is used analogously to Proxy-Uri as defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/>.
The Proxy-Cri Option <bcp14>MUST</bcp14> take precedence over any of the Uri-Host,
Uri-Port, Uri-Path or Uri-Query options, as well as over any
Proxy-Uri Option (each of which <bcp14>MUST NOT</bcp14> be
included in a request containing the Proxy-Cri Option).</t>
        </section>
        <section anchor="proxy-scheme-number">
          <name>Proxy-Scheme-Number</name>
          <table anchor="tab-proxy-scheme-number">
            <name>Proxy-Scheme-Number CoAP Option</name>
            <thead>
              <tr>
                <th align="left">No.</th>
                <th align="left">C</th>
                <th align="left">U</th>
                <th align="left">N</th>
                <th align="left">R</th>
                <th align="left">Name</th>
                <th align="left">Format</th>
                <th align="left">Length</th>
                <th align="left">Default</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD239</td>
                <td align="left">x</td>
                <td align="left">x</td>
                <td align="left">-</td>
                <td align="left"> </td>
                <td align="left">Proxy-Scheme-Number</td>
                <td align="left">uint</td>
                <td align="left">0-3</td>
                <td align="left">(none)</td>
              </tr>
            </tbody>
          </table>
          <t>The Proxy-Scheme-Number Option carries a CRI Scheme Number represented as a
CoAP unsigned integer.
It is used analogously to Proxy-Scheme as defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/>.</t>
          <t>The Proxy-Scheme Option <bcp14>MUST NOT</bcp14> be included in a request that also
contains the Proxy-Scheme-Number Option; servers <bcp14>MUST</bcp14> reject the
request if this is the case.</t>
          <t>As per <xref section="3.2" sectionFormat="of" target="RFC7252"/>, CoAP Options are only defined as one of empty, (text) string,
opaque (byte string), or uint (unsigned integer).
The Option therefore carries an
unsigned integer that represents the CRI scheme-number (which relates to
a CRI scheme-id as defined in <xref target="scheme-id"/>).
For instance, the scheme name "coap" has the scheme-number 0 and is
represented as an unsigned integer by a zero-length CoAP Option value.</t>
        </section>
      </section>
      <section anchor="toid">
        <name>ACE AIF</name>
        <t>The AIF (Authorization Information Format, <xref target="RFC9237"/>) defined by ACE by
default uses the local part of a URI to identify a resource for which
authorization is indicated.
The type and target of this information is an extension point, briefly
called <em>Toid</em> (Type of object identifier).
<xref target="toidreg"/> registers "CRI-local-part" as a Toid.
Together with <em>Tperm</em>, an extension point for a way to indicate
individual access rights (permissions), <xref section="2" sectionFormat="of" target="RFC9237"/>
defines its general Information Model as:</t>
        <sourcecode type="cddl"><![CDATA[
AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></sourcecode>
        <t>Using the definitions in <xref target="cddl"/> together with the <xref target="RFC9237"/> default Tperm
choice <tt>REST-method-set</tt>, this information model can be specialized as
in:</t>
        <sourcecode type="cddl"><![CDATA[
CRI-local-part = [path, ?query]
AIF-CRI = AIF-Generic<CRI-local-part, REST-method-set>
]]></sourcecode>
        <!-- cddlc -irfc9237 -sAIF-CRI -r2u -tcddl - -->

</section>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>(Boilerplate as per <xref section="2.1" sectionFormat="of" target="RFC7942"/>:)</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of
this Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>.  The description of implementations in this section is
intended to assist the IETF in its decision processes in
progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the
IETF.  Furthermore, no effort has been spent to verify the
information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a
catalog of available implementations or their features.  Readers
are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working
groups to assign due consideration to documents that have the
benefit of running code, which may serve as evidence of valuable
experimentation and feedback that have made the implemented
protocols more mature.  It is up to the individual working groups
to use this information as they see fit".
<?line -22?>
      </t>
      <t>A golang implementation of revision -10 of this document is found at:
<tt>https://github.com/thomas-fossati/href</tt>.
A Rust implementation is available at <tt>https://codeberg.org/chrysn/cri-ref</tt>;
it is being updated to revision -18 at the time of writing.
A python implementation is available as part of <tt>https://gitlab.com/chrysn/micrurus</tt>
but is based on revision -05.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Parsers of CRI references must operate on input that is assumed to be
untrusted. This means that parsers <bcp14>MUST</bcp14> fail gracefully
in the face of malicious inputs.
Additionally, parsers <bcp14>MUST</bcp14> be prepared to deal with
resource exhaustion (e.g., resulting from the allocation of big data
items) or exhaustion of the call stack (stack overflow).
See Section <xref target="RFC8949" section="10" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> for additional
security considerations relating to CBOR.</t>
      <t>The security considerations discussed in Section <xref target="RFC3986" section="7" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> and
<xref section="8" sectionFormat="of" target="RFC3987"/> for URIs and IRIs also apply to CRIs.
The security considerations discussed for URIs in <xref section="6" sectionFormat="of" target="RFC9237"/>
apply analogously to AIF-CRI <xref target="toid"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="removenumbers">RFC-editor: Please replace all references to
<xref target="sec-numbers"/> by a reference to the IANA registry.</cref></t>
      <t><cref anchor="replace-xxxx_1">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      <section anchor="cri-reg">
        <name>CRI Scheme Numbers Registry</name>
        <t>This specification defines a new "CRI Scheme Numbers" registry in the
"Constrained RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>, with the policy "Expert Review" (Section <xref target="RFC8126" section="4.5" sectionFormat="bare"/> of RFC 8126 <xref target="BCP26"/>).
The objective is to have CRI scheme number values registered for all
registered URI schemes (Uniform Resource Identifier (URI) Schemes
registry), as well as exceptionally for certain text strings that the
Designated Expert considers widely used in constrained applications in
place of URI scheme names.</t>
        <section anchor="de-instructions">
          <name>Instructions for the Designated Expert</name>
          <t>The expert is instructed to be frugal in the allocation of CRI scheme
number values whose scheme-id values (<xref target="scheme-id"/>) have short
representations (1+0 and 1+1 encoding), keeping them in
reserve for applications that are likely to enjoy wide use and can
make good use of their shortness.</t>
          <t>When the expert notices that a registration has been made in the
Uniform Resource Identifier (URI) Schemes registry (see also <xref target="upd"/>),
the expert is requested to initiate a parallel registration in the CRI
Scheme Numbers registry.
CRI scheme number values in the range between 1000 and
20000 (inclusive) should be assigned unless a shorter representation
in CRIs appears desirable.</t>
          <t>The expert exceptionally also may make such a registration for text
strings that have not been registered in the Uniform Resource
Identifier (URI) Schemes registry if and only if the expert considers
them to be in wide use in place of URI scheme names in constrained
applications.
(Note that registrations in the CRI Scheme Numbers registry are
oblivious to the details of any URI Schemes registry registration, so
if a registration is later made in the URI Schemes registry that uses
such a previously unregistered text string as a name, the CRI Scheme
Numbers registration simply stays in place, even if the URI Schemes
registration happens to be for something different from what the
expert had in mind at the time for the CRI Scheme Numbers
registration.
Also note that the initial registrations in <xref target="tab-numbers"/> in
<xref target="sec-numbers"/> already include such registrations for the text strings
"mqtt" and "mqtts".)</t>
          <t>A registration in the CRI Scheme Numbers registry does not imply that
a URI scheme under this name exists or has been registered in the
Uniform Resource Identifier (URI) Schemes registry -- it essentially
is only providing an integer identifier for an otherwise uninterpreted
text string.</t>
          <t>Any questions or issues that might interest a wider audience might be
raised by the expert on the core-parameters@ietf.org mailing list for
a time-limited discussion.</t>
        </section>
        <section anchor="structure-of-entries">
          <name>Structure of Entries</name>
          <t>Each entry in the registry must include:</t>
          <dl newline="true">
            <dt>CRI scheme number:</dt>
            <dd>
              <t>An unsigned integer unique in this registry</t>
            </dd>
            <dt>URI scheme name:</dt>
            <dd>
              <t>a text string that would be acceptable for registration as a URI
Scheme Name in the Uniform Resource Identifier (URI) Schemes
registry</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>a reference to a document, if available, or the registrant</t>
            </dd>
          </dl>
          <t>The Reference field can simply be a copy of the reference field for the
URI-Scheme registration if that exists.
If not, it can contain helpful information (including the name of the
registrant) that may be available for the registration, with the
expectation that this will be updated if a URI-Scheme registration
under that URI scheme name is later made.</t>
        </section>
        <section anchor="initial-registrations">
          <name>Initial Registrations</name>
          <t>The initial registrations for the CRI Scheme Numbers registry are
provided in <xref target="tab-numbers"/> in <xref target="sec-numbers"/>.</t>
        </section>
      </section>
      <section anchor="upd">
        <name>Update to "Uniform Resource Identifier (URI) Schemes" Registry</name>
        <t>RFC 7595 <xref target="BCP35"/> is updated to add the following note in the "Uniform
Resource Identifier (URI) Schemes" Registry <xref target="IANA.uri-schemes"/>:</t>
        <blockquote>
          <t>The CRI Scheme Numbers Registry registers numeric identifiers for what
essentially are URI Scheme names.
Registrants for the Uniform Resource Identifier (URI) Schemes Registry
are requested to make a parallel registration in the CRI Scheme
Numbers registry.
The number for this registration will be assigned by the Designated
Expert for that registry.</t>
        </blockquote>
      </section>
      <section anchor="cri-iana">
        <name>CBOR Diagnostic Notation Application-extension Identifiers Registry</name>
        <t>In the "Application-Extension Identifiers" registry in the "CBOR
Diagnostic Notation" registry group [IANA.cbor-diagnostic-notation],
IANA is requested to register the application-extension identifier
<tt>cri</tt> as described in <xref target="tab-iana"/> and defined in <xref target="edn-cri"/>.</t>
        <table anchor="tab-iana">
          <name>CBOR Extended Diagnostic Notation (EDN) Application-extension Identifier for CRI</name>
          <thead>
            <tr>
              <th align="left">Application-extension Identifier</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">cri</td>
              <td align="left">Constrained Resource Identifier</td>
              <td align="left">IETF</td>
              <td align="left">RFC-XXXX, <xref target="edn-cri"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="tags-iana">
        <name>CBOR Tags Registry</name>
        <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
        <t>In the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>, IANA is requested to assign the
tags in <xref target="tab-tag-values"/> from the "specification required" space
(suggested assignment: 99), with the present document as the
specification reference.</t>
        <table anchor="tab-tag-values">
          <name>Values for Tags</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">CPA99</td>
              <td align="left">array</td>
              <td align="left">CRI Reference</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="coap-option-numbers-registry">
        <name>CoAP Option Numbers Registry</name>
        <t><cref anchor="tbd">RFC-Editor: For each usage of the term "TBD", please remove
  the prefix "TBD" from the indicated value and replace the
  residue with the value actually assigned by IANA; perform an
  analogous substitution for all other occurrences of the prefix
  "TBD" in the document.
  Finally, please remove this note.</cref></t>
        <t>In the "CoAP Option Numbers" registry in the "CoRE Parameters" registry group <xref target="IANA.core-parameters"/>,
IANA is requested to register the CoAP Option Numbers
as described in <xref target="tab-iana-options"/> and defined in <xref target="coap-options"/>.</t>
        <table anchor="tab-iana-options">
          <name>New CoAP Option Numbers</name>
          <thead>
            <tr>
              <th align="left">No.</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD235</td>
              <td align="left">Proxy-Cri</td>
              <td align="left">RFC-XXXX</td>
            </tr>
            <tr>
              <td align="left">TBD239</td>
              <td align="left">Proxy-Scheme-Number</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="toidreg">
        <name>Media-Type subparameters for ACE AIF</name>
        <t>In the "Sub-Parameter Registry for application/aif+cbor and
application/aif+json" in the "Media Type Sub-Parameter Registries"
registry group <xref target="IANA.media-type-sub-parameters"/>, IANA is requested to
register:</t>
        <table anchor="tab-iana-toid">
          <name>ACE AIF Toid for CRI</name>
          <thead>
            <tr>
              <th align="left">Parameter</th>
              <th align="left">Name</th>
              <th align="left">Description/Specification</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Toid</td>
              <td align="left">CRI-local-part</td>
              <td align="left">local-part of CRI</td>
              <td align="left">
                <xref target="toid"/> of RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="content-format-for-cri-in-aif">
        <name>Content-Format for CRI in AIF</name>
        <t>IANA is requested to register a Content-Format identifier in the "CoAP
Content-Formats" registry (range 256-999), within the "Constrained
RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>, as follows:</t>
        <table anchor="tab-iana-toid-ct">
          <name>Content-Format for ACE AIF with CRI-local-part Toid</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/aif+cbor;Toid=CRI-local-part</td>
              <td align="left">-</td>
              <td align="left">TBD</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4007">
          <front>
            <title>IPv6 Scoped Address Architecture</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="B. Zill" initials="B." surname="Zill"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes. According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4007"/>
          <seriesInfo name="DOI" value="10.17487/RFC4007"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc6991-bis">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="Jürgen Schönwälder" initials="J." surname="Schönwälder">
              <organization>Constructor University</organization>
            </author>
            <date day="23" month="June" year="2025"/>
            <abstract>
              <t>   This document defines a collection of common data types to be used
   with the YANG data modeling language.  This version of the document
   adds several new type definitions and obsoletes RFC 6991.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc6991-bis-18"/>
        </reference>
        <referencegroup anchor="STD66" target="https://www.rfc-editor.org/info/std66">
          <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986">
            <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>
        </referencegroup>
        <referencegroup anchor="STD63" target="https://www.rfc-editor.org/info/std63">
          <reference anchor="RFC3629" target="https://www.rfc-editor.org/info/rfc3629">
            <front>
              <title>UTF-8, a transformation format of ISO 10646</title>
              <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
              <date month="November" year="2003"/>
              <abstract>
                <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="63"/>
            <seriesInfo name="RFC" value="3629"/>
            <seriesInfo name="DOI" value="10.17487/RFC3629"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC3987">
          <front>
            <title>Internationalized Resource Identifiers (IRIs)</title>
            <author fullname="M. Duerst" initials="M." surname="Duerst"/>
            <author fullname="M. Suignard" initials="M." surname="Suignard"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>This document defines a new protocol element, the Internationalized Resource Identifier (IRI), as a complement of the Uniform Resource Identifier (URI). An IRI is a sequence of characters from the Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to URIs is defined, which means that IRIs can be used instead of URIs, where appropriate, to identify resources.</t>
              <t>The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs. This was done in order to allow a clear distinction and to avoid incompatibilities with existing software. Guidelines are provided for the use and deployment of IRIs in various protocols, formats, and software components that currently deal with URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3987"/>
          <seriesInfo name="DOI" value="10.17487/RFC3987"/>
        </reference>
        <referencegroup anchor="BCP35" target="https://www.rfc-editor.org/info/bcp35">
          <reference anchor="RFC7595" target="https://www.rfc-editor.org/info/rfc7595">
            <front>
              <title>Guidelines and Registration Procedures for URI Schemes</title>
              <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
              <author fullname="T. Hansen" initials="T." surname="Hansen"/>
              <author fullname="T. Hardie" initials="T." surname="Hardie"/>
              <date month="June" year="2015"/>
              <abstract>
                <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes. It obsoletes RFC 4395.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="35"/>
            <seriesInfo name="RFC" value="7595"/>
            <seriesInfo name="DOI" value="10.17487/RFC7595"/>
          </reference>
        </referencegroup>
        <reference anchor="IANA.uri-schemes" target="https://www.iana.org/assignments/uri-schemes">
          <front>
            <title>Uniform Resource Identifier (URI) Schemes</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <referencegroup anchor="BCP26" target="https://www.rfc-editor.org/info/bcp26">
          <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <reference anchor="IANA.media-type-sub-parameters" target="https://www.iana.org/assignments/media-type-sub-parameters">
          <front>
            <title>Media Type Sub-Parameter Registries</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Information about which entities are authorized to perform what operations on which constituents of other entities is a crucial component of producing an overall system that is secure. Conveying precise authorization information is especially critical in highly automated systems with large numbers of entities, such as the Internet of Things.</t>
              <t>This specification provides a generic information model and format for representing such authorization information, as well as two variants of a specific instantiation of that format for use with Representational State Transfer (REST) resources identified by URI path.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9237"/>
          <seriesInfo name="DOI" value="10.17487/RFC9237"/>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="Unicode" target="https://www.unicode.org/versions/Unicode13.0.0/">
          <front>
            <title>The Unicode Standard, Version 13.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-26-9"/>
          <annotation>RFC Editor: please replace with version current at publication (probably 17.0.0) and check whether D80, D120, and D92 are still pointing to the same definitions as in 13.0.0.</annotation>
        </reference>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
            <front>
              <title>Key words for use in RFCs to Indicate Requirement Levels</title>
              <author 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" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3490">
          <front>
            <title>Internationalizing Domain Names in Applications (IDNA)</title>
            <author fullname="P. Faltstrom" initials="P." surname="Faltstrom"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="A. Costello" initials="A." surname="Costello"/>
            <date month="March" year="2003"/>
            <abstract>
              <t>Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. This document defines internationalized domain names (IDNs) and a mechanism called Internationalizing Domain Names in Applications (IDNA) for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3490"/>
          <seriesInfo name="DOI" value="10.17487/RFC3490"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in the standardization work for
   constrained-node networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-02"/>
        </reference>
        <referencegroup anchor="STD97" target="https://www.rfc-editor.org/info/std97">
          <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110">
            <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>
        </referencegroup>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC9164">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for IPv4 and IPv6 Addresses and Prefixes</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This specification defines two Concise Binary Object Representation (CBOR) tags for use with IPv6 and IPv4 addresses and prefixes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9164"/>
          <seriesInfo name="DOI" value="10.17487/RFC9164"/>
        </reference>
        <referencegroup anchor="BCP190" target="https://www.rfc-editor.org/info/bcp190">
          <reference anchor="RFC8820" target="https://www.rfc-editor.org/info/rfc8820">
            <front>
              <title>URI Design and Ownership</title>
              <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
                <t>This document provides guidance on the specification of URI substructure in standards.</t>
                <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="8820"/>
            <seriesInfo name="DOI" value="10.17487/RFC8820"/>
          </reference>
        </referencegroup>
        <reference anchor="W3C.REC-html52-20171214" target="https://www.w3.org/TR/2017/REC-html52-20171214/">
          <front>
            <title>HTML 5.2</title>
            <author fullname="Alex Danilo" role="editor"/>
            <author fullname="Arron Eicholz" role="editor"/>
            <author fullname="Sangwhan Moon" role="editor"/>
            <author fullname="Steve Faulkner" role="editor"/>
            <author fullname="Travis Leithead" role="editor"/>
            <date day="14" month="December" year="2017"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-html52-20171214"/>
          <seriesInfo name="W3C" value="REC-html52-20171214"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -18
   // corrects a few omissions from -17; it is not intended to make
   // technical changes from -17.  It is intended for use as an input
   // document for the CBOR WG meeting at IETF 123.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-18"/>
        </reference>
        <reference anchor="RFC9844">
          <front>
            <title>Entering IPv6 Zone Identifiers in User Interfaces</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="August" year="2025"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined in the IPv6 Scoped Address Architecture specification (RFC 4007), should be entered into a user interface. This document obsoletes RFC 6874 and updates RFCs 4007, 7622, and 8089.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9844"/>
          <seriesInfo name="DOI" value="10.17487/RFC9844"/>
        </reference>
        <reference anchor="RFC6874">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined as in the IPv6 Scoped Address Architecture (RFC 4007), can be represented in a literal IPv6 address and in a Uniform Resource Identifier that includes such a literal address. It updates the URI Generic Syntax specification (RFC 3986) accordingly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6874"/>
          <seriesInfo name="DOI" value="10.17487/RFC6874"/>
        </reference>
        <reference anchor="I-D.schinazi-httpbis-link-local-uri-bcp">
          <front>
            <title>Best Practices for Link-Local Connectivity in URI-Based Protocols</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="22" month="February" year="2024"/>
            <abstract>
              <t>   Link-local IP connectivity allows hosts on the same network to
   communicate with each other without the need for centralized IP
   addressing infrastructure.  The IP prefixes 169.254.0.0/16 and
   fe80::/10 were reserved for this purpose.  However, both IP versions
   have limitations that make link-local addresses unideal for usage
   with URI-based protocols.  This document provides guidance for how
   best to enable link-local connectivity in such protocols.  This
   document also obsoletes RFC 6874, a previous attempt at solving this
   issue.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schinazi-httpbis-link-local-uri-bcp-03"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-packed">
          <front>
            <title>Packed CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mikolai Gütschow" initials="M." surname="Gütschow">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949 == STD 94)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR does not provide any forms of data compression.  CBOR data
   items, in particular when generated from legacy data models, often
   allow considerable gains in compactness when applying data
   compression.  While traditional data compression techniques such as
   DEFLATE (RFC 1951) can work well for CBOR encoded data items, their
   disadvantage is that the recipient needs to decompress the compressed
   form before it can make use of the data.

   This specification describes Packed CBOR, a set of CBOR tags and
   simple values that enable a simple transformation of an original CBOR
   data item into a Packed CBOR data item that is almost as easy to
   consume as the original CBOR data item.  A separate decompression
   step is therefore often not required at the recipient.


   // (This cref will be removed by the RFC editor:) The present
   // revision -16 is intended as input to IETF 123, to address the
   // discussion about the use of simple values as reference items
   // during the 2025-06-11 CBOR interim meeting.  It contains a number
   // of editorial improvements as well as the new concept of an
   // integration tag; it is for discussion whether the latter should or
   // should not be added to Packed CBOR.  The wording of the present
   // revision continues to make use of the tunables A/B/C to be set to
   // specific numbers before completing the Packed CBOR specification;
   // not all the examples may fully align yet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-16"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-notable-tags">
          <front>
            <title>Notable CBOR Tags</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="20" month="July" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   RFC 8949's original edition, RFC 7049, defined a basic set of 16 tags
   as well as a registry that can be used to contribute additional tag
   definitions [IANA.cbor-tags].  Since RFC 7049 was published, at the
   time of writing some 190 definitions of tags and ranges of tags have
   been added to that registry.

   The present document provides a roadmap to a large subset of these
   tag definitions.  Where applicable, it points to an IETF standards or
   standard development document that specifies the tag.  Where no such
   document exists, the intention is to collect specification
   information from the sources of the registrations.  After some more
   development, the present document is intended to be useful as a
   reference document for the IANA registrations of the CBOR tags the
   definitions of which have been collected.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-notable-tags-13"/>
        </reference>
        <reference anchor="RFC9170">
          <front>
            <title>Long-Term Viability of Protocol Extension Mechanisms</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The ability to change protocols depends on exercising the extension and version-negotiation mechanisms that support change. This document explores how regular use of new protocol features can ensure that it remains possible to deploy changes to a protocol. Examples are given where lack of use caused changes to be more difficult or costly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9170"/>
          <seriesInfo name="DOI" value="10.17487/RFC9170"/>
        </reference>
        <reference anchor="MNU">
          <front>
            <title>Modern Network Unicode</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="30" month="August" year="2025"/>
            <abstract>
              <t>   BCP18 (RFC 2277) has been the basis for the handling of character-
   shaped data in IETF specifications for more than a quarter of a
   century now.  It singles out UTF-8 (STD63, RFC 3629) as the “charset”
   that MUST be supported, and pulls in the Unicode standard with that.

   Based on this, RFC 5198 both defines common conventions for the use
   of Unicode in network protocols and caters for the specific
   requirements of the legacy protocol Telnet.  In applications that do
   not need Telnet compatibility, some of the decisions of RFC 5198 can
   be cumbersome.

   The present specification defines “Modern Network Unicode” (MNU),
   which is a form of RFC 5198 Network Unicode that can be used in
   specifications that require the exchange of plain text over networks
   and where just mandating UTF-8 may not be sufficient, but there is
   also no desire to import all of the baggage of RFC 5198.

   As characters are used in different environments, MNU is defined in a
   one-dimensional (1D) variant that is useful for identifiers and
   labels, but does not use a structure of text lines.  A 2D variant is
   defined for text that is a sequence of text lines, such as plain text
   documents or markdown format.  Additional variances of these two base
   formats can be used to tailor MNU to specific areas of application.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-dispatch-modern-network-unicode-07"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC4180">
          <front>
            <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv". This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4180"/>
          <seriesInfo name="DOI" value="10.17487/RFC4180"/>
        </reference>
      </references>
    </references>
    <?line 1837?>

<section anchor="the-small-print">
      <name>Examples of Corner Cases</name>
      <t>This appendix lists a few corner cases of URI semantics that
implementers of CRIs need to be aware of, but that are not
representative of the normal operation of CRIs.</t>
      <ol spacing="normal" type="SP%d." group="SP" start="1"><li anchor="sp-leading-empty">
          <t>Initial (Lone/Leading) Empty Path Segments:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t><em>Lone empty path segments:</em>
  As per <xref target="STD66"/>, <tt>s://x</tt> is distinct from <tt>s://x/</tt> -- i.e., a URI
  with an empty path (<tt>[]</tt> in CRI) is different from one with a lone
  empty path segment (<tt>[""]</tt>).
  However, in HTTP and CoAP, they are implicitly aliased (for CoAP, in
  item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>).
  As per item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/>, recomposition of a URI
  without Uri-Path Options from the other URI-related CoAP Options
  produces <tt>s://x/</tt>, not <tt>s://x</tt> -- CoAP prefers the lone empty path
  segment form.
  Similarly, after discussing HTTP semantics, Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> states:</t>
        </li>
      </ul>
      <blockquote>
        <t>In general, a URI that uses the generic syntax for authority with an
  empty path should be normalized to a path of "/".</t>
      </blockquote>
      <ul spacing="normal">
        <li>
          <t><em>Leading empty path segments without authority</em>:
  Somewhat related, note also that URIs and URI references that do not
  carry an authority cannot represent leading empty path segments
  (i.e., that are followed by further path segments): <tt>s://x//foo</tt>
  works, but in a <tt>s://foo</tt> URI or an (absolute-path) URI reference of
  the form <tt>//foo</tt> the double slash would be mis-parsed as leading in
  to an authority.</t>
        </li>
      </ul>
      <ol spacing="normal" type="SP%d." group="SP" start="2"><li anchor="sp-constraints">
          <t>Constraints (<xref target="constraints"/>) of CRIs/basic CRIs  </t>
          <t>
While most URIs in everyday use can be converted to CRIs and back to URIs
matching the input after syntax-based normalization of the URI,
these URIs illustrate the constraints by example:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>https://host%ffname</tt>, <tt>https://example.com/x?data=%ff</tt>      </t>
              <t>
All URI components must, after percent decoding, be valid UTF-8 encoded text.
Bytes that are not valid UTF-8 show up, for example, in BitTorrent web seeds.
<!-- <https://www.bittorrent.org/beps/bep_0017.html>, not sure this warrants an informative reference -->      </t>
              <t>
These URIs can be expressed when using the <tt>text-or-pet</tt> feature.</t>
            </li>
            <li>
              <t><tt>https://example.com/component%3bone;component%3btwo</tt>, <tt>http://example.com/component%3dequals</tt>      </t>
              <t>
While delimiters can be used in an escaped and unescaped form in URIs with generally distinct meanings,
basic CRIs (i.e., without percent-encoded text <xref target="pet"/>) only support one escapable delimiter character per component,
which is the delimiter by which the component is split up in the CRI.      </t>
              <t>
Note that the separators <tt>.</tt> (for authority parts), <tt>/</tt> (for paths), <tt>&amp;</tt> (for query parameters)
are special in that they are syntactic delimiters of their
respective components in CRIs (note that <tt>.</tt> is doubly special
because it is not a <tt>reserved</tt> character in <xref target="STD66"/> and therefore
any percent-encoding would be normalized away).      </t>
              <t>
Thus, the following examples <em>are</em> convertible to basic CRIs without the <tt>text-or-pet</tt> feature:      </t>
              <t><tt>https://example.com/path%2fcomponent/second-component</tt>      </t>
              <t><tt>https://example.com/x?ampersand=%26&amp;questionmark=?</tt></t>
            </li>
            <li>
              <t><tt>https://alice@example.com/</tt>      </t>
              <t>
The user information can be expressed in CRIs if the "userinfo"
feature is present.  The URI <tt>https://@example.com</tt> is
represented as <tt>[-4, [false, "", "example", "com"]]</tt>; the <tt>false</tt>
serves as a marker that the next element is the userinfo.      </t>
              <t>
The rules explicitly cater for unencoded ":" in userinfo (without
needing the <tt>text-or-pet</tt> feature).
(We opted for including this syntactic feature instead of
disabling it as a mechanism against potential uses of colons for
the deprecated inclusion of unencrypted secrets.)</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="edn-cri">
      <name>CBOR Extended Diagnostic Notation (EDN): The "cri" Extension</name>
      <t><xref target="I-D.ietf-cbor-edn-literals"/> more rigorously defines and further extends the CBOR Extended
Diagnostic Notation (EDN), as originally introduced in Section <xref target="RFC8949" section="8" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> and extended in <xref section="G" sectionFormat="of" target="RFC8610"/>.
Among others, it provides an extension point for
"application-extension identifiers" that can be used to notate CBOR
data items in application-specific ways.</t>
      <t>The present document defines and registers (<xref target="cri-iana"/>) the
application-extension identifier "<tt>cri</tt>", which can be used to notate
an EDN literal for a CRI reference as defined in this document.</t>
      <t>The text of the literal is a URI Reference as per <xref target="STD66"/> or an IRI
Reference as per <xref target="RFC3987"/>.</t>
      <t>The value of the literal is a CRI reference that can be converted to
the text of the literal using the procedure of <xref target="cri-to-uri"/>.
Note that there may be more than one CRI reference that can be
converted to the URI/IRI reference given; implementations are expected
to favor the simplest variant available and make non-surprising
choices otherwise.
In the all-upper-case variant of the app-prefix, the value is enclosed
in a tag number CPA99.</t>
      <t><cref anchor="cpa_1">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
      <t>As an example, the CBOR diagnostic notation</t>
      <sourcecode type="cbor-diag"><![CDATA[
cri'https://example.com/bottarga/shaved'
CRI'https://example.com/bottarga/shaved'
]]></sourcecode>
      <t>is equivalent to</t>
      <sourcecode type="cbor-diag"><![CDATA[
[-4, ["example", "com"], ["bottarga", "shaved"]]
CPA99([-4, ["example", "com"], ["bottarga", "shaved"]])
]]></sourcecode>
      <t>See <xref target="cri-grammar"/> for an ABNF definition for the content of <tt>cri</tt> literals.</t>
      <section anchor="cri-grammar">
        <name>cri: ABNF Definition of URI Representation of a CRI</name>
        <t>It can be expected that implementations of the application-extension
identifier "<tt>cri</tt>" will make use of platform-provided URI
implementations, which will include a URI parser.</t>
        <t>In case such a URI parser is not available or inconvenient to
integrate,
a grammar of the content of <tt>cri</tt> literals is provided by the
ABNF for <tt>URI-reference</tt> in Section <xref target="RFC3986" section="4.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> with certain
re-arrangements taken from <xref section="Figure 5" relative="#figure-5" sectionFormat="bare" target="I-D.ietf-cbor-edn-literals"/> of <xref target="I-D.ietf-cbor-edn-literals"/>;
these are reproduced in <xref target="abnf-grammar-cri"/>.
If the content is not ASCII only (i.e., for IRIs), first apply
<xref section="3.1" sectionFormat="of" target="RFC3987"/> and apply this grammar to the result.</t>
        <figure anchor="abnf-grammar-cri">
          <name>ABNF Definition of URI Representation of a CRI</name>
          <sourcecode type="abnf" name="cbor-edn-cri.abnf"><![CDATA[
app-string-cri = URI-reference
; ABNF from RFC 3986:

URI           = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

hier-part     = "//" authority path-abempty
                 / path-absolute
                 / path-rootless
                 / path-empty

URI-reference = URI / relative-ref

absolute-URI  = scheme ":" hier-part [ "?" query ]

relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

relative-part = "//" authority path-abempty
                 / path-absolute
                 / path-noscheme
                 / path-empty

scheme        = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

authority     = [ userinfo "@" ] host [ ":" port ]
userinfo      = *( unreserved / pct-encoded / sub-delims / ":" )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT

IP-literal    = "[" ( IPv6address / IPvFuture  ) "]"

IPvFuture     = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )

; Use IPv6address, h16, ls32, IPv4adress, dec-octet as re-arranged
; for PEG Compatibility in Figure 5 of [I-D.ietf-cbor-edn-literals]:

IPv6address   =                            6( h16 ":" ) ls32
              /                       "::" 5( h16 ":" ) ls32
              / [ h16               ] "::" 4( h16 ":" ) ls32
              / [ h16 *1( ":" h16 ) ] "::" 3( h16 ":" ) ls32
              / [ h16 *2( ":" h16 ) ] "::" 2( h16 ":" ) ls32
              / [ h16 *3( ":" h16 ) ] "::"    h16 ":"   ls32
              / [ h16 *4( ":" h16 ) ] "::"              ls32
              / [ h16 *5( ":" h16 ) ] "::"              h16
              / [ h16 *6( ":" h16 ) ] "::"

h16           = 1*4HEXDIG
ls32          = ( h16 ":" h16 ) / IPv4address
IPv4address   = dec-octet "." dec-octet "." dec-octet "." dec-octet
dec-octet     = "25" %x30-35         ; 250-255
              / "2" %x30-34 DIGIT    ; 200-249
              / "1" 2DIGIT           ; 100-199
              / %x31-39 DIGIT        ; 10-99
              / DIGIT                ; 0-9
ALPHA         = %x41-5a / %x61-7a
DIGIT         = %x30-39
HEXDIG        = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
; case insensitive matching, i.e., including lower case

reg-name      = *( unreserved / pct-encoded / sub-delims )

path          = path-abempty    ; begins with "/" or is empty
                 / path-absolute   ; begins with "/" but not "//"
                 / path-noscheme   ; begins with a non-colon segment
                 / path-rootless   ; begins with a segment
                 / path-empty      ; zero characters

path-abempty  = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty    = 0<pchar>

segment       = *pchar
segment-nz    = 1*pchar
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
                 ; non-zero-length segment without any colon ":"

pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"

query         = *( pchar / "/" / "?" )

fragment      = *( pchar / "/" / "?" )

pct-encoded   = "%" HEXDIG HEXDIG

unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
reserved      = gen-delims / sub-delims
gen-delims    = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                 / "*" / "+" / "," / ";" / "="
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="sec-numbers" removeInRFC="true">
      <name>Mapping Scheme Numbers to Scheme Names</name>
      <t><cref anchor="replace-xxxx_2">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      <t><xref target="tab-numbers"/> defines the initial mapping from CRI scheme numbers to
URI scheme names.</t>
      <table anchor="tab-numbers">
        <name>Mapping Scheme Numbers to Scheme Names</name>
        <thead>
          <tr>
            <th align="left">CRI scheme number</th>
            <th align="left">URI scheme name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">coap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">coaps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">http</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">https</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">urn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">did</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6</td>
            <td align="left">coap+tcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7</td>
            <td align="left">coaps+tcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">24</td>
            <td align="left">coap+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">25</td>
            <td align="left">coaps+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1059</td>
            <td align="left">ms-gamingoverlay</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1165</td>
            <td align="left">snmp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1220</td>
            <td align="left">cast</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1242</td>
            <td align="left">openid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1273</td>
            <td align="left">hs20</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1319</td>
            <td align="left">z39.50</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1328</td>
            <td align="left">dweb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1466</td>
            <td align="left">psyc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1528</td>
            <td align="left">ms-people</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1560</td>
            <td align="left">ms-uup</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1562</td>
            <td align="left">ms-personacard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1578</td>
            <td align="left">jar</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1658</td>
            <td align="left">wpid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1762</td>
            <td align="left">payment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1895</td>
            <td align="left">news</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1905</td>
            <td align="left">irc6</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1926</td>
            <td align="left">turns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1946</td>
            <td align="left">data</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1982</td>
            <td align="left">ens</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2154</td>
            <td align="left">things</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2284</td>
            <td align="left">resource</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2326</td>
            <td align="left">skype</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2406</td>
            <td align="left">videotex</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2442</td>
            <td align="left">dpp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2747</td>
            <td align="left">upt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2754</td>
            <td align="left">platform</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2790</td>
            <td align="left">ed2k</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2796</td>
            <td align="left">taler</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2806</td>
            <td align="left">fm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2945</td>
            <td align="left">ms-newsandinterests</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3005</td>
            <td align="left">xmlrpc.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3018</td>
            <td align="left">ark</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3119</td>
            <td align="left">wss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3143</td>
            <td align="left">tel</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3255</td>
            <td align="left">vscode-insiders</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3342</td>
            <td align="left">geo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3348</td>
            <td align="left">rtmfp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3358</td>
            <td align="left">mtqp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3365</td>
            <td align="left">filesystem</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3375</td>
            <td align="left">teapots</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3503</td>
            <td align="left">proxy</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3524</td>
            <td align="left">sms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3634</td>
            <td align="left">jms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3646</td>
            <td align="left">mid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3690</td>
            <td align="left">ms-calculator</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3775</td>
            <td align="left">gitoid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3783</td>
            <td align="left">calculator</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3786</td>
            <td align="left">about</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3795</td>
            <td align="left">facetime</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3818</td>
            <td align="left">ari</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3837</td>
            <td align="left">ymsgr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3886</td>
            <td align="left">dict</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3906</td>
            <td align="left">ldaps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3920</td>
            <td align="left">rtmp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3959</td>
            <td align="left">ms-settings-proximity</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4053</td>
            <td align="left">fax</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4102</td>
            <td align="left">ms-drive-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4153</td>
            <td align="left">res</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4183</td>
            <td align="left">webcal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4193</td>
            <td align="left">embedded</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4315</td>
            <td align="left">xftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4327</td>
            <td align="left">browserext</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4355</td>
            <td align="left">session</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4373</td>
            <td align="left">dav</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4419</td>
            <td align="left">ipps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4515</td>
            <td align="left">uuid-in-package</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4549</td>
            <td align="left">dhttp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4559</td>
            <td align="left">web3</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4590</td>
            <td align="left">iris.lwz</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4598</td>
            <td align="left">diaspora</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4613</td>
            <td align="left">ms-widgets</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4619</td>
            <td align="left">rtsps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4674</td>
            <td align="left">beshare</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4709</td>
            <td align="left">gtalk</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4714</td>
            <td align="left">hxxps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4747</td>
            <td align="left">xrcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4882</td>
            <td align="left">sgn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4929</td>
            <td align="left">eid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4951</td>
            <td align="left">submit</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5099</td>
            <td align="left">ar</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5109</td>
            <td align="left">ms-settings-airplanemode</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5134</td>
            <td align="left">steam</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5150</td>
            <td align="left">adt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5152</td>
            <td align="left">ms-appinstaller</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5188</td>
            <td align="left">bb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5217</td>
            <td align="left">udp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5296</td>
            <td align="left">example</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5347</td>
            <td align="left">ms-remotedesktop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5410</td>
            <td align="left">ms-sttoverlay</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5425</td>
            <td align="left">irc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5472</td>
            <td align="left">sieve</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5477</td>
            <td align="left">machineProvisioningProgressReporter</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5480</td>
            <td align="left">lvlt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5492</td>
            <td align="left">sftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5536</td>
            <td align="left">ms-excel</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5557</td>
            <td align="left">dlna-playcontainer</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5705</td>
            <td align="left">go</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5717</td>
            <td align="left">fido</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5728</td>
            <td align="left">chrome</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5823</td>
            <td align="left">shc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5825</td>
            <td align="left">swidpath</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5883</td>
            <td align="left">microsoft.windows.camera.picker</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5990</td>
            <td align="left">crid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6007</td>
            <td align="left">at</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6024</td>
            <td align="left">hcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6030</td>
            <td align="left">content-type</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6109</td>
            <td align="left">jabber</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6144</td>
            <td align="left">dlna-playsingle</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6189</td>
            <td align="left">ms-spd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6341</td>
            <td align="left">opaquelocktoken</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6349</td>
            <td align="left">soldat</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6380</td>
            <td align="left">z39.50s</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6388</td>
            <td align="left">ms-media-stream-id</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6411</td>
            <td align="left">ms-mixedrealitycapture</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6462</td>
            <td align="left">quic-transport</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6503</td>
            <td align="left">ham</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6516</td>
            <td align="left">nfs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6609</td>
            <td align="left">ut2004</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6632</td>
            <td align="left">hydrazone</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6634</td>
            <td align="left">adiumxtra</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6651</td>
            <td align="left">tip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6658</td>
            <td align="left">lpa</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6730</td>
            <td align="left">cstr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6755</td>
            <td align="left">ms-settings-screenrotation</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6774</td>
            <td align="left">dab</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6792</td>
            <td align="left">ms-inputapp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6808</td>
            <td align="left">moz</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6840</td>
            <td align="left">acd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6863</td>
            <td align="left">ms-access</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6883</td>
            <td align="left">im</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6903</td>
            <td align="left">pttp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6924</td>
            <td align="left">teamspeak</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6992</td>
            <td align="left">payto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7074</td>
            <td align="left">secret-token</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7126</td>
            <td align="left">iax</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7225</td>
            <td align="left">isostore</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7226</td>
            <td align="left">bitcoincash</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7285</td>
            <td align="left">smb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7364</td>
            <td align="left">appdata</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7456</td>
            <td align="left">dtn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7520</td>
            <td align="left">feed</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7667</td>
            <td align="left">ssh</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7743</td>
            <td align="left">ms-transit-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7809</td>
            <td align="left">ms-help</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7812</td>
            <td align="left">vscode</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7856</td>
            <td align="left">apt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7868</td>
            <td align="left">ms-settings-notifications</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7874</td>
            <td align="left">shttp (OBSOLETE)</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7913</td>
            <td align="left">ethereum</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7923</td>
            <td align="left">tv</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7942</td>
            <td align="left">microsoft.windows.camera.multipicker</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8041</td>
            <td align="left">msnim</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8085</td>
            <td align="left">ms-remotedesktop-launch</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8093</td>
            <td align="left">spiffe</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8099</td>
            <td align="left">redis</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8159</td>
            <td align="left">z39.50r</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8251</td>
            <td align="left">brid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8300</td>
            <td align="left">tftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8387</td>
            <td align="left">content</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8454</td>
            <td align="left">wais</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8506</td>
            <td align="left">view-source</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8519</td>
            <td align="left">soap.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8577</td>
            <td align="left">attachment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8601</td>
            <td align="left">gopher</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8687</td>
            <td align="left">ircs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8713</td>
            <td align="left">callto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8765</td>
            <td align="left">bolo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8766</td>
            <td align="left">notes</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8775</td>
            <td align="left">ipn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8830</td>
            <td align="left">ms-infopath</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9075</td>
            <td align="left">ms-settings</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9136</td>
            <td align="left">ms-useractivityset</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9154</td>
            <td align="left">modem</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9186</td>
            <td align="left">bitcoin</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9198</td>
            <td align="left">ms-settings-privacy</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9204</td>
            <td align="left">cap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9278</td>
            <td align="left">com-eventbrite-attendee</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9312</td>
            <td align="left">pkcs11</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9318</td>
            <td align="left">ipp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9338</td>
            <td align="left">rediss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9444</td>
            <td align="left">grd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9453</td>
            <td align="left">ms-screensketch</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9487</td>
            <td align="left">matrix</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9520</td>
            <td align="left">xcon-userid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9535</td>
            <td align="left">sips</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9544</td>
            <td align="left">simpleledger</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9585</td>
            <td align="left">mvn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9770</td>
            <td align="left">keyparc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9805</td>
            <td align="left">magnet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9816</td>
            <td align="left">vsls</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9859</td>
            <td align="left">drm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9875</td>
            <td align="left">hcap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9910</td>
            <td align="left">wtai</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9965</td>
            <td align="left">num</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9981</td>
            <td align="left">ms-settings-language</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10024</td>
            <td align="left">bl</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10119</td>
            <td align="left">imap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10147</td>
            <td align="left">query</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10176</td>
            <td align="left">ves</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10183</td>
            <td align="left">ms-recall</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10196</td>
            <td align="left">acr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10225</td>
            <td align="left">barion</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10229</td>
            <td align="left">acct</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10238</td>
            <td align="left">palm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10241</td>
            <td align="left">ocf</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10247</td>
            <td align="left">lid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10317</td>
            <td align="left">h323</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10327</td>
            <td align="left">aim</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10333</td>
            <td align="left">turn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10361</td>
            <td align="left">ms-stickers</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10373</td>
            <td align="left">ms-settings-location</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10380</td>
            <td align="left">dvb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10467</td>
            <td align="left">xcon</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10518</td>
            <td align="left">ms-screenclip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10551</td>
            <td align="left">pop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10583</td>
            <td align="left">dat</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10591</td>
            <td align="left">ms-settings-nfctransactions</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10640</td>
            <td align="left">ms-settings-cloudstorage</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10687</td>
            <td align="left">afs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10740</td>
            <td align="left">mqtt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10744</td>
            <td align="left">gizmoproject</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10831</td>
            <td align="left">amss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10868</td>
            <td align="left">mailserver</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10926</td>
            <td align="left">ni</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10995</td>
            <td align="left">telnet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11055</td>
            <td align="left">gg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11060</td>
            <td align="left">blob</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11072</td>
            <td align="left">ms-settings-emailandaccounts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11130</td>
            <td align="left">ms-project</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11255</td>
            <td align="left">xri</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11315</td>
            <td align="left">msrp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11351</td>
            <td align="left">ms-settings-connectabledevices</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11393</td>
            <td align="left">cabal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11428</td>
            <td align="left">nih</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11467</td>
            <td align="left">ms-whiteboard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11533</td>
            <td align="left">smp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11537</td>
            <td align="left">vnc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11583</td>
            <td align="left">graph</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11645</td>
            <td align="left">dvx</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11718</td>
            <td align="left">lorawan</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11742</td>
            <td align="left">lastfm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11799</td>
            <td align="left">w3</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11804</td>
            <td align="left">mumble</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11820</td>
            <td align="left">thzp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11824</td>
            <td align="left">feedready</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11857</td>
            <td align="left">microsoft.windows.camera</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11892</td>
            <td align="left">wcr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11945</td>
            <td align="left">ms-mobileplans</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11950</td>
            <td align="left">ms-settings-lock</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11962</td>
            <td align="left">ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11999</td>
            <td align="left">rtspu</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12029</td>
            <td align="left">ms-settings-displays-topology</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12052</td>
            <td align="left">bluetooth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12068</td>
            <td align="left">file</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12102</td>
            <td align="left">mailto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12174</td>
            <td align="left">ms-launchremotedesktop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12237</td>
            <td align="left">ilstring</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12242</td>
            <td align="left">cvs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12337</td>
            <td align="left">mms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12400</td>
            <td align="left">ssb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12422</td>
            <td align="left">iris.xpc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12458</td>
            <td align="left">starknet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12478</td>
            <td align="left">qb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12493</td>
            <td align="left">mss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12502</td>
            <td align="left">ventrilo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12525</td>
            <td align="left">ms-lockscreencomponent-config</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12566</td>
            <td align="left">icap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12569</td>
            <td align="left">mupdate</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12599</td>
            <td align="left">paparazzi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12603</td>
            <td align="left">ms-widgetboard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12634</td>
            <td align="left">fish</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12644</td>
            <td align="left">sip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12699</td>
            <td align="left">mt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12705</td>
            <td align="left">acap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12718</td>
            <td align="left">casts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12726</td>
            <td align="left">reload</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12732</td>
            <td align="left">spotify</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12806</td>
            <td align="left">fuchsia-pkg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12823</td>
            <td align="left">ms-gamebarservices</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12876</td>
            <td align="left">hyper</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12932</td>
            <td align="left">dns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13014</td>
            <td align="left">doi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13026</td>
            <td align="left">ms-settings-power</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13062</td>
            <td align="left">mtrust</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13068</td>
            <td align="left">git</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13094</td>
            <td align="left">openpgp4fpr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13098</td>
            <td align="left">ms-secondary-screen-controller</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13228</td>
            <td align="left">mvrps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13285</td>
            <td align="left">snews</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13340</td>
            <td align="left">smtp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13348</td>
            <td align="left">pack</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13362</td>
            <td align="left">teliaeid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13372</td>
            <td align="left">mongodb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13404</td>
            <td align="left">afp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13440</td>
            <td align="left">msrps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13442</td>
            <td align="left">ldap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13451</td>
            <td align="left">mvrp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13499</td>
            <td align="left">nntp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13608</td>
            <td align="left">onenote</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13650</td>
            <td align="left">sarif</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13680</td>
            <td align="left">elsi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13829</td>
            <td align="left">otpauth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13846</td>
            <td align="left">info</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13862</td>
            <td align="left">aaa</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13923</td>
            <td align="left">svn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13986</td>
            <td align="left">iris</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14010</td>
            <td align="left">lbry</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14034</td>
            <td align="left">ms-search</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14090</td>
            <td align="left">ms-browser-extension</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14153</td>
            <td align="left">maps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14162</td>
            <td align="left">swid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14168</td>
            <td align="left">ms-officeapp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14180</td>
            <td align="left">ms-settings-bluetooth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14310</td>
            <td align="left">ms-enrollment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14347</td>
            <td align="left">dntp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14364</td>
            <td align="left">ms-walk-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14366</td>
            <td align="left">ms-getoffice</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14367</td>
            <td align="left">thismessage</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14460</td>
            <td align="left">message</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14477</td>
            <td align="left">prospero</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14526</td>
            <td align="left">aaas</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14595</td>
            <td align="left">market</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14627</td>
            <td align="left">stun</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14667</td>
            <td align="left">chrome-extension</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14709</td>
            <td align="left">wasm-js</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14830</td>
            <td align="left">itms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14860</td>
            <td align="left">ms-whiteboard-cmd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14867</td>
            <td align="left">wifi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14868</td>
            <td align="left">icon</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14878</td>
            <td align="left">ftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14901</td>
            <td align="left">stuns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14906</td>
            <td align="left">mqtts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14936</td>
            <td align="left">ms-settings-workplace</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14962</td>
            <td align="left">tn3270</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14972</td>
            <td align="left">pres</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14982</td>
            <td align="left">p1</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15026</td>
            <td align="left">teapot</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15061</td>
            <td align="left">android</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15118</td>
            <td align="left">simplex</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15163</td>
            <td align="left">ms-visio</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15202</td>
            <td align="left">cid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15206</td>
            <td align="left">unreal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15230</td>
            <td align="left">tool</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15254</td>
            <td align="left">ms-secondary-screen-setup</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15267</td>
            <td align="left">rtsp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15306</td>
            <td align="left">xfire</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15358</td>
            <td align="left">xmpp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15361</td>
            <td align="left">ms-settings-cellular</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15461</td>
            <td align="left">shelter</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15579</td>
            <td align="left">v-event</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15639</td>
            <td align="left">iris.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15641</td>
            <td align="left">wyciwyg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15645</td>
            <td align="left">ms-meetnow</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15679</td>
            <td align="left">ms-search-repair</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15741</td>
            <td align="left">wasm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15773</td>
            <td align="left">ms-settings-camera</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15776</td>
            <td align="left">ms-virtualtouchpad</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15805</td>
            <td align="left">xmlrpc.beeps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15972</td>
            <td align="left">ipfs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15994</td>
            <td align="left">ms-settings-wifi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16051</td>
            <td align="left">aw</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16069</td>
            <td align="left">first-run-pen-experience</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16079</td>
            <td align="left">oid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16134</td>
            <td align="left">iris.xpcs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16138</td>
            <td align="left">drop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16194</td>
            <td align="left">ms-publisher</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16281</td>
            <td align="left">leaptofrogans</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16292</td>
            <td align="left">rmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16300</td>
            <td align="left">soap.beeps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16377</td>
            <td align="left">tag</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16585</td>
            <td align="left">ms-word</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16632</td>
            <td align="left">onenote-cmd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16645</td>
            <td align="left">ms-powerpoint</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16728</td>
            <td align="left">hxxp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16729</td>
            <td align="left">secondlife</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16884</td>
            <td align="left">rsync</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16918</td>
            <td align="left">vemmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16933</td>
            <td align="left">ipns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17039</td>
            <td align="left">swh</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17068</td>
            <td align="left">pwid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17097</td>
            <td align="left">dtmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17134</td>
            <td align="left">dis</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17170</td>
            <td align="left">iotdisco</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17175</td>
            <td align="left">ms-restoretabcompanion</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17264</td>
            <td align="left">service</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17315</td>
            <td align="left">finger</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17361</td>
            <td align="left">web+ap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17381</td>
            <td align="left">ms-eyecontrolspeech</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
        </tbody>
      </table>
      <t>The assignments from this table can be extracted from the XML form of
this document (when stored in a file "this.xml") into CSV form
<xref target="RFC4180"/> using this short Ruby program:</t>
      <sourcecode type="ruby"><![CDATA[
require 'rexml/document'; include REXML
XPath.each(Document.new(File.read("this.xml")),"/rfc/back//tr") {|r|
  puts XPath.each(r,"td").map{|d|d.text()}[0..1].join(",")}
]]></sourcecode>
    </section>
    <section removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -16 to -17</t>
      <t>(Provisional integration of active PRs, please see github.)</t>
      <t>Changes from -15 to -16</t>
      <ul spacing="normal">
        <li>
          <t>Add note that CRI Scheme Number registrations are oblivious of the
actual URI Scheme registrations (if any).</t>
        </li>
        <li>
          <t>Add information about how this RFC updates <xref target="RFC7595"/> to abstract and
introduction.</t>
        </li>
      </ul>
      <t>Changes from -14 to -15</t>
      <ul spacing="normal">
        <li>
          <t>Make scheme numbers unsigned and map them to negative numbers used
as scheme-id values</t>
        </li>
      </ul>
      <t>Changes from -09 to -14</t>
      <ul spacing="normal">
        <li>
          <t>Editorial changes; move some examples to <xref target="the-small-print"/>, break up
railroad diagram; mention commonalities with (and tiny difference
from) CoAP Options; mention failure of percent-encoding for dots in
host-name components</t>
        </li>
        <li>
          <t>Explicitly mention invalid case in <xref target="naked-rootless"/> (rootless CRIs without
authority that do not have a path component)</t>
        </li>
        <li>
          <t>Generalize <xref target="extending"/>, discuss PET (percent-encoded text) extension in more detail</t>
        </li>
        <li>
          <t>Add registry of URI scheme numbers (<xref target="sec-numbers"/>, <xref target="iana-considerations"/>)</t>
        </li>
        <li>
          <t>Add user information to the authority ("userinfo" feature)</t>
        </li>
        <li>
          <t><xref target="cddl"/>: Use separate rule for CRI, allow <tt>[]</tt> for query in CRI
Reference; generalize scheme numbers, add userinfo; add list of
additional requirements in prose (<xref target="prose"/>)</t>
        </li>
        <li>
          <t>Discuss <xref format="title" target="unprocessable"/> (<xref target="unprocessable"/>)</t>
        </li>
        <li>
          <t>Conversion to URI: Handle <tt>:</tt> in first pathname component of a
CRI-Reference (<xref target="colon"/>)</t>
        </li>
        <li>
          <t>Add Christian Amsüss as contributor</t>
        </li>
        <li>
          <t>Add CBOR EDN application-extension "<tt>cri</tt>" (see <xref target="edn-cri"/> and
<xref target="cri-iana"/>).</t>
        </li>
        <li>
          <t>Add Section on CoAP integration (and new CoAP Options Proxy-Cri and
Proxy-Scheme-Number).</t>
        </li>
      </ul>
      <t>Changes from -08 to -09</t>
      <ul spacing="normal">
        <li>
          <t>Identify more esoteric features with a CDDL ".feature".</t>
        </li>
        <li>
          <t>Clarify that well-formedness requires removing trailing nulls.</t>
        </li>
        <li>
          <t>Fragments can contain PET.</t>
        </li>
        <li>
          <t>Percent-encoded text in PET is treated as byte strings.</t>
        </li>
        <li>
          <t>URIs with an authority but a completely empty path (e.g.,
<tt>http://example.com</tt>): CRIs with an authority component no longer
always produce at least a slash in the path component.  </t>
          <t>
For generic schemes, the conversion of <tt>scheme://example.com</tt> to a
CRI is now possible
because CRI produces a URI with an authority not followed by a slash
following the updated rules of <xref target="cri-to-uri"/>.
Schemes like http and coap do not distinguish between the empty path
and the path containing a single slash when an authority is set (as
recommended in <xref target="STD66"/>).
For these schemes, that equivalence allows implementations to
convert the just-a-slash URI to a CRI with a zero length path array
(which, however, when converted back, does not produce a slash after
the authority).  </t>
          <t>
(Add an appendix "the small print" for more detailed discussion of
pesky corner cases like this.)</t>
        </li>
      </ul>
      <t>Changes from -07 to -08</t>
      <ul spacing="normal">
        <li>
          <t>Fix the encoding of NOAUTH-NOSLASH / NOAUTH-LEADINGSLASH</t>
        </li>
        <li>
          <t>Add URN and DID schemes, add example.</t>
        </li>
        <li>
          <t>Add PET</t>
        </li>
        <li>
          <t>Remove hopeless attempt to encode "remote trailing nulls" rule in
CDDL (which is not a transformation language).</t>
        </li>
      </ul>
      <t>Changes from -06 to -07</t>
      <ul spacing="normal">
        <li>
          <t>More explicitly discuss constraints (<xref target="constraints"/>), add examples (<xref target="sp-constraints"/>).</t>
        </li>
        <li>
          <t>Make CDDL more explicit about special simple values.</t>
        </li>
        <li>
          <t>Lots of gratuitous changes from XML2RFC redefinition of <tt>&lt;tt&gt;</tt>
semantics.</t>
        </li>
      </ul>
      <t>Changes from -05 to -06</t>
      <ul spacing="normal">
        <li>
          <t>rework authority:
          </t>
          <ul spacing="normal">
            <li>
              <t>split reg-names at dots;</t>
            </li>
            <li>
              <t>add optional zone identifiers <xref target="RFC4007"/> to IP addresses</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Changes from -04 to -05</t>
      <ul spacing="normal">
        <li>
          <t>Simplify CBOR structure.</t>
        </li>
        <li>
          <t>Add implementation status section.</t>
        </li>
      </ul>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Minor editorial improvements.</t>
        </li>
        <li>
          <t>Renamed path.type/path-type to discard.</t>
        </li>
        <li>
          <t>Renamed option to section, substructured into items.</t>
        </li>
        <li>
          <t>Simplified the table "resolution-variables".</t>
        </li>
        <li>
          <t>Use the CBOR structure inspired by Jim Schaad's proposals.</t>
        </li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Expanded the set of supported schemes (#3).</t>
        </li>
        <li>
          <t>Specified creation, normalization and comparison (#9).</t>
        </li>
        <li>
          <t>Clarified the default value of the <tt>path.type</tt> option (#33).</t>
        </li>
        <li>
          <t>Removed the <tt>append-relation</tt> path.type option (#41).</t>
        </li>
        <li>
          <t>Renumbered the remaining path.types.</t>
        </li>
        <li>
          <t>Renumbered the option numbers.</t>
        </li>
        <li>
          <t>Restructured the document.</t>
        </li>
        <li>
          <t>Minor editorial improvements.</t>
        </li>
      </ul>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>Changed the syntax of schemes to exclude upper case characters (#13).</t>
        </li>
        <li>
          <t>Minor editorial improvements (#34 #37).</t>
        </li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>None.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>CRIs were developed by <contact fullname="Klaus Hartke"/> for use in the Constrained
RESTful Application Language (CoRAL).
The current author team is completing this work with a view to achieve
good integration with the potential use cases, both inside and outside of CoRAL.</t>
      <t>Thanks to
<contact fullname="Christian Amsüss"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="Ari Keränen"/>,
<contact fullname="Jim Schaad"/>,
<contact fullname="Dave Thaler"/>,
and
<contact fullname="Marco Tiloca"/>
for helpful comments and discussions that have shaped the
document, as well as to the reviewers
<contact fullname="Mike Bishop"/>
and
<contact fullname="Arnt Gulbrandsen"/>
that added useful perspective during the IESG stage.</t>
      <!--  LocalWords:  CRI normalizations dereferencing dereference CRIs
 -->
<!--  LocalWords:  untrusted subcomponent
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="K." surname="Hartke" fullname="Klaus Hartke">
        <organization>Ericsson</organization>
        <address>
          <postal>
            <street>Torshamnsgatan 23</street>
            <city>Stockholm</city>
            <code>16483</code>
            <country>Sweden</country>
          </postal>
          <email>klaus.hartke@ericsson.com</email>
        </address>
      </contact>
      <contact initials="C." surname="Amsüss" fullname="Christian Amsüss">
        <organization/>
        <address>
          <postal>
            <country>Austria</country>
          </postal>
          <email>christian@amsuess.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
