<?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.36 (Ruby 4.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-edn-app-ext-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="EDN Application Extensions">Additional Application Extensions for the CBOR Extended Diagnostic Notation (EDN)</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-edn-app-ext-01"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <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>
    <date year="2026" month="April" day="15"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 53?>

<t>The CBOR Extended Diagnostic Notation (EDN), to be standardized in
draft-ietf-cbor-edn-literals,
provides "application extensions" as its main language extension point.</t>
      <t>A number of application extensions are already defined in
draft-ietf-cbor-edn-literals itself and in draft-ietf-cbor-edn-e-ref.
The present document defines a number of additional application
extensions that have been batched up as a next step after completing
these specifications.
(<cref anchor="chore">Chore:</cref> Briefly List extensions.)</t>
      <t><cref anchor="status">This -01 of an individual submission is a slight update of
-00, which showed the approximate
shape the first "batch" of application extensions could have, plus
a number of registrations that could go into this batch.
The latter provides a basis for a technical discussion of those
registrations.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cabo.github.io/edn-app-ext/draft-bormann-cbor-edn-app-ext.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-cbor-edn-app-ext/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cbor Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/edn-app-ext"/>.</t>
    </note>
  </front>
  <middle>
    <?line 75?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(See abstract.)</t>
      <table anchor="tbl-new">
        <name>Additional EDN application extensions defined in this document</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Purpose</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">same</td>
            <td align="left">Multiple literals for the same item, to be checked against each other</td>
          </tr>
          <tr>
            <td align="left">bytes</td>
            <td align="left">Reinterpret text string as byte string</td>
          </tr>
          <tr>
            <td align="left">float</td>
            <td align="left">Provide IEEE754-oriented literals for more floating point values</td>
          </tr>
          <tr>
            <td align="left">tbd b32/h32/c32?</td>
            <td align="left">Create byte string from base32 representation, possibly beyond the two variants defined in <xref target="RFC4648"/></td>
          </tr>
          <tr>
            <td align="left">tbd b45</td>
            <td align="left">Create byte string from base45 representation <xref target="RFC9285"/></td>
          </tr>
        </tbody>
      </table>
      <t><cref anchor="discuss">Discuss:</cref> We should also add application extensions for text
generation from bytes, such as b64c and b64u, along the lines of <xref target="RFC9741"/>.</t>
      <section anchor="conventions-and-terminology">
        <name>Conventions and Terminology</name>
        <t>This specification uses terminology from <xref target="I-D.ietf-cbor-edn-literals"/>.
In particular, with respect to control operators, "target" refers to
the left-hand side operand, and "controller" to the right-hand side operand.
"Tool" refers to tools that produce, consume, or otherwise process EDN.
Note also that the data model underlying CBOR provides for text
strings as well as byte strings as two separate types, which are
then collectively referred to as "strings".</t>
        <t>The term ABNF in this specification stands for the combination of
<xref target="STD68"/> and <xref target="RFC7405"/>, i.e., ABNF defined in this document allows use
of the case-sensitive extensions defined in <xref target="RFC7405"/>.</t>
        <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?>

</section>
    </section>
    <section anchor="application-extensions">
      <name>Application Extensions</name>
      <t>A table like Table 6 in <xref target="I-D.ietf-cbor-edn-literals"/>:
(Add text.)</t>
      <table anchor="tab-prefixes">
        <name>App-prefix Values Defined in this Document</name>
        <thead>
          <tr>
            <th align="left">app-prefix</th>
            <th align="left">content of single-quoted string</th>
            <th align="left">result type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">same</td>
            <td align="left">sequence of one or more data items</td>
            <td align="left">data item</td>
          </tr>
          <tr>
            <td align="left">SAME</td>
            <td align="left">(not used)</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">bytes</td>
            <td align="left">byte or text string(s)</td>
            <td align="left">byte string with concatenated bytes</td>
          </tr>
          <tr>
            <td align="left">BYTES</td>
            <td align="left">(not used)</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">float</td>
            <td align="left">byte string (usually hex-encoded as text string)</td>
            <td align="left">floating point value</td>
          </tr>
          <tr>
            <td align="left">FLOAT</td>
            <td align="left">(not used)</td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
      <section anchor="same-multiple-literals-to-be-checked-against-each-other">
        <name>same: multiple literals to be checked against each other</name>
        <t>The "<tt>same</tt>" application extension receives a sequence of one or more
data items and throws an error if these data items are not the same.</t>
        <t>Example:</t>
        <artwork><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

$ edn-abnf -afloat,same -e "same<< float'47110815', 37128.08203125, \
                                                   0x1.22102ap+15 >>"
37128.08203125
$ edn-abnf -afloat,same -e "same<< float'47110815', 37128.08203126 >\
                                                                   >"
** cbor-diagnostic: same<<>>: 37128.08203125 not same as 37128.\
                                             08203126: Argument Error
$ edn-abnf -asame -e "same<< h'a10101', <<{/alg/ 1: 1 /AES-GCM 128 /\
                                                              }>> >>"
h'A10101'
$ edn-abnf -asame -e "same<<1>>" # trivially true
1
]]></artwork>
      </section>
      <section anchor="bytes-reinterpret-text-string-as-byte-string">
        <name>bytes: Reinterpret text string as byte string</name>
        <t>The "<tt>bytes</tt>" application extension receives a sequence of zero or more
