<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dogru-scitt-disclosure-evidence-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Disclosure Evidence">Transformation Evidence and Coverage Reconciliation for Auditable Data Disclosure</title>
    <seriesInfo name="Internet-Draft" value="draft-dogru-scitt-disclosure-evidence-02"/>
    <author fullname="Emek Can Doğru" asciiFullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJİ LİMİTED ŞİRKETİ</organization>
      <address>
        <postal>
          <country>TR</country>
        </postal>
        <email>e.dogru@conarium.dev</email>
      </address>
    </author>
    <date year="2026" month="August" day="16"/>
    <area>Security</area>
    <workgroup>SCITT</workgroup>
    <keyword>receipt</keyword>
    <keyword>masking</keyword>
    <keyword>reconciliation</keyword>
    <keyword>transparency</keyword>
    <keyword>disclosure</keyword>
    <abstract>
      <?line 43?>

<t>Audit receipts for automated data access attest to what a gateway recorded.
Two questions remain outside their reach: what was changed in the data
before it was disclosed, and whether the set of receipts is complete with
respect to the data source's own accounting of activity. This document
defines two evidence structures that answer those questions:
Transformation Evidence, a per-disclosure statement of which classes of
values were transformed and how, carrying counts and class names but never
values; and Coverage Reconciliation, a procedure and result statement that
compares a source's own activity counters against a receipt set over a
time window and reports activity for which no receipt exists. Both
structures are designed to be registered as Signed Statements on a
Transparency Service as described in the SCITT architecture. This document
defines evidence payloads; it does not define a new receipt format, a new
transparency mechanism, or a new signature format.</t>
    </abstract>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Systems that place a policy gateway between an automated client (for
example, an AI assistant) and a data source increasingly emit signed,
hash-chained access receipts. Several receipt formats exist. They share a
property that limits what they can prove: a receipt is evidence produced
by the party that performed the access, about an event that party chose to
record.</t>
      <t>Two gaps follow from that property.</t>
      <t>First, receipts typically state that access happened and under which
policy decision, but not what happened to the data between the source and
the client. When a gateway masks, redacts, or tokenizes values before
disclosure, that transformation is the substance of the privacy claim the
operator makes — and it is precisely the part a conventional receipt does
not describe. An auditor reading such a receipt learns that a table was
read, but not whether the protected columns in it left the gateway
transformed or in the clear.</t>
      <t>Second, a set of receipts, however well chained and anchored, only covers
the accesses for which receipts were produced. A client that reaches the
data source without passing through the gateway produces no receipt, and
no property of the receipt chain reveals this. Hash chains detect removal
and reordering of records that exist; they are silent about records that
were never created. Establishing completeness requires a second account of
activity, produced by a party other than the gateway: the data source
itself.</t>
      <t>This document defines two evidence structures addressing these gaps:</t>
      <ul spacing="normal">
        <li>
          <t>Transformation Evidence (<xref target="transformation-evidence"/>): a statement,
bound to a single disclosure, of which classes of values were
transformed before disclosure, by which action, and in what count. It
never carries the values themselves.</t>
        </li>
        <li>
          <t>Coverage Reconciliation (<xref target="coverage-reconciliation"/>): a procedure that
compares snapshots of a data source's own activity counters, taken at
the boundaries of a time window, against the receipt set for that
window, and a signed result statement reporting activity patterns for
which no receipt exists.</t>
        </li>
      </ul>
      <t>Both structures are payloads. They are intended to be carried in Signed
Statements and registered on a Transparency Service as described in the
SCITT architecture <xref target="RFC9943"/>, which supplies the append-only,
third-party-auditable registration this document deliberately does not
reinvent. This document defines no new receipt format, no policy
evaluation semantics, and no transparency mechanism.</t>
      <section anchor="what-these-structures-do-not-claim">
        <name>What these structures do not claim</name>
        <t>Both structures are designed around a discipline of stating the limits of
their own evidence. Transformation Evidence describes the disclosure
surface; it does not claim a value is unlearnable
(<xref target="te-limits"/>). A Coverage Reconciliation result reporting unreceipted
activity is a statement about absent evidence; it is not, and <bcp14>MUST NOT</bcp14> be
presented as, proof of intent or of a breach (<xref target="cr-semantics"/>).</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used throughout:</t>
      <dl>
        <dt>Data Source:</dt>
        <dd>
          <t>The system holding the data, with its own accounting of query or access