strings (throwing an error if any of these data items are not text or
byte strings), concatenates their byte content and yields the
concatenation as a byte string.</t>
        <t>Examples:</t>
        <artwork><![CDATA[$ edn-abnf -abytes -e 'bytes<<>>'
h''
$ edn-abnf -abytes -e 'bytes`text1`'
h'7465787431'
$ edn-abnf -abytes -e 'bytes<<"1", "2">>'
h'3132'
$ edn-abnf -abytes -e 'bytes<<"ä", h'"'2f'"'>>'
h'C3A42F'
$ edn-abnf -abytes -e 'bytes<<"ä", h'"'2f'"'>>' | diag2diag.rb -tu
'ä/'
]]></artwork>
      </section>
      <section anchor="float-ieee754-oriented-literals-for-more-floating-point-values">
        <name>float: IEEE754-oriented literals for more floating point values</name>
        <t>The "<tt>float</tt>" application extension enables the notation of 2-byte,
4-byte, and 8-byte byte strings to express floating point values
(mt=7, ai=25/26/27 respectively) by giving their IEEE 754
representation.
A text string used as an argument is interpreted exactly as a hex
literal (like the <tt>h</tt> application prefix); the result is used as the
byte string.</t>
        <t>The application-oriented literal is interpreted as an encoded data
item would be that prefixes the byte string by a single byte 0xF9
(2 bytes, i.e., binary16), 0xFA (4 bytes, i.e., binary32), and 0xFB (8
bytes, i.e., binary64), respectively.
Byte strings of a different length than 2, 4, or 8 raise an error.</t>
        <t>Example:</t>
        <artwork><![CDATA[=============== NOTE: '\' line wrapping per RFC 8792 ================

$ edn-abnf -afloat -e "[float'fe00', float'47110815']" -tpretty
82             # array(2)
   F9 FE00     # primitive(65024)
   FA 47110815 # primitive(1192298517)
$ edn-abnf -afloat,same -e "same<< float'47110815', 0x1.22102ap+15 >\
                                                                   >"
37128.08203125
]]></artwork>
        <t>The purpose of this application extension is to close a gap in EDN's
<xref target="IEEE754"/> binary64 support:
Without this (or a similar) extension there is no way to represent NaN
values different from the one called out at the end of Section <xref target="RFC8949" section="4.1" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>: "(for many applications, the single NaN encoding
0xf97e00 will suffice)".
For finite floating point numbers, the decimal or hex floating point
representations are preferred.</t>
      </section>
      <section anchor="tbd-b32h32c32-create-byte-string-from-base32-representation">
        <name>tbd b32/h32/c32?: Create byte string from base32 representation</name>
        <t><cref anchor="todo">TO BE DONE:</cref> define, possibly beyond the two variants defined in <xref target="RFC4648"/>; watch <xref target="I-D.josefsson-rfc4648bis"/>.</t>
      </section>
      <section anchor="tbd-b45-create-byte-string-from-base45-representation">
        <name>tbd b45: Create byte string from base45 representation</name>
        <t><cref anchor="todo_1">TO BE DONE:</cref> define based on <xref target="RFC9285"/></t>
      </section>
    </section>
    <section removeInRFC="true" anchor="implementation-status">
      <name>Implementation Status</name>
      <!-- RFC7942 -->