activity (for example, a database's statement statistics).</t>
        </dd>
        <dt>Gateway:</dt>
        <dd>
          <t>The component that mediates access between an automated client and a
Data Source, applies policy, transforms results, and emits receipts.</t>
        </dd>
        <dt>Disclosure:</dt>
        <dd>
          <t>A single delivery of data (possibly transformed) from the Gateway to a
client.</t>
        </dd>
        <dt>Receipt:</dt>
        <dd>
          <t>A signed record of a Disclosure produced by the Gateway. This document
is agnostic to the receipt format in use.</t>
        </dd>
        <dt>Protected Class:</dt>
        <dd>
          <t>A named category of values that policy subjects to transformation (for
example, "email", "national-id", "phone").</t>
        </dd>
        <dt>Window:</dt>
        <dd>
          <t>A time interval over which reconciliation is performed, bounded by two
snapshots of the Data Source's activity counters.</t>
        </dd>
      </dl>
    </section>
    <section anchor="transformation-evidence">
      <name>Transformation Evidence</name>
      <section anchor="purpose">
        <name>Purpose</name>
        <t>Transformation Evidence answers, for one Disclosure: which Protected
Classes were transformed in the disclosed result, by which action, and in
what count. It exists so that the transformation claim is a first-class,
signed, registrable artifact rather than prose in an operator's
documentation.</t>
      </section>
      <section anchor="te-structure">
        <name>Structure</name>
        <t>Transformation Evidence is a JSON object with the following members:</t>
        <dl>
          <dt><tt>v</tt>:</dt>
          <dd>
            <t>Structure version string. For this document: <tt>transformation-evidence/1</tt>.</t>
          </dd>
          <dt><tt>disclosure</tt>:</dt>
          <dd>
            <t>A digest binding this evidence to exactly one Disclosure, computed over
the receipt for that Disclosure (or, where the receipt format defines a
canonical record hash, that hash). Digest form is defined in
<xref target="digests"/>.</t>
          </dd>
          <dt><tt>request</tt>:</dt>
          <dd>
            <t>A digest of the request that produced the Disclosure. The digest of the
request, never the request text: query text can itself contain protected
values.</t>
          </dd>
          <dt><tt>policy</tt>:</dt>
          <dd>
            <t>An object with <tt>id</tt> (an identifier of the policy version applied) and
<tt>decision</tt> (the policy outcome under which disclosure proceeded).</t>
          </dd>
          <dt><tt>classes</tt>:</dt>
          <dd>
            <t>An array of objects, one per Protected Class that the applied policy
recognizes and that occurred in the disclosed result, each with:
</t>
            <dl>
              <dt><tt>class</tt>:</dt>
              <dd>
                <t>The Protected Class name, as named by the policy.</t>
              </dd>
              <dt><tt>action</tt>:</dt>
              <dd>
                <t>One of <tt>mask</tt>, <tt>redact</tt>, <tt>tokenize</tt>, <tt>truncate</tt>, or <tt>none</tt>. The value
<tt>none</tt> states that the class occurred and was disclosed
untransformed — an honest statement some deployments need to make.</t>
              </dd>
              <dt><tt>count</tt>:</dt>
              <dd>
                <t>The number of values of this class in the disclosed result to which
the action was applied.</t>
              </dd>
            </dl>
          </dd>
        </dl>
        <t>The structure <bcp14>MUST NOT</bcp14> carry data values, transformed or otherwise. Only
class names, action names, counts, digests, and identifiers appear. An
implementation encountering a value in a field defined here <bcp14>MUST</bcp14> reject
the structure.</t>
      </section>
      <section anchor="digests">
        <name>Serialization and digests</name>
        <t>For digesting and signing, the structure is serialized with the JSON
Canonicalization Scheme <xref target="RFC8785"/>. Digests in this document are SHA-256
and are written as strings prefixed with <tt>sha256:</tt> followed by lowercase
hexadecimal. Future documents may register alternative digest prefixes;
an implementation <bcp14>MUST</bcp14> reject a digest whose prefix it does not
recognize rather than guessing.</t>
        <t>A CBOR/COSE serialization <xref target="RFC9052"/> of the same data model is expected
to be specified once the JSON model has received review; nothing in the
model depends on JSON specifically.</t>
      </section>
      <section anchor="te-limits">
        <name>What Transformation Evidence does not prove</name>
        <t>Transformation Evidence describes the disclosure surface of one result.
It does not state that a protected value is unlearnable by the client.
In particular, where the request language permits predicates over
protected columns, an allowed request can answer questions about a masked
value without the value ever being disclosed (a result-count of one
versus zero is one bit of the value). Transformation Evidence for such a
Disclosure is accurate — the value was transformed in the result — and
still compatible with the client having learned something about the
value.</t>
        <t>Consumers <bcp14>MUST NOT</bcp14> present Transformation Evidence as proof of
non-exposure. It is proof of applied transformation, no more. A
deployment whose requirement is that a class be unlearnable rather than
hidden must enforce that requirement in policy (for example, by not
allowing the objects that carry the class at all); no evidence structure
substitutes for that enforcement.</t>
        <t>The <tt>classes</tt> array is bounded by what the applied policy recognizes. A
value belonging to a class the policy does not name is not counted. The
absence of a class from the array is therefore a statement about the
policy's vocabulary as much as about the data, and <bcp14>MUST</bcp14> be read that way.</t>
      </section>
    </section>
    <section anchor="coverage-reconciliation">
      <name>Coverage Reconciliation</name>
      <section anchor="purpose-1">
        <name>Purpose</name>
        <t>Coverage Reconciliation answers, for one Window: did the Data Source's
own accounting record activity for which no Receipt exists? It is the
mechanism by which "the gateway was bypassed" or "the receipt sink
failed" becomes detectable, rather than invisible.</t>
        <t>The essential property is that the two accounts being compared originate
from different components: the receipt set from the Gateway, the activity
counters from the Data Source. A Gateway cannot make bypassed activity
disappear from an account it does not produce.</t>
      </section>
      <section anchor="cr-snapshots">
        <name>Activity snapshots</name>
        <t>A snapshot is a JSON object capturing the Data Source's cumulative
activity counters at a point in time:</t>
        <dl>
          <dt><tt>v</tt>:</dt>
          <dd>
            <t>Snapshot version string. For this document: <tt>activity-snapshot/1</tt>.</t>
          </dd>
          <dt><tt>ts</tt>:</dt>
          <dd>
            <t>The time the snapshot was taken (ISO 8601).</t>
          </dd>
          <dt><tt>source</tt>:</dt>
          <dd>
            <t>An identifier of the Data Source and the accounting scope within it
(for example, the database role whose activity is counted). Both
snapshots of a Window <bcp14>MUST</bcp14> carry the same <tt>source</tt>; a mismatch
invalidates the Window.</t>
          </dd>
          <dt><tt>entries</tt>:</dt>
          <dd>
            <t>An array of objects, one per activity pattern the source's accounting
distinguishes, each with:
</t>
            <dl>
              <dt><tt>pattern</tt>:</dt>
              <dd>
                <t>A digest of the normalized activity pattern (for example, a
normalized statement with constants removed). The digest, not
necessarily the text: pattern text can embed protected values and
schema detail. Deployments <bcp14>MAY</bcp14> retain pattern text privately for
diagnosis; only the digest is required here.</t>
              </dd>
              <dt><tt>count</tt>:</dt>
              <dd>
                <t>The cumulative counter value for this pattern at <tt>ts</tt>.</t>
              </dd>
            </dl>
          </dd>
        </dl>
      </section>
      <section anchor="cr-procedure">
        <name>Reconciliation procedure</name>
        <t>Given a start snapshot, an end snapshot, and the receipt set for the
Window, a reconciler proceeds as follows.</t>
        <t>Window validity is checked first. The two snapshots <bcp14>MUST</bcp14> carry the same
<tt>v</tt> and <tt>source</tt>, the end <tt>ts</tt> <bcp14>MUST</bcp14> be later than the start <tt>ts</tt>, and no
pattern's counter may be lower at the end than at the start. A counter
regression means the source's accounting was reset or altered inside the
Window; the Window is then unreliable, and the reconciler <bcp14>MUST</bcp14> report
failure for the Window as a whole rather than reconciling the surviving
patterns. An attacker who can reset counters must gain an error, not a
clean report.</t>
        <t>For each pattern whose counter increased during the Window, the
reconciler attributes the pattern to the data objects it touches and
checks whether any Receipt in the Window covers access to those objects.
Matching is per pattern and per data object, not per call count: one
client-level request may legitimately produce more than one source-level
statement, so call counts and receipt counts <bcp14>MUST NOT</bcp14> be compared
one-to-one. A pattern whose target objects cannot be determined <bcp14>MUST NOT</bcp14>
be silently ignored; it fails the reconciliation with its own report.</t>
        <t>Each active pattern receives one of three outcomes:</t>
        <dl>
          <dt><tt>covered</tt>:</dt>
          <dd>
            <t>At least one Receipt in the Window covers the objects this pattern
touches.</t>
          </dd>
          <dt><tt>not-receipted</tt>:</dt>
          <dd>
            <t>No Receipt in the Window covers this pattern's objects.</t>
          </dd>
          <dt><tt>unattributable</tt>:</dt>
          <dd>
            <t>The pattern's target objects could not be determined.</t>
          </dd>
        </dl>
        <t>The reconciliation as a whole succeeds only if every active pattern is
<tt>covered</tt>.</t>
      </section>
      <section anchor="cr-result">
        <name>Result statement</name>
        <t>The reconciliation result is a JSON object:</t>
        <dl>
          <dt><tt>v</tt>:</dt>
          <dd>
            <t><tt>coverage-reconciliation/1</tt>.</t>
          </dd>
          <dt><tt>window</tt>:</dt>
          <dd>
            <t>Object with <tt>start</tt> and <tt>end</tt> (the two snapshot <tt>ts</tt> values).</t>
          </dd>
          <dt><tt>source</tt>:</dt>
          <dd>
            <t>The common <tt>source</tt> identifier of the two snapshots.</t>
          </dd>
          <dt><tt>snapshots</tt>:</dt>
          <dd>
            <t>Object with <tt>start</tt> and <tt>end</tt> digests of the two snapshot structures.</t>
          </dd>
          <dt><tt>receipts</tt>:</dt>
          <dd>
            <t>A digest identifying the receipt set that was compared (for chained
receipt formats, the chain head digest and the sequence range are
<bcp14>RECOMMENDED</bcp14> as the identifying material).</t>
          </dd>
          <dt><tt>outcome</tt>:</dt>
          <dd>
            <t><tt>covered</tt>, <tt>unreconciled</tt>, or <tt>invalid-window</tt>.</t>
          </dd>
          <dt><tt>unreconciled</tt>:</dt>
          <dd>
            <t>When <tt>outcome</tt> is <tt>unreconciled</tt>: the list of pattern digests with
outcome <tt>not-receipted</tt> or <tt>unattributable</tt>, each with its outcome.
Pattern digests, not pattern text, for the reasons in
<xref target="cr-snapshots"/>.</t>
          </dd>
        </dl>
        <t>The result statement is serialized and digested as in <xref target="digests"/> and is
intended to be signed by the reconciling party and registered
(<xref target="scitt"/>). The reconciler <bcp14>SHOULD</bcp14> be operationally independent of the
Gateway; where it is not, registration on a Transparency Service at
least makes the result's existence and timing third-party-visible.</t>
      </section>
      <section anchor="cr-semantics">
        <name>Semantics of "not receipted"</name>
        <t>A <tt>not-receipted</tt> outcome is a statement that evidence is absent, not a
statement about why. Gateway bypass, receipt sink failure, and accounting
scope mismatch all produce it. A result statement <bcp14>MUST NOT</bcp14> label
unreceipted activity as an intrusion, a breach, or an intentional act,
and consumers <bcp14>MUST NOT</bcp14> present it as such. The value of the mechanism is
precisely that it surfaces the condition; attributing cause is
investigation, not reconciliation.</t>
        <t>Verification of receipt signatures and chain integrity is out of scope
for reconciliation and is assumed to have happened first, under the rules
of the receipt format in use. Reconciliation compares an
already-verified receipt set against source accounting; it does not
re-verify.</t>
      </section>
    </section>
    <section anchor="scitt">
      <name>Registration on a Transparency Service</name>
      <t>Both structures defined here are payloads for Signed Statements in the
sense of the SCITT architecture <xref target="RFC9943"/>. An Issuer (the Gateway
operator for Transformation Evidence; the reconciling party for a
Coverage Reconciliation result) signs the serialized structure and
registers the Signed Statement on a Transparency Service, obtaining a
Receipt in the SCITT sense: proof of the statement's inclusion, at a
position, in an append-only log operated by a party other than the
Issuer.</t>
      <t>This layering is deliberate. The structures in this document gain their
audit value from being registered somewhere the Issuer cannot quietly
rewrite; SCITT already defines that somewhere, together with its trust
model and verification procedures. This document therefore defines no
countersignature, no anchoring, and no log format of its own. Where this
document's mechanisms speak of digests binding evidence to receipts, the
binding survives registration unchanged: digests are over the payload,
not the envelope.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <dl>
        <dt>Same-operator collusion.</dt>
        <dd>
          <t>In many deployments the Gateway and the Data Source are operated by the
same party. Coverage Reconciliation's value against that party is
reduced: an operator with administrative access to the source's
accounting can suppress the counters themselves. The mandatory
invalid-window rule (<xref target="cr-procedure"/>) turns counter resets into
visible failures, and registration (<xref target="scitt"/>) makes suppression of
already-issued results detectable, but an operator who controls both
accounts and never registers anything is outside this mechanism's
reach. Deployments needing assurance against the operator itself
require an accounting path the operator cannot write to; that is a
deployment property, not a payload property.</t>
        </dd>
        <dt>Counter manipulation.</dt>
        <dd>
          <t>An attacker who can reset or rewind source counters could otherwise
hide activity between snapshots. The <bcp14>MUST</bcp14>-fail rule exists for this
case: a Window containing a regression is reported unreliable in its
entirety. Snapshot frequency bounds the exposure — shorter Windows
mean a reset costs the attacker a visible failure sooner.</t>
        </dd>
        <dt>Digest agility.</dt>
        <dd>
          <t>Digests are prefixed (<xref target="digests"/>); an implementation <bcp14>MUST</bcp14> reject
unknown prefixes. Accepting an unknown prefix as an opaque match would
let an attacker route around comparison.</t>
        </dd>
        <dt>Signature and key compromise.</dt>
        <dd>
          <t>Signing and registration are inherited from the SCITT layer; key
management, revocation, and the consequences of Issuer key compromise
are governed there, not here. A compromised Issuer key voids the
evidentiary value of statements under that key, as it does for any
signed artifact.</t>
        </dd>
      </dl>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Every structure in this document was shaped by one rule: evidence about
protected data must not itself become a disclosure channel. Transformation
Evidence carries class names, action names, and counts — never values.
Request and pattern references are digests because query and pattern text
can embed values and schema detail. Class names and counts do reveal that
data of a class was present in a result in a given quantity; deployments
for which even that is sensitive can keep the payloads private and
register only their digests, at the cost of making third-party audit a
permissioned rather than public act.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document, if progressed, will request registration of two media
types: <tt>application/transformation-evidence+json</tt> and
<tt>application/coverage-reconciliation+json</tt>, with the structures of
<xref target="te-structure"/> and <xref target="cr-result"/> as their content. No registrations are
requested at this stage.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t><em>This section is to be removed before publication as an RFC, per
<xref target="RFC7942"/>.</em></t>
      <t>One implementation of both mechanisms exists: the Conarium gateway
(TypeScript, MIT license, <tt>@conarium-ai/core</tt> on npm), in production at
one site since July 2026. Its receipts carry per-class masking counts as
in <xref target="transformation-evidence"/>; its <tt>conarium-reconcile</tt> tool implements
the procedure of <xref target="cr-procedure"/> against PostgreSQL statement
statistics, as a single file with no dependency on the package, so that a
third party can run the reconciliation without trusting the
implementation under audit. Its exit codes distinguish "covered",
"unreconciled activity", and "window unreliable" exactly as
<xref target="cr-result"/> does. Conformance test vectors ship with the package.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
      </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>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
      </references>
    </references>
    <?line 483?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The discipline of stating what each structure does not prove is owed to
every auditor who has been handed a green dashboard and asked to trust
it.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA41cbXLkyHH9X6coc3/MjNxN7ax2pV1StkxxZiVK86UhJVmh
UJhooNhdGjTQiwLIbU1MhA/h37aPsGdwrC/ikzhfZlahALJHq9jQdINAoSor
8+XLj+rlcml639fuxB5ddUUTbtpuW/S+bezzW1+5pnS2aCp73t66rlg7+9aV
bVP62stNdLs9GyrfF6va2WdFX9hnPpR1G4bOHZlitercLY09XkzjHpmy6N26
7fYnNvSVMVVbNsWWZlJ1xU2/rNp1NyxD6Xv6nB5fOn18+elnJgyrrQ+BJtLv
d/TgxfOrr00zbFeuOzEVjX5iaLbBNWEIJ7bvBmdoMj8xRecKmtSlK4fO9/sj
c9d279ZdO+xw9fzi6urIvHN7ulqdGLu0nSud3/X4uC3CO9+s9WomClzpIcEd
jd6Ue3wfp21M6EmO/1bUbUMT3btgdv7E/rlvy4UNbdd37ibQp/0WH/5iTDH0
m7bD242l/90MdS3Ceb517+x50dhn7ff/1Q3814Kk5L9+6Ja13tF266Lxf+OZ
ntg/PH979q/26vlvX71+8fo3339nX3z/3cvvv7t6/sz+739+/93b3z6/+v67
ceTXH3n4wr64eHmBJy8v8NwFP1a2Q9NjY6/e8ne3LXx9Yt0xb+q/kNyKzg/b
48rdGtOIyt3Sbln79uvzz54+/Uo/fvn0Z5/Hjz/78gv9+NVXn//kxBjf3Mye
/NlXn38W7/n0C/polsulLVaBNqbsjWFNjbsZWHlJzi2N4SpbQXmLsnQh2KLv
Xeht39q7TdHbwq7plrtiz3veVa46Nld3rf1moLtIKIGu0wob2w59IPW0/cb5
ji4W5eZEhrgrgi03RbOmN9GNdAO/0KwczcJZL3eowrhqwVZ3t3F0Y8d3B9fb
9macvKfx2u2udr2zd77fmM6FnSt50nF00qyhK92jYNu7BmvDtpD2YiASiL8l
5T+2Vxsai4xv2LqmN5W78Y0Ltqf1RVsj++yGsic9pusskCbc8bxorqMUTswB
CKHV2J3rMjOmEUmieCHmcrfx5caWdRECvaG9MbdFTYNaeocTo8KYJDkIZdPe
LWxZdN0eK+ElBf4DP29hAsGuht42jjBLhzr9GIrx9Lq2dBVmhhtpoUPdZ5PE
qg3kXUAG9wQropTJuI5uWJM2BCiO7pdsH73dFoS3W2xZU7V3+rIdAUAYh4Fe
ikiaNg3gvvWhD8f2ly3tdbYfNCFbueDXDcmH9n7l6JE13UuyI4EFeyl/uoxr
oTnTlGWrFKvspetuPaA+YKyy86tRTRkP6TXlxveOX3pIZZK67Ip93RYVSZ30
umrpT01LH/g2kknj7tKyRFkWctXkAGq3Dgbjw3ZhYaj8GNZZYA764LGY+NZX
VU0g+4m9INxpKxIOINlc7kkOW1XaXV1giXbX1p6Gjya9cv2dcySSJgODsvbY
9sf0FuO+LWBnMEl7dkEyCh5g3j/h3StySyOZlWT1gTSz3hPq0fJlZxZmU4TN
khbksRkKM9GYj2kDoJn1TCxBdh3ydnsbNtjrwpCqkjGRnvCqak9vCQIyPW4r
aZp0C4Fipn4+3x0WkKvMas8bTPKOg9G4amn4g8yS1r0iXMPqaZJqC/pQyQDQ
t0ZwkXYDsLgudgDXuiYFv+narT6h06abvvZdoD1PWEbe25dFTSJji1OMERlt
it3ONWr7Q1M5tQ2j21i50gc2YrZ50jMWRXosh8O41YynsmE0qsFX2fBj+8cN
VCEpB9x9wEwrss7Aiti37xx5Q1JqRSmBcDOC20IW0E/B0Ad577CC9tCrCfhY
/J2/LWghBF8eonIGcip6etW2eEfj/9+//wcv3vM27jos2NXj3tF0Cc2wNfSa
TIdgeEYMT0z62J5Bx8kHtuycKgBoGAhnRkWpXdE1EeWt0DryTAa35yIeHRPt
K3ABRtPWw5YeJuDwGOmGNTLK0uRAThNQeCnxRtKJS0Ay/N7c0y2A+DAPcgd1
bZMJwfYaUsAO3rJtasAv3RXMqLouZFiatI29SjQCkkk0dl4z+2x2c87khg0X
CyvYwfxJbP2G6OJ6ky8wjhky2GY/TpuQtD/uepQ3L4e+3bqixls9gcGvCSrk
D4BjCBf8oiV1M+IvQEE69eNiebpjDBenggMAi+BrrEwMOL/TsBDYQ1ogVg9J
PA/Ybx824liFXDQCVN8MXj0f71MkE3DW0W8tklAtIUuhENGqohRNLquTOUcx
BGKuvgGC5L7F/j06UlQV/aNb4oJj8AHxs4fCmcfv308tM4UUHz48AWYmr78g
KkmSaxhE6DpQ3dnczh/gLjbjLvR8rvTK9fIBSFAyQFEqE2nY8TKGsYSP7QUF
HnGriPZ40c74Hvq4JcndugBfeDBQo1WX+qflNHDRVY8EiPXD2sR2QkMi3bQ9
r654kFjO+A8BICEX/QHjYK4sxYKnzmNkFGiRyFJuFsAAmK7OJd3KDlfJzj2S
JkQKqpBmtAOTB6DBkduDrMoY0Co7o1WRxqj/xSVP6yMfFJmW7AfvmNAsk9Es
sdVExcC67A9lXeY+67Lv32vs8+HDQlcSht2ujgrBHq9aAgoXBIK+q5Zsgssi
BegynU5Uop8ZWk3vpz/BtUTORrDv2bPMKF8ySxLlQ2wOgMfu2TioqbwvUIxE
PqoMso90z8N0j3bjk0/IEQuhCRNzr1r2P+wrH960xIWLjk23YHvzJKaGXS7U
RdEicifCMAnYoMwRDI4PAkjcK5F6FuPT/90QxZyyXnHrhZgrHPjQsI/Ffhhg
kVvKNMgO4YwOGbBq+6jjQ6NSJ61L+u5DDmCRua0CvsSVnSqToNnJTrz8/eWV
ffX6ijSayKXDzRw6MKCTyOg/1vsebpvtd8VukkGlW6Z9xQrAwc8TGxEjeAZl
8fwd8O7sO7KmO/ZFR3j30UL+xRzw+e3z3/3+4u3zZ/h8+euzFy/SB6N3XP76
9e9fPBs/jU+ev3758vmrZ/Iw1jS5ZI5env3pSFZ99PrN1cXrV2cvjsTmcvWG
IomFY+EdCUUkYiZ2+svzN//z308/J8P8B01bfPigX5C4oC/EkxTTmaDIV3hn
A2MtmAQVIDXFjiy0hmUQ3m6gh+Q1HUnzR3+GZP5yYn++KndPP/9nvYAFTy5G
mU0usszuX7n3sAjxgUsPvCZJc3J9JunpfM/+NPke5Z5d/Pkv2DyXT7/8xT8b
0RGJH9hSXbcV2x4CRybMvEixyc1zxvGSndGJOQFO28AxH5HGuop2Dpe1YApn
2d7vJUO+GVy35yiTeSN5imRRCAHtGALyWKsiwPeNdsagEmADsIBfKcfRCcGR
tk1imMQEyKSBVhLgfCz+ZH9Hs8mWuQDOM+YLwi5GihEUJBRgHYNbijFJWAmq
MLWzRGgI+W95/Tfi3B/vWmJUK4QYI3t5EkM5Z3V9zIpAFCR0MuatvCoOrk4a
pFNQI0sC50wxG3KeWbAMaOumhWxjKDd1NjAh0gt6/ZsUiJyDjck0kA4icWqm
OeNnEpNKDEkx2V/pycBvmKL+YyEOSQGOOJUJcGkKibeWvsLX3Yb2+Ajb/0cm
K/J6JjqMIfRaSQClaCRHdwR2MfZeCF1S4dy19PoJBYMMMoV4FO4TMIbhQ/7r
/SeH+C873jdDR/vvzKFknib/SMlgGbTobF9PdHVpK8y5EuN7qbyYBI0ZT9Xd
g5TYTCmxMjciohpsb9x868Tzske8QcJhySR9YTQjk8gQiBHxJE++m/xrMcYr
pKTBMUQ3Nsbkj4KJ2slvEbJyGTkIhOuWiZJ8OCxFntdvLl+/si0rn8BTP0G+
rUMpA+HM9e01FGp8DyJdJlU9AsFj+zWT5cx2Tuz1gW3+8dNrmvX1SFyuRVcr
v0bSe0XqK8CZJ43IMsgGyp5AYbrlC8a3AWYH9VbCn9mo7E9m+4/bDvyVFeK+
OUdmychSNG2DzFCEESTRNLuCj0SYnsmk8TBEKk+zvlhyxbIkIiZYMIJY+jZd
bQrH+W8pUyXgxJaWJs5hwPQ5eok+udAIbTKY+5a2QXwLPnNqTuJcZGx6RP4p
e0JDCTJhqoJLMtNmoiDXvrq2jzFOBYp1412XEkkCZlEzxE1UnKWkwa9joowe
z+4mN0r75/LMWkZpJSp0hEUAtmuNcuO8KPgpGFJlgkiPkWqQodgZFI8mqpOK
0YHljV1LOg12zje2ZTl03ccwgtkn5EGmQUvjeV2j8iMed/56OAGmVuINYt6T
53DMIwjW6BCvJVK4RvLvemGvJfuHTzH3x5+7oYFfueas4DVpqrsWFeF95LqX
XBWikElBKhVpmVzqyas//CwqaCNcShLQwsmEPOYN2LzK7ep2L1Fn4yQ6Re5Q
1saYmUlHCqSZK2T9QT2Jp3VA6FIMQ+IVk5McGyMaZq7beizULcHfGFlwvUbY
hbx0YWfpQM4T3Xny5CT/em+yas4ivkq/Sc1noaaobGe0B54Okoqko8bDbSe0
toRl4iI5SxCDsoZdhKurhB+MTjz7zkG3OamY1qWgT6MUtdZFeQ46IXICEXiM
ATDLN34l3QX/Q58XdjIm0CvoiDSB5A3gIsx5BML4tstyQ6uSlAAqo4RwCoXh
4WiGiP/ysy9+yglEfL/rfN+DdQZ1IZxZvvHfxndfh01BD5xcqz8Su8GHriT6
azbkDgAp26Im7zPwEuIbA2nfPuU+KMJBDoYLtRE+9V3h1ADKpnuUiZ2jd37g
jisN8lgeX5sEIBPXvR4kKUg7RSH1L1+//fH568vnScDyIkmofPrFZxSpKYaG
YqtpyW1LvJjrJt/uBKAlIESRFWqGkK50aYv0fvJK4tBu2XBuvbs7xTQ5paqp
HbmTbNY1FRfj+Hkdl8sgWQbkYBIi5he41CO0Q/MIhznHocyF1cwFY3nj1OKP
zUWWx8grM1nO/6G0RgTYGBhcNJwL9uVQFzPXL46yLpr1gJwH+Q4OWmifK18y
aDKpuFdj4GJcoXoZh4F71cr0WJnXFAhXcmgTZb4xm5/yqJad98phm0bke1yo
KJYx2Q3xGHjYIdi/ua7FyiGxlU9Ugsd7cjh9BEokRZcsIGM6CH8AIQPrx5kB
Xx8gzorKWhwytFrkEZCz7T0XbSKAaCi5KW6xON4kGgV+Q7RSBATF5PeR7p2T
3MiOCUgTfmta6OCiipByRaYB1/x2p5zpQqtWmkiKBGDKTTljuG1x/5kZvZla
vVYf+IpPtSlxECs30bwMA8zGVzQ5ux1INRx6RUoXazzZeE1kQtNAn1QY6FKk
JARJso1RIkci7NFGb4451fUTWPsDhQrDZT/fD73WpKRcI7PaSvgM15kolpIr
Wm4WDN49TKMyEgX5idqsXN02a556m6SVEb9k2HCqmg7U+LFiGmM4bSigEJ9P
KYA0O4hbyhr3847QKXkbxai3bVmsAAB7KMuWDSCMN2qOJqUjuY2hUEKIzIAk
Fh/Ojb7/5FBtYxrRHnr+XkSrITxBQXU/3Daz/JHGJg+3b7ydFBp+oebAbiDm
u8eI9yivJsLuV3vUG111BIZ0NCmQ+OaduSl8jT+uHDh8LBbCEBYTb+ibW4+E
jlMtQ2mU5k5xVSpL+oyeotam6wuKiVoMAlPzpFQ0RcO6UPmbG1KAph+zXOHk
fiVnljlaJP4IgZnUNpPuy+SNnHhMOBHAQ0tBbZNoxmEItzWryuMUaZMm+XgN
7sTFnsU9GxMspEvdMn39AP4Qv92P2ctiR9Yd8WGalCEqROoO0mMeaBBiL9p6
QSBkibIgP77uh8T4ceg0ZY3ue4nSsNucg2JyEwdml8IVuscXl6/tlz/99CnH
d1LVi+Hd/QgzW6BGay43hFCSMrHj4Q4AChSmmBrNHOlT27VwUozvefVCEeiJ
NjrZefVRLFMwYoRgpm1x+qfw9mRXRc/BCik/Ub5KI7Bo21guLQ8lyb8fzs7L
iVkDCWffogTobZVnoj/4sEGoMgtU9XkNxuZJCG6EFPp/742zNDQHYdn9I/Sy
30fXK1qUgjQOsDzH5MWCXRuP4JCCLjqv7SSSsUirjDkLpKGqOekLmligLUIw
UgB9CI8oDsmi0Zdnf6IpSKYjH5WbXrjUKPlVCI7zvD6cSq2kH3MtPjUgVLEs
8kBYO9pbNDMlUDfRbOIMyPhgHwIBM1cwlsEZCNJXAoJf0dCNuLmuT3rJTNQh
rMsuVAeK2U6TwwvpuOEX0zw1yxLgESXaCimPbFl7o3VsXEksVvKZsqUA69FG
HrALwApPKdqHGCKmDCkkd0uyyxs1ZJW4I5ZrjcrvUUgC3nL/nESFVr2HkzRO
E7/zQNxmIw9RxLbmlg2S9tYVTThkTQxT4J1cd+Qgkulv7LBVAZ1mVq2+teHi
KG3pStr20nZEgWuIiVIqO1FtKMxHAjkBPk1J5Zi3V8wnknvrwayjdIJ0WfV9
QTsFItCyCck6Ev4zKUXfA2tP1yElCu9UGPRDNTq3Y0kfMIhE5RXIjBug/YZo
Xx79UNQxyChbNA1Awd8QcTDZY9YgFxmuR7pn4EYoGDmrXUhdX0WzT7xGoxEV
mnRgxcoWj4zZ6rDH5iUwmUNhrneMFklbhO/ZJEQeO2564chmgL9D+CUBzbKm
kK1OsR80sXZrT85OcEX9PEcVsnVAc1EzedaMjT4oI4yvia0b2qEll7IieWJD
hoZc9u2S/oGCT7eI1H4N1VWRKndZOWZpFOYiCouDmlXs1aKZe8JBGpzL9FDO
MNFexalJMTNpy/NC6ya34/5qOkLiVPY0nXMx78u1Bd41V4kf5BZA+KTGfXyT
pxHRCK+oAIjuwMfSmpepT4Hf8Kr9e+OOY6HBKOqOuR6aqMIw7MRvxnvnIm+H
urL3pK4keCbQzN4pOhc4Zkfkbzg5sJ/L1YdRctGVzBqS2IVIoP7hwZdqED/n
lSMXvD4Q2CjLk74ovvN1XiRgzFXUJzzWlH/uKgT7xZHPuZ8Wrbc0wXj5ATI4
cTw8QvzyA+YTM6UPjJU19EjVRurX07KNTmcfIS93tX06bxGDFiZP2jgqNYe8
yVr8oTRibhBz6jui3wiAGATCHY5vIHuKIyZjswNUB/flcwIIIdXIolVbyzaU
VGZhr7mDR9C50iqCktWlbqxofXYXhuAW5TQolGd2j5XeJiGWUV2jxPmsiE11
n5mB8iRmdpaxWEEcefSYRnkzHVwxOyN6i+RW4aZabg7mytwkyPqQTHJmQNOc
+Jhil5MNvslLfFIFCGbWoqd9CJqSzN239KdOu/TQkcVHzrgb62rKGrQnhgaV
ajCX/4EQjSRz9TQL3K5GrKea7MwariYteB/pCeyN4LD0gI8Zv0d6KCAdzSOP
p+Xa1PA3RvtcptD2LMztCBuUtvtIo93UwIVo955GqKbMWsskgZVXs7nLLNKY
eS7obrM/TnG8xO6LSTLDKg/TJs8xppKoMgZ03C4VfbtnXnlPa5KrrosVufms
UW6MqwD3SIwQ1gQ9AiRNbXLYpNGON+mop6cWXDkpD2dGaYtRSyHHlxUBI76N
uR5S0LyDv+AHNf0u24z2am6WO02MjTMwxYBmBOj3LXLb65Q47Wdehbb9D2Q0
qCWIkt1kgtbjM3piijEPK113GmFgr9AlCaGbGz4nMEuVVbzZAXJgG9sU5BTT
cYsbOdoh5WTW2qF2wcy63qetO/MYbDxn1ZiiRhqQVJpX5KoJ0sfO4XiWIynN
6axEJI9LEvHtDzPA958IDtzvMp3UCPM+Yca6+8ettOyDY6hJIT7e3sshxAWJ
mGT4OMubjSdD8KYDufjTA0DHpx0PpkDFiJ6whmhENgLvWKRENBDRUm6br/ew
SMmyVsgEcNHBzDigCIRldDJWCzR+lJEfQZRlHe0VKLNrgxczkEgqa4GmoHSt
OP2xAwlGxBzPHdTFXmrD3EsSO6LFojMVuFdi5VCuRxOx4W7rmHpAIlIyqFkn
OGovYxFM91njg28G7ygIICGjQkubqZoiZjAehwBypHGIwbRric2Slwaw9Vpr
hNHe5pCQ0hph3tg95vPHFu+UoI3oweUaOXzDhWxt54bE1bLRMizBCR+p4qX6
sXWKtjJBYkDps3jH3YfKUWILUt59NB4Hwq7FOyT8dmHqVodGj9qepCFhp21s
0FGDXfDpKMlZUDxIysIAEY+Fo48ZuQYZNBhzWWzdMplg2daii8fEyS4actTN
ftKJkRlu4pKTDGrnJgracz8RpzJZU48P1Tse6dGz7OREOpHnAxNc7l86yRvX
RDOKisiCCurWTQL1MQfD7a8pC4PsBc4ZdC5EB6VJjH48esIGQhKo8Kr9mHVV
IsteQNvFx5TahyeWtKkZ00mcJIF19Wh6VBYTiYH2eUw2OmNrSpTiTMXxYSXq
QDzMLDazTEslKzndOEoKOZsWB0lrlN+YL6d6COs6V4tHHKSd72NaYzwC7jMl
fyTbUoAdPJt16zAe0uw6PhWYn4ZJM5KmMe0284zD+RYR495MH1A0YQyh7T1V
qiFtdVmBNdZ/lLZFy8gPa56nXF/jd5xhFZU/nOVi1oCNj445aYxE5KnVh+ay
gawSK4u90GNcyYoFsrWEGogeaetnzOtyo2Dg464pk9AkR2OzdCMnkpEqcVWW
IZTzihgGhK9zsLxUg7npJPrbSx1WLCBWt7n6Trd1kI+8G8Mgq8kvlpRfUCxI
0irmqk1yaht2QtrOWKzJ1iH9k9TVw0Qjdug8zuKeJ6f2oz00Bq1k7xrkiWLX
DfELMvyddiTN/qzUuN0VtHArpPsO+0YD1Y4tJa2kI2138aSN0DYfmIFepoPa
MBgc+MCfyR2iwwtFLmmCum/ScsqKFMRjl1JFUNwgu+dTDAcxFw1ho+TvOof6
8tgvrEQ6hu4c+6ijnc4Fpk1vXANpG2n5FP/WS6mB89bx5iof47b1og5QnFsJ
/lHdTsQ/jBQw0mGyQXqUWxEjQWVa1mA96dyStCKzL3qjh4Pnrug5Z6Sy5rE5
IbnjgyTFTlwLN/UM+JWX5FI5LMsaa6TpCWlprF27VKWwrGeotFMFiNa4et7g
YlIvSDyk+JEOPomlGE9hQoKnsf31raZ0OSmckphcZi7jIa9IFJyERdJjmz+A
5IMZa1djxWperTrPfjUim1bV6qFc3jU5Cpw1Qtxxw4tGfmrsnMnjw+NcKPpm
QFDd709zUmDG5gAcpk+wDOLrpXZFc37n3C4nKiHWyyb8O9XJfJe1QmqHaSvZ
H3KKs+SAHAAHd0Y6lHERbjFvex9WtS9tVMGLs1dn9/RvQhoXyJGSJjHOorP+
Dr1IMTM/TXjccK6Pz8AY/GhPQA0b3SxivT8+0LP+j38N6FzG8ie3H0iPyu2L
sQkq4+7ECvjU3dikL6kjJiearP2gOT3fsS/hA5Cv2slSWBGNLhJm24sFktWv
hUdeTCEZEdJAovsRyy64Mv0qgP5oBxdq4yFh2YQxNd3gR20WqIcYDhTxUzcU
KP7IGHQrz9CfpAzaknNs8ZmSGjzXn99JJ/MfX9FOXJYdH1h/eUE4S+EagefC
Xqff6lkWnqTduWsEeM1u+4Rjrl36sQ1krLjCAsYRPIDgNwPp52effvZTdIGN
J5G0PokfhBFj0t9USsUX5DjsR05pn3JscZ1mllJ01yTLth6lIb8FMJZ0SS5z
Cpr41huyGFLgy9+9GIHbjOe6FlIg0CNTNz522FHYE5N/6KZv1GzLd6QFi3Q6
pZDzuPFXM8CUhtjGd6+swx1RiN40uT3vYRZnwmYsgqW9Bc+oXMjbD+yRpppx
7DFPECe6FQ9CKkcfGdFROutBezG1C/gsBCby20scm8HIb0md2w4ux+9Gq1M5
6I+0rOgb7OKsBN2giaxlj96fSEe6q/7p6KaogzvSYsnDB3e5CY4z0qP7m3XD
gobfcXbKaOlGf/QCPBUtuiuQTDINpIkJrzt8rYqwWbVFpz8tgW5ROQ+GOJpE
bf4f/H60kyxNAAA=

-->

</rfc>