<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 -20?>
      </t>
      <section anchor="implementation-1">
        <name>Implementation 1</name>
        <t>The "<tt>float</tt>" application extension is implemented in
<eref target="https://cbor.me"/> and can be enabled (<tt>–‍afloat</tt>) in the cbor
diagnostic tools (<tt>cbor-diag</tt> gem) and the <tt>edn-abnf</tt> gem.<br/>
At the time of writing, the "<tt>same</tt>" and "<tt>bytes</tt>" application
extensions  (<tt>–‍asame</tt>,  <tt>–‍abytes</tt>) are only available in the gems.</t>
      </section>
      <section anchor="implementation-2">
        <name>Implementation 2</name>
        <t>The <tt>float</tt> application extension is implemented in the JavaScript
tools that come with the CBOR test vectors project <eref target="https://github.com/cbor-wg/cbor-test-vectors/blob/main/check/files.test.js"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="I-D.ietf-cbor-edn-literals"/> apply.</t>
      <t><cref anchor="todo_2">TO BE DONE:</cref> List any specific security considerations that apply to
specific application extensions.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA considerations</name>
      <t><cref anchor="todo_3">TO BE DONE:</cref></t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="6" month="April" year="2026"/>
            <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 registry-based extension points and uses them to
   support text representations such as of epoch-based dates/times and
   of IP addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -22 is
   // intended to present a complete specification that can be used to
   // confirm the results of the 2026-04-01 CBOR interim.  This includes
   // extending inline comments to encompass C-style comments, and end-
   // of-line comments to encompass C++-style comments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-22"/>
        </reference>
        <reference anchor="IANA.cbor-diagnostic-notation">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <referencegroup anchor="STD68" target="https://www.rfc-editor.org/info/std68">
          <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
            <front>
              <title>Augmented BNF for Syntax Specifications: ABNF</title>
              <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
              <author fullname="P. Overell" initials="P." surname="Overell"/>
              <date month="January" year="2008"/>
              <abstract>
                <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="68"/>
            <seriesInfo name="RFC" value="5234"/>
            <seriesInfo name="DOI" value="10.17487/RFC5234"/>
          </reference>
        </referencegroup>
        <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="RFC7405">
          <front>
            <title>Case-Sensitive String Support in ABNF</title>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document extends the base definition of ABNF (Augmented Backus-Naur Form) to include a way to specify US-ASCII string literals that are matched in a case-sensitive manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7405"/>
          <seriesInfo name="DOI" value="10.17487/RFC7405"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="I-D.josefsson-rfc4648bis">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="Simon Josefsson" initials="S." surname="Josefsson">
         </author>
            <date day="11" month="October" year="2025"/>
            <abstract>
              <t>   This document describes the commonly used base 64, base 32, and base
   16 encoding schemes.  It also discusses the use of line-feeds in
   encoded data, use of padding in encoded data, use of non-alphabet
   characters in encoded data, use of different encoding alphabets, and
   canonical encodings.  This document obsoletes RFC 4648 and changes
   the status to Internet Standard.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-josefsson-rfc4648bis-01"/>
        </reference>
        <reference anchor="RFC9285">
          <front>
            <title>The Base45 Data Encoding</title>
            <author fullname="P. Fältström" initials="P." surname="Fältström"/>
            <author fullname="F. Ljunggren" initials="F." surname="Ljunggren"/>
            <author fullname="D.W. van Gulik" initials="D.W." surname="van Gulik"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes the Base45 encoding scheme, which is built upon the Base64, Base32, and Base16 encoding schemes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9285"/>
          <seriesInfo name="DOI" value="10.17487/RFC9285"/>
        </reference>
        <reference anchor="RFC9741">
          <front>
            <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
              <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9741"/>
          <seriesInfo name="DOI" value="10.17487/RFC9741"/>
        </reference>
        <reference anchor="IEEE754" target="https://ieeexplore.ieee.org/document/8766229">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
        </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="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>
      </references>
    </references>
    <?line 285?>

<section numbered="false" anchor="list-of-tables">
      <name>List of Tables</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="tbl-new"/>:</dt>
        <dd>
          <t><xref format="title" target="tbl-new"/></t>
        </dd>
        <dt><xref target="tab-prefixes"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-prefixes"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
