<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gilda-audit-agent-audit-record-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Agent Audit Record">An Audit Record Format for AI Agent Authorization Decisions</title>
    <seriesInfo name="Internet-Draft" value="draft-gilda-audit-agent-audit-record-00"/>
    <author fullname="Sankalp Gilda">
      <address>
        <email>sankalp.gilda@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="16"/>
    <area>Security</area>
    <keyword>audit</keyword>
    <keyword>agent</keyword>
    <keyword>attestation</keyword>
    <keyword>tamper-evident</keyword>
    <abstract>

<t>This document defines a record format for AI agent authorization decisions and the effects that followed them. The format is one in-toto predicate type, signed inside a DSSE envelope. A record carries the decision and the observed effect with a derived agreement between them, whether the decision point could evaluate the request and how fresh each input it relied on was, and a canonicalization contract under which a party that trusts neither the agent nor its operator recomputes the record's consistency from its bytes. The document also defines what a party that retains a record keeps beside it, so that the record can later be dated from anchors that party does not control. The format carries the seven minimum audit fields of the WIMSE AI Identity Management System framework, and it is offered as a data model for the audit records the proposed AUDIT working group would specify. It defines no policy.</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-gilda-audit-agent-audit-record/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        AUDIT Birds of a Feather mailing list (<eref target="mailto:audit@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/audit/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/audit/"/>.
      </t>
    </note>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines one record format for an agent's authorization decisions and their effects, and it defines nothing else. It specifies no policy model, no compliance criteria and no retention period, and it does not extend or amend <xref target="AIMS"/>.</t>
      <t>Two bodies of text ask for such a format. Section 11 of <xref target="AIMS"/> requires audit records for agent authorization decisions and leaves their form open. The proposed charter of the AUDIT working group <xref target="AUDIT-CHARTER"/> asks for data models that represent "interaction records, references to the identities of participating entities, delegation context, authorization state over time, or action provenance", and states that "audit information must be verifiable by a party that trusts neither the agent nor its operator". <xref target="audit-map"/> maps each problem the AUDIT BoF request <xref target="AUDIT-BOFREQ"/> and that charter name to the section of this document that addresses it, and names the ones this document leaves to other work.</t>
      <t>This document replaces draft-gilda-wimse-agent-audit-record-02. Sections 1 to 8 and Appendices A and B keep the numbers they had there, so a reference to one of those sections of that revision resolves to the same section here.</t>
      <t>The goals are:</t>
      <ul spacing="normal">
        <li>
          <t>to make an audit record from one deployment comparable with one from another;</t>
        </li>
        <li>
          <t>to make "tamper-evident" a property a verifier can test on the bytes it holds;</t>
        </li>
        <li>
          <t>to carry the authorization decision and the observed effect in one signed record, so a disagreement between them is detectable;</t>
        </li>
        <li>
          <t>to give the seven minimum fields of Section 11 of <xref target="AIMS"/> one member each.</t>
        </li>
      </ul>
      <t>Policy belongs to a deployment, and a record format belongs to everyone who has to read the record. Two implementations that each satisfy Section 11 in their own format produce audit trails that cannot be compared, correlated across a service boundary, or checked by a party that trusts neither producer. Section 11 asks for all three.</t>
      <t>Comparable has a narrow meaning here. Two records are comparable when a third party holding both can decide, from the bytes alone, whether they describe the same request, whether their decisions agree, and whether either was enforced.</t>
      <t>The consequence is concrete: two deployments that each hash a request differently cannot join their records on a request digest, so a delegation that crossed between them is reconstructable in neither log.</t>
      <t>Section 11 of <xref target="AIMS"/> is normative about the existence of agent audit records and silent about their form. It requires that "deployments <bcp14>MUST</bcp14> produce durable audit logs covering authorization decisions and subsequent remediations", that "Audit records <bcp14>MUST</bcp14> be tamper-evident and retained according to the security policy of the deployment", and that audit events record seven minimum fields.</t>
      <t>Section 12 then places the policy model and document format out of scope, stating that they are "not recommended as a target for standardization within this specification". Section 13 places compliance criteria out of scope, and Section 16 records no IANA actions. <xref target="rationale"/> sets out the canonicalization contract and the reason the decision and the observed effect belong in one record.</t>
    </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>

</section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The following terms are used throughout this document. Two of them, <em>observer</em> and <em>decision point</em>, are defined here; the rest are taken from the documents named beside them.</t>
      <dl>
        <dt>Agent, Tool, Service, Resource, LLM:</dt>
        <dd>
          <t>as <xref target="AIMS"/> uses them.</t>
        </dd>
        <dt>Agent identifier:</dt>
        <dd>
          <t>a WIMSE identifier as defined in <xref target="WIMSE-ID"/>.</t>
        </dd>
        <dt>Statement, subject, predicate:</dt>
        <dd>
          <t>as <xref target="IN-TOTO"/> uses them.</t>
        </dd>
        <dt>Observer:</dt>
        <dd>
          <t>the party that produces a record under this document. An observer watches from a layer the agent cannot address. A host-side view of a guest filesystem, a hypervisor-level read of guest state, and kernel-level supervision below the observed process are such layers. An in-process library, a wrapper the agent links, and an importer holding another party's log are not.</t>
        </dd>
        <dt>Decision point:</dt>
        <dd>
          <t>the party that evaluated the authorization request, whatever its architecture.</t>
        </dd>
        <dt>Interval:</dt>
        <dd>
          <t>the period between the before-state and the after-state that one record covers.</t>
        </dd>
        <dt>Retaining party:</dt>
        <dd>
          <t>a party that keeps a record as evidence, whether it produced the record or received it from another party.</t>
        </dd>
        <dt>Anchor:</dt>
        <dd>
          <t>evidence, obtained from a source the retaining party does not control, that a given digest existed no later than a given time: an <xref target="RFC3161"/> time-stamp token, an inclusion proof in an append-only log <xref target="RFC9162"/>, or an OpenTimestamps proof.</t>
        </dd>
        <dt>Skew tolerance:</dt>
        <dd>
          <t>300 seconds. Every comparison in this document between times written by two different parties allows it. A relying party <bcp14>MAY</bcp14> apply a smaller tolerance and <bcp14>MUST NOT</bcp14> apply a larger one.</t>
        </dd>
        <dt>Tier:</dt>
        <dd>
          <t>the degree to which a record's own members corroborate what it claims about how it was observed. A verifier derives the tier under the rule in <xref target="observation"/> and never reads it from the record.</t>
        </dd>
      </dl>
      <t>Every digest in this document is written as lowercase hexadecimal in the algorithm the record declares in its <tt>hashAlgorithm</tt> member.</t>
    </section>
    <section anchor="audit-record-specification">
      <name>Audit Record Specification</name>
      <t>A record is an in-toto Statement <xref target="IN-TOTO"/> carried in a DSSE envelope <xref target="DSSE"/>. Its <tt>predicateType</tt> is</t>
      <artwork><![CDATA[
=========== NOTE: "\" line wrapping per RFC 8792 ============

https://probityai.github.io/agent-evidence-vectors/predicate/v1/\
agent-audit-record
]]></artwork>
      <t>Seventeen required predicate members and one optional member are defined in <xref target="members"/>. Each of the seventeen is required unless a rule in that section makes it conditional, no member has a default, and a verifier <bcp14>MUST NOT</bcp14> supply one for an absent member (vectors <tt>F1</tt> and <tt>EV3</tt>). Two members are conditional on a sibling value, <tt>resource.argumentsDigest</tt> and <tt>correlation.externalAnchor</tt>, and each is specified where it is defined. The optional member is <tt>oversight</tt> (<xref target="oversight"/>); its absence says nothing about whether a person acted.</t>
      <t>A verifier <bcp14>MUST</bcp14> reject a value outside any closed vocabulary this document defines, and <bcp14>MUST NOT</bcp14> ignore the member (vector <tt>V1</tt>). The closed vocabularies reuse terms registered in <xref target="VOCABULARY"/>.</t>
      <t>A closed vocabulary is extended only by a revision of this document. Once a revision has frozen the predicate type URI (<xref target="iana"/>), a revision that adds a value to any closed vocabulary publishes the extended set under a new predicate type URI and leaves the set under the earlier URI unchanged, so a verifier never meets, under a URI it accepts, a value it is required to refuse. A verifier <bcp14>MUST NOT</bcp14> accept a value outside the set because it is well formed, prefixed, registered elsewhere or accompanied by a description. No closed vocabulary in this document carries a catch-all value such as <tt>other</tt>, because a catch-all satisfies the vocabulary while saying nothing two records can be compared on.</t>
      <section anchor="canonical">
        <name>Canonical form</name>
        <t>Two implementations derive the same bytes from the same Statement only if they agree on the serialization and on what makes a Statement malformed. Both are fixed below.</t>
        <section anchor="json-profile">
          <name>JSON profile</name>
          <t>Producers and verifiers <bcp14>MUST</bcp14> canonicalize the Statement with <xref target="RFC8785"/>, and the signature covers those bytes and no other serialization (vector <tt>T2</tt>). Producers and verifiers <bcp14>MUST</bcp14> enforce the <xref target="RFC7493"/> I-JSON safe-integer profile: an integer of magnitude at or above 2^53 makes the Statement malformed (vector <tt>T5</tt>).</t>
        </section>
        <section anchor="duplicate-members-and-nesting-depth">
          <name>Duplicate members and nesting depth</name>
          <t>A member name repeated at any depth makes the Statement malformed. A verifier <bcp14>MUST</bcp14> reject such a Statement and <bcp14>MUST NOT</bcp14> retain any one occurrence (vector <tt>T3</tt>). A Statement nested deeper than 128 levels <bcp14>MUST</bcp14> be rejected (vector <tt>T4</tt>).</t>
        </section>
      </section>
      <section anchor="subject">
        <name>Subject convention</name>
        <t>A record carries two subject entries. The first is the request, by digest: its <tt>name</tt> is the correlation identifier and its <tt>sha256</tt> digest is the request digest defined in <xref target="members"/>. The second is the after-state root of the interval the predicate carries, and its <tt>name</tt> is the first entry's <tt>name</tt> with the suffix <tt>/after</tt>.</t>
        <sourcecode type="json"><![CDATA[
"subject": [
  { "name": "urn:example:corr:7f3a",
    "digest": { "sha256": "9f86d081884c7d659a2feaa0c55ad015..." } },
  { "name": "urn:example:corr:7f3a/after",
    "digest": { "sha256": "60303ae22b998861bce3b28f33eec1be..." } }
]
]]></sourcecode>
        <t>A verifier <bcp14>MUST</bcp14> bind on the <tt>digest</tt> map and <bcp14>MUST NOT</bcp14> bind on either <tt>name</tt>. A name is a correlation identifier a producer chooses; a digest is a value a verifier recomputes from the bytes it holds. The names exist so that a reader can tell the two entries apart.</t>
        <t>The second entry <bcp14>MUST</bcp14> be present if and only if the predicate carries an interval (vectors <tt>S1</tt> and <tt>I1r</tt>), and its digest <bcp14>MUST</bcp14> equal the interval's after-state root (vector <tt>S2</tt>).</t>
        <t>A decision that permitted nothing, and a decision that was denied, still carry an interval whose before-state and after-state roots are equal and whose write set is empty (vector <tt>A2</tt>). A consumer therefore reads an absence of effect from the members of a record it holds, and never from a record it does not have.</t>
      </section>
      <section anchor="timestamps">
        <name>Timestamps and correlation</name>
        <t>Every time value in a record <bcp14>MUST</bcp14> be an <xref target="RFC3339"/> date-time. A producer <bcp14>SHOULD</bcp14> express it in UTC with the "Z" offset, so that two records from different deployments sort together without a conversion step. The correlation identifier is the first subject entry's <tt>name</tt>, so one identifier binds the request digest, the interval and the record.</t>
      </section>
      <section anchor="tamper">
        <name>Tamper-evidence</name>
        <t>A record satisfies the tamper-evidence requirement of Section 11 of <xref target="AIMS"/> when all three of the following hold.</t>
        <t>The DSSE pre-authentication encoding covers the <xref target="RFC8785"/> canonical bytes of the whole Statement, and every one of the seven minimum fields is inside that pre-image.</t>
        <artwork><![CDATA[
DSSE PAE = "DSSEv1" SP len("application/vnd.in-toto+json") SP
           "application/vnd.in-toto+json" SP
           len(JCS(statement)) SP JCS(statement)
]]></artwork>
        <t>The request digest, the ordered write chain of the effect, and both <tt>agreement</tt> values are recomputable from other members of the same record. A verifier therefore still refuses a record that the key holder altered and signed again (vector <tt>T1</tt>).</t>
        <t>The canonical form is fixed as in <xref target="canonical"/>, so two verifiers derive identical bytes from identical documents. Any one of the three failing is a refusal.</t>
        <t>The retention half of the Section 11 requirement is a property of a deployment, and a record cannot assert it about itself. A record under this document <bcp14>SHOULD</bcp14> state that in its <tt>doesNotAssert</tt> member, so that a reader need not infer coverage. <xref target="retained"/> defines what a retaining party keeps beside a record so that the record can still be dated and validated after its keys and algorithms age; how long a deployment keeps it remains the deployment's policy.</t>
      </section>
      <section anchor="mapping">
        <name>Mapping to the seven minimum fields</name>
        <table>
          <name>The seven minimum fields of Section 11 and the members that carry them</name>
          <thead>
            <tr>
              <th align="left">Section 11 field</th>
              <th align="left">Members</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">authenticated agent identifier</td>
              <td align="left">
                <tt>agent.id</tt>, <tt>agent.credentialDigest</tt>, <tt>agent.authentication</tt>, <tt>agent.signers</tt></td>
            </tr>
            <tr>
              <td align="left">delegated subject, when present</td>
              <td align="left">
                <tt>delegation.subject</tt>, <tt>delegation.subjectKind</tt>, <tt>delegation.authorityDigest</tt></td>
            </tr>
            <tr>
              <td align="left">resource or tool being accessed</td>
              <td align="left">
                <tt>resource.kind</tt>, <tt>resource.id</tt>, <tt>resource.binding</tt>, <tt>resource.argumentsDigest</tt></td>
            </tr>
            <tr>
              <td align="left">action requested and authorization decision</td>
              <td align="left">
                <tt>decision</tt>, <tt>evaluation</tt> and <tt>effect</tt>, with the derived <tt>agreement</tt>, and <tt>oversight</tt> when present</td>
            </tr>
            <tr>
              <td align="left">timestamp and correlation identifier</td>
              <td align="left">
                <tt>correlation</tt> and the interval timestamps</td>
            </tr>
            <tr>
              <td align="left">posture assessment or risk state</td>
              <td align="left">
                <tt>posture</tt>, carrying both vantages and <tt>assessedAt</tt></td>
            </tr>
            <tr>
              <td align="left">remediation or revocation events and cause</td>
              <td align="left">
                <tt>remediation</tt></td>
            </tr>
          </tbody>
        </table>
        <t>Each field also carries an evidence partition in <tt>fieldEvidence</tt>, stating whether the observing substrate covered the value or the producer asserted it. All seven fields can be recorded by an agent about itself. A record that says which ones were is checkable; a record that does not say is not.</t>
        <t>The fourth field pairs an action with a decision, and this format carries <tt>decision</tt>, <tt>effect</tt> and the derived <tt>agreement</tt> together. A record whose decision and effect disagree is well formed, and the disagreement is visible in signed bytes:</t>
        <sourcecode type="json"><![CDATA[
"decision": { "action": "write", "reported": "deny" },
"effect":   {
  "observed": "occurred",
  "writes": [ { "path": "/srv/ledger/settlements.jsonl" } ]
},
"agreement": "disagree"
]]></sourcecode>
        <t>A log that carries the decision alone records that case as a clean denial, because it has no other value to disagree with.</t>
      </section>
      <section anchor="verifying">
        <name>Verifying a record</name>
        <t>A verifier holds a DSSE envelope and reaches a verdict from the bytes inside it. The checks below are the ones this document has already stated, in the order a verifier can apply them without reading a member twice.</t>
        <t>The JSON profile comes first, applied while the payload is parsed: the safe-integer bound of <xref target="RFC7493"/>, no member name repeated at any depth, and no nesting past 128 levels. Each of the three makes a Statement malformed, so a verifier that finds one of them has nothing further to check. It has to come first because the signature covers <xref target="RFC8785"/> bytes, and a verifier derives those bytes from the parsed Statement: a parser that keeps one occurrence of a repeated name has already done what <xref target="canonical"/> forbids before any signature is checked (vector <tt>T3</tt>).</t>
        <t>The envelope's signature comes second, over the <xref target="RFC8785"/> canonical bytes of the Statement that parse produced. A statement whose signature does not verify over those bytes is malformed, and nothing further is read from it. That includes a statement signed over the bytes it carries, which is what a DSSE verifier that does not derive the canonical form checks (vector <tt>T2</tt>).</t>
        <t>Membership comes third. Every one of the seventeen required members is present unless a rule in <xref target="members"/> makes it conditional on a sibling value, and every value sits inside the closed vocabulary its member declares.</t>
        <t>The recomputes come next, and a signature cannot supply them. The three that <xref target="tamper"/> requires come first: a verifier derives the request digest from the four members <xref target="members"/> names and compares it with the first subject entry, it replays the write chain from the before-state root and compares the result with the second subject entry, and it derives both agreement values from the members they are functions of.</t>
        <t>A fourth recompute binds the prior commitment rather than the record's content. A verifier recomputes the commitment digest, checks that the commitment precedes the interval, and checks that the commitment key is absent from <tt>agent.signers</tt>. A fifth derives, from <tt>evaluation.inputs</tt>, the set of inputs that were stale or never established at <tt>decision.reportedAt</tt>, and compares it with <tt>evaluation.status</tt> and <tt>unavailableInput</tt> (<xref target="evaluation"/>).</t>
        <t>The tier follows from those results. A verifier reads the five clauses of <xref target="observation"/> against the members it has just checked and assigns <tt>authoritative</tt> or <tt>voluntary</tt> itself.</t>
        <t>A verifier that holds a retained record (<xref target="retained"/>) applies one more check, the dating check, after all of the above. It validates each anchor over the envelope digest under the offline rule for its kind, takes the time of the earliest anchor that validates as the time the record is established to have existed, and, for a record received from another party, checks the stated receipt time against the bracket <xref target="retained"/> defines. The dating check produces its own result beside the record's verdict: an envelope that is well formed stays well formed when none of its anchors validates, and it is then simply not dated.</t>
        <t>This document requires no particular order beyond the first two checks, and no particular reporting shape. A verifier that stops at the first failure and a verifier that reports every failure are both conformant.</t>
      </section>
      <section anchor="retained">
        <name>Retained records</name>
        <t>A record's signature says who signed it and nothing about when. A party that keeps a record as evidence therefore keeps a retention entry beside the envelope: a JSON object under the profile of <xref target="canonical"/>, which the producer did not sign and which this section defines. A retaining party <bcp14>MAY</bcp14> keep the entry in any container. The entry carries no predicate member and changes none, so a record's verdict under <xref target="verifying"/> never depends on it.</t>
        <sourcecode type="json"><![CDATA[
{
  "envelopeDigest": "...",
  "received": true,
  "receivedAt": "2026-09-19T11:04:20Z",
  "anchorWithin": 300,
  "anchors": [
    { "kind": "rfc3161", "origin": "retainer", "proof": "..." },
    { "kind": "transparency-log", "origin": "received",
      "proof": "..." }
  ],
  "validationData": [
    { "for": "envelope", "mediaType": "application/pkix-cert",
      "value": "..." },
    { "for": 0, "mediaType": "application/pkix-cert",
      "value": "..." }
  ]
}
]]></sourcecode>
        <t><tt>envelopeDigest</tt> is the digest, under the record's <tt>hashAlgorithm</tt>, of the <xref target="RFC8785"/> canonical bytes of the DSSE envelope object, so it covers the payload and every signature. Every anchor in the entry is over this value.</t>
        <t><tt>anchors</tt> is an array in the order the retaining party obtained its members. A retaining party appends to it and never removes from it. Each anchor carries <tt>kind</tt>, one of the three values of <tt>correlation.externalAnchor.kind</tt> (<xref target="correlation"/>); <tt>origin</tt>, one of <tt>retainer</tt> and <tt>received</tt>; and <tt>proof</tt>, the base64 of the time-stamp token, inclusion proof or OpenTimestamps proof. An anchor of origin <tt>retainer</tt> is one the retaining party obtained itself, and one of origin <tt>received</tt> arrived with the record from the party that sent it. The entry carries no time and no algorithm family for an anchor: a verifier derives both from the proof when it validates it (<xref target="anchor-rules"/>), and <bcp14>MUST NOT</bcp14> read either from anywhere else.</t>
        <t><tt>validationData</tt> carries what a verifier needs to validate the envelope's signature and each anchor offline, after the sources it came from may be gone: the certification path or key set of the record's signing key, status information as the retaining party obtained it, and each time-stamping authority's own path and status. Each element names what it is for, either <tt>envelope</tt> or the zero-based index of an anchor, gives a media type, and carries the value in base64. Where status information was already unobtainable when the retaining party first anchored the record, the entry carries no status element for it, and that absence is the record of the fact.</t>
        <t>The member <tt>received</tt> is <tt>true</tt> for a record the retaining party received from another party and <tt>false</tt> for one it produced. The member <tt>receivedAt</tt> is the time the retaining party states it received the record. It is present if and only if <tt>received</tt> is <tt>true</tt>, and an entry that carries it beside <tt>received</tt> of <tt>false</tt>, or omits it beside <tt>received</tt> of <tt>true</tt>, is malformed (vector <tt>R9</tt>). The member <tt>anchorWithin</tt> is the maximum interval, in seconds, that the retaining party commits to between issuance, or receipt for a received record, and its own first anchor.</t>
        <section anchor="dating">
          <name>The dating check</name>
          <t>A verifier validates each anchor under <xref target="anchor-rules"/>. The established time of the record is the time of the earliest anchor, of either origin, that validates over <tt>envelopeDigest</tt>. An anchor that does not validate dates nothing and makes nothing malformed (vector <tt>R8</tt>). No issuance time a record states establishes when it existed.</t>
          <t>A retaining party that sets <tt>received</tt> to <tt>true</tt> <bcp14>MUST</bcp14> obtain an anchor of origin <tt>retainer</tt> on receipt, within the <tt>anchorWithin</tt> it declares, and an entry with <tt>received</tt> of <tt>true</tt> and no such anchor is malformed (vector <tt>R4</tt>). The retention time is the time of the earliest anchor of origin <tt>retainer</tt> that validates. A verifier <bcp14>MUST</bcp14> reject the entry as malformed when any of these holds:</t>
          <ul spacing="normal">
            <li>
              <t><tt>receivedAt</tt> is earlier than the record's <tt>issuedAt</tt> by more than the skew tolerance (vector <tt>R6</tt>);</t>
            </li>
            <li>
              <t><tt>receivedAt</tt> is later than the retention time by more than the skew tolerance (vector <tt>R3</tt>);</t>
            </li>
            <li>
              <t>the retention time is later than <tt>receivedAt</tt>, or than <tt>issuedAt</tt> for a record the retaining party produced, by more than <tt>anchorWithin</tt> plus the skew tolerance (vector <tt>R7</tt>).</t>
            </li>
          </ul>
          <t>A malformed entry does not change the envelope's verdict. A relying party <bcp14>MUST NOT</bcp14> apply an allowance it grants to received records, such as dating a record from its receipt, on a malformed entry or on an entry in which no anchor of origin <tt>retainer</tt> validates.</t>
          <t>This check is a consistency check, not proof of receipt. Its lower edge, <tt>issuedAt</tt>, is a value the sender signed, and the signature binds the value without saying anything about the sender's clock. Its upper edge is an anchor over a digest, which shows only that the retaining party held the digest by that time, and a retaining party can hold the digest before the envelope arrives. A digest anchored before delivery therefore does not establish when the retaining party received the record. A verifier <bcp14>MUST</bcp14> report a <tt>receivedAt</tt> that passes the check as asserted and consistent with the anchors, and <bcp14>MUST NOT</bcp14> report it as established (vector <tt>R5</tt>). The check rests on two assumptions, stated so that a relying party can decide whether it holds them: that the sender's clock was correct when it signed, and that the retaining party anchored on delivery and not before.</t>
          <t>A retaining party also chooses when it anchors. One that anchors late can state a correspondingly late receipt, and nothing in the entry contradicts it, because the bracket's upper edge is an anchor whose time the retaining party chose. The check removes the cheaper case, a receipt time stated with no anchor at all, and what remains is an assumption that the retaining party anchored promptly after the true receipt, within the <tt>anchorWithin</tt> it declared. That assumption is narrower than trusting the retaining party's statement of receipt, and no function of the entry tests it.</t>
        </section>
        <section anchor="anchor-rules">
          <name>Anchor validation rules</name>
          <t>Each kind of anchor rests on one of two bases. A hash commitment is validated by recomputation to a value the verifier holds independently, and a signed token is validated by a signature under a path the verifier trusts.</t>
          <dl>
            <dt><tt>rfc3161</tt>:</dt>
            <dd>
              <t>a signed token. It validates when its message imprint equals <tt>envelopeDigest</tt> and its signature verifies under the time-stamping authority's certificate, by a certification path in <tt>validationData</tt> from that certificate to a trust anchor the verifier holds. Its time is the token's genTime.</t>
            </dd>
            <dt><tt>transparency-log</tt>:</dt>
            <dd>
              <t>an inclusion proof that recomputes from <tt>envelopeDigest</tt> to a tree head. It is a hash commitment when the verifier holds that tree head by a means other than its signature, such as a checkpoint the verifier already witnessed, and a signed token otherwise: it then validates when the tree head's signature verifies under the log's key, by a key or path in <tt>validationData</tt> that the verifier trusts. Its time is the tree head's timestamp.</t>
            </dd>
            <dt><tt>opentimestamps</tt>:</dt>
            <dd>
              <t>a hash commitment. It validates when the proof recomputes from <tt>envelopeDigest</tt> to a commitment the verifier holds independently, and its time is that commitment's time.</t>
            </dd>
          </dl>
          <t>An anchor rests only on post-quantum assumptions when its validity rests on no quantum-vulnerable algorithm: a hash commitment under a hash with an output of at least 256 bits, or a signed token whose signature and whole path use post-quantum signature algorithms. A verifier derives this from the proof and the path. A retaining party <bcp14>SHOULD</bcp14> hold at least one anchor that rests only on post-quantum assumptions, and <bcp14>SHOULD</bcp14> append a new anchor on a schedule its policy sets, before the algorithms protecting its existing anchors weaken, using the renewal procedures of <xref target="RFC4998"/> or an equivalent. Where a relying party requires post-quantum anchoring from a transition date, as <xref target="PQ-AGENT-ID"/> proposes, this section supplies the anchors, their order and the material to validate each one, and the date is the relying party's.</t>
        </section>
      </section>
    </section>
    <section anchor="members">
      <name>Predicate members</name>
      <sourcecode type="json"><![CDATA[
{
  "recordId": "...",
  "tier": "authoritative",
  "hashAlgorithm": "sha256",
  "agent": {
    "id": "spiffe://prod.example.org/ns/payments/sa/reconciler",
    "credentialDigest": "...",
    "authentication": "wimse-wpt",
    "signers": ["..."]
  },
  "delegation": {
    "subject": "user:alice@example.org",
    "subjectKind": "user",
    "authorityDigest": "..."
  },
  "resource": {
    "kind": "tool",
    "id": "mcp://files/write",
    "binding": "digest-bound",
    "argumentsDigest": "..."
  },
  "decision": {
    "action": "write",
    "requestDigest": "...",
    "reported": "deny",
    "decisionPointId": "pdp://prod.example.org/authz-1",
    "policyDigest": "...",
    "reportedAt": "2026-09-19T11:04:02Z"
  },
  "evaluation": {
    "status": "evaluated",
    "inputs": [
      { "input": "policy-source",
        "lastResult": "2026-09-19T10:00:00Z", "maxAge": 86400 },
      { "input": "standing-source",
        "lastResult": "2026-09-19T11:00:00Z", "maxAge": 3600 }
    ]
  },
  "effect": {
    "observed": "occurred",
    "interval": {
      "beforeRoot": "...",
      "afterRoot": "...",
      "baseResolution": "supplied",
      "openedAt": "2026-09-19T11:04:01Z",
      "sealedAt": "2026-09-19T11:04:06Z"
    },
    "pathScope": ["/srv/ledger/"],
    "writes": [
      {
        "path": "/srv/ledger/settlements.jsonl",
        "preStateDigest": "...",
        "postStateDigest": "...",
        "requestDigest": "...",
        "inScope": true
      }
    ]
  },
  "agreement": "disagree",
  "correlation": {
    "id": "req:7f3a91c4",
    "scope": "cross-party",
    "timeBasis": "beacon-anchored",
    "externalAnchor": { "kind": "rfc3161", "digest": "..." }
  },
  "posture": {
    "reported": "sinkhole",
    "reportedDigest": "...",
    "observed": "allowlist",
    "observedDigest": "...",
    "assessedAt": "2026-09-19T06:00:00Z",
    "agreement": "disagree"
  },
  "remediation": [
    {
      "cause": "session-revoked",
      "signalReceivedAt": "2026-09-19T11:04:07Z",
      "enforcedAt": "2026-09-19T11:04:09Z",
      "enforcement": "session-terminated",
      "postEnforcementEffect": "none",
      "postEnforcementRoot": "..."
    }
  ],
  "observation": {
    "vantage": "below-observed",
    "coverage": { "scopeComplete": true, "gaps": [] },
    "priorCommitment": {
      "committedAt": "2026-09-19T11:03:58Z",
      "witnessNonce": "...",
      "commitmentDigest": "...",
      "keyid": "...",
      "sig": "..."
    }
  },
  "fieldEvidence": {
    "agent": "producer-asserted",
    "correlation": "producer-asserted",
    "decision": "producer-asserted",
    "delegation": "producer-asserted",
    "posture": "substrate-covered",
    "remediation": "substrate-covered",
    "resource": "substrate-covered"
  },
  "doesNotAssert": ["..."],
  "issuedAt": "2026-09-19T11:04:11Z"
}
]]></sourcecode>
      <section anchor="hashalg">
        <name>Record identity and hash algorithm</name>
        <t><tt>recordId</tt> is the producer's identifier for this record. It is opaque to a verifier except where the commitment digest is recomputed, which reads it as one of its four inputs.</t>
        <t><tt>hashAlgorithm</tt> names the algorithm every digest in the record is taken under. One value governs the whole record: the subject digests, the credential, authority, policy and posture digests, the interval roots, the write pre-state and post-state digests, and the commitment digest are all taken under it.</t>
        <t>A record carrying digests in two algorithms is therefore not representable, and that is the point. A verifier comparing two roots has to know they were taken under the same algorithm, and a per-member choice would let a producer choose which comparison a reader could make.</t>
        <t><tt>issuedAt</tt> is the time the producer sealed the record, and it is at or after the interval's <tt>sealedAt</tt> because the record cannot be issued before the interval it describes has closed.</t>
        <t>A verifier that does not implement the declared algorithm cannot recompute anything the record binds. It has no verdict to reach on such a record, and reporting that it could not read one is the honest outcome rather than a refusal on the record's content.</t>
      </section>
      <section anchor="identity-delegation-and-resource">
        <name>Identity, delegation and resource</name>
        <t><tt>agent.id</tt> carries the WIMSE identifier verbatim, and <tt>agent.credentialDigest</tt> the digest of the credential the identifier was read from. <tt>agent.authentication</tt> is the mechanism, over the closed set <tt>wimse-wpt</tt>, <tt>http-message-signature</tt>, <tt>mtls</tt>, <tt>oauth-access-token</tt>, <tt>none</tt>, drawn from Section 9 of <xref target="AIMS"/>. <tt>agent.signers</tt> is the set of key identifiers the agent signs its own records with, as the observer knows them, and it <bcp14>MAY</bcp14> be empty.</t>
        <t><tt>delegation.subjectKind</tt> is one of <tt>user</tt>, <tt>system</tt>, <tt>none</tt>. Field 2 of Section 11 is the only conditional one, so an absent delegated subject is conformant and is spelled <tt>subjectKind</tt> of <tt>none</tt> beside a <tt>subject</tt> of the literal <tt>none</tt>.</t>
        <t>A <tt>subjectKind</tt> of <tt>none</tt> beside any other subject value is malformed and a verifier <bcp14>MUST NOT</bcp14> prefer either member (vector <tt>F2</tt>). <tt>delegation.authorityDigest</tt> is required unconditionally, and a decision taken under no authority carries the digest of the explicit deny-all document.</t>
        <t><tt>resource.kind</tt> is one of <tt>path</tt>, <tt>uri</tt>, <tt>tool</tt>, the three shapes the single category of external endpoints in Section 4 of <xref target="AIMS"/> takes. <tt>resource.binding</tt> of <tt>digest-bound</tt> <bcp14>MUST</bcp14> carry <tt>argumentsDigest</tt>, and <tt>not-bindable</tt> <bcp14>MUST NOT</bcp14> carry it in any spelling, including <tt>null</tt> and the empty string (vectors <tt>F3</tt>, <tt>F3b</tt> and <tt>F3c</tt>).</t>
        <t>Where a decision point can canonicalize the arguments of a call, it <bcp14>SHOULD</bcp14> bind them by digest. A tool call whose arguments it cannot canonicalize has nothing to bind, so that call is representable and it cannot reach the strongest tier.</t>
      </section>
      <section anchor="decision-effect-and-agreement">
        <name>Decision, effect and agreement</name>
        <t><tt>decision.reported</tt> is one of <tt>permit</tt>, <tt>deny</tt>, <tt>permit-with-conditions</tt>. <tt>decision.requestDigest</tt> <bcp14>MUST</bcp14> equal the first subject entry's sha256 digest and <bcp14>MUST</bcp14> equal the <xref target="RFC8785"/> digest over the members <tt>action</tt>, <tt>argumentsDigest</tt>, <tt>resourceId</tt> and <tt>resourceKind</tt> (vector <tt>F4</tt>). The hashed object holds <tt>argumentsDigest</tt> exactly when <tt>resource.binding</tt> is <tt>digest-bound</tt>. Under <tt>not-bindable</tt> it holds the other three members and no <tt>argumentsDigest</tt> member at all, so every conforming implementation derives one digest for a given request (vector <tt>A6</tt>). Altering the action, the resource or the arguments after signing therefore breaks a recompute even where the signature was applied again.</t>
        <t>Each write carries <tt>requestDigest</tt>: the request digest of the request the observer attributes the write to, or the literal <tt>unattributed</tt> where the observer cannot attribute it. An attribution is an observation, and an observer that cannot tie a write to a request says so rather than guessing.</t>
        <t><tt>effect.observed</tt> describes this record's request, not the whole interval, and it is one of <tt>occurred</tt>, <tt>none</tt>, <tt>unknown</tt>. It <bcp14>MUST</bcp14> be derivable from the write set: <tt>occurred</tt> when at least one write is attributed to <tt>decision.requestDigest</tt>; <tt>none</tt> when no write is attributed to it and no <tt>unattributed</tt> write lies inside <tt>pathScope</tt>; and <tt>unknown</tt> otherwise. A write attributed to a different request belongs to that request's record and does not enter this one's value (vectors <tt>A7</tt> and <tt>T1</tt>). A value of <tt>none</tt> beside a write attributed to this record's request is malformed (vector <tt>E1</tt>).</t>
        <t>The ordered write chain <bcp14>MUST</bcp14> reproduce the after-state root from the before-state root. A verifier replays it with a running root that starts at <tt>beforeRoot</tt>. Each write in <tt>effect.writes</tt>, in array order and whatever its <tt>requestDigest</tt> or <tt>inScope</tt>, <bcp14>MUST</bcp14> carry a <tt>preStateDigest</tt> equal to the running root, and its <tt>postStateDigest</tt> then becomes the running root. The running root after the last write <bcp14>MUST</bcp14> equal <tt>afterRoot</tt>, so a record with no write carries equal roots. Vector <tt>E4</tt> breaks only the start, <tt>E2</tt> a link between two writes, <tt>E5</tt> only the end, and <tt>E6</tt> is the case with no write. A <tt>baseResolution</tt> of <tt>empty-tree</tt> <bcp14>MUST</bcp14> carry the empty-tree constant for the declared hash algorithm (vector <tt>E3</tt>).</t>
        <t>A member of <tt>pathScope</tt> <bcp14>MUST NOT</bcp14> contain a glob metacharacter, and a universal scope is the single literal <tt>/</tt> (vector <tt>V2</tt>). A write outside <tt>pathScope</tt> <bcp14>MUST</bcp14> carry <tt>inScope</tt> of <tt>false</tt>, which is derived from the path and never a producer opinion (vector <tt>V3</tt>).</t>
        <t><tt>agreement</tt> is one of <tt>agree</tt>, <tt>disagree</tt>, <tt>not-exercised</tt>, <tt>indeterminate</tt>, <tt>one-sided</tt>, and it <bcp14>MUST</bcp14> be derivable from <tt>decision.reported</tt> and <tt>effect.observed</tt> by the table below (vectors <tt>D1</tt>, <tt>D2</tt> and <tt>D3</tt>). <tt>posture.agreement</tt> <bcp14>MUST</bcp14> be derivable from the two carried postures on the same terms: <tt>agree</tt> when they are equal byte for byte, <tt>disagree</tt> when both are present and unequal (vector <tt>F6</tt>).</t>
        <table>
          <name>Deriving agreement from the reported decision and the observed effect</name>
          <thead>
            <tr>
              <th align="left">decision.reported</th>
              <th align="left">effect.observed</th>
              <th align="left">agreement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>permit</tt> or <tt>permit-with-conditions</tt></td>
              <td align="left">
                <tt>occurred</tt></td>
              <td align="left">
                <tt>agree</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>deny</tt></td>
              <td align="left">
                <tt>none</tt></td>
              <td align="left">
                <tt>agree</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>deny</tt></td>
              <td align="left">
                <tt>occurred</tt></td>
              <td align="left">
                <tt>disagree</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>permit</tt> or <tt>permit-with-conditions</tt></td>
              <td align="left">
                <tt>none</tt></td>
              <td align="left">
                <tt>not-exercised</tt></td>
            </tr>
            <tr>
              <td align="left">any</td>
              <td align="left">
                <tt>unknown</tt></td>
              <td align="left">
                <tt>indeterminate</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A permit allows an action and does not require it, so a permitted call that failed or was never made is <tt>not-exercised</tt>, and a deny that leaked is <tt>disagree</tt>. The two are different facts and an incident review needs to tell them apart (vector <tt>A9</tt>). An unattributed write inside <tt>pathScope</tt> leaves the observer unable to rule the request's effect in or out, so the record says <tt>indeterminate</tt> rather than choosing (vector <tt>A8</tt>).</t>
        <t>The table never produces <tt>one-sided</tt>. <tt>one-sided</tt> is in the closed set and this version never produces it, because <tt>decision</tt> and <tt>effect</tt> are both required and neither side can be absent. It is reserved so that a version admitting a record with one side missing does not have to change a closed vocabulary, and a record carrying it under this version is malformed (vector <tt>D2</tt>).</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> reject a record because either agreement value is <tt>disagree</tt>, <tt>not-exercised</tt> or <tt>indeterminate</tt> (vectors <tt>A3</tt>, <tt>A8</tt> and <tt>A9</tt>). A disagreement is the record working, and what it means for admission is a consumer policy decision.</t>
      </section>
      <section anchor="evaluation">
        <name>Evaluation</name>
        <t><tt>evaluation</tt> says whether the decision point evaluated the request, and how fresh each input it relied on was. <tt>evaluation.status</tt> is one of <tt>evaluated</tt>, <tt>not-evaluated</tt> (vector <tt>EV11</tt>). A decision point records <tt>evaluated</tt> when its reported decision does not depend on any input it could not obtain, and <tt>not-evaluated</tt> otherwise. Where delegation paths are judged independently (Section 4.2 of <xref target="EVALUATION"/>), a permit on a fully valid path is <tt>evaluated</tt> even when an input for another path was unavailable, because no value of that input could change the decision. A deny is <tt>not-evaluated</tt> whenever a path the decision point could not judge might have been valid.</t>
        <t><tt>decision.reported</tt> always records what the decision point enforced. Under <tt>evaluated</tt> it is the outcome of evaluating the policy. Under <tt>not-evaluated</tt> it is the outcome the decision point fell back to, and it is the member that says whether the decision point failed closed (<tt>deny</tt>) or failed open (<tt>permit</tt> or <tt>permit-with-conditions</tt>). A record from a decision point that lost an input and denied therefore carries <tt>deny</tt>, and beside an effect of <tt>none</tt> derives <tt>agree</tt>. Without <tt>evaluation</tt> that record is byte for byte the record of a correctly enforced denial (vectors <tt>A2</tt> and <tt>A10</tt>), and an incident review cannot tell the two apart. <tt>decision.policyDigest</tt> names the policy the decision point enforced. Where the policy was the unavailable input, the decision point cannot name that policy's digest, so <tt>decision.policyDigest</tt> is the digest of the fallback it applied, as <tt>delegation.authorityDigest</tt> names the deny-all document for a decision taken under no authority (vectors <tt>A18</tt> and <tt>A20</tt>). A decision point that holds the profile a request names and finds that it grants no comparison has evaluated the request, and records <tt>evaluated</tt> with <tt>deny</tt> (vector <tt>A2</tt>); one that does not hold the profile records <tt>not-evaluated</tt> with <tt>policy-source</tt> (vector <tt>A20</tt>).</t>
        <t><tt>evaluation.inputs</tt> is required under both statuses (vector <tt>EV13</tt>). It is an array with one entry for each input the reported decision depended on, each input named at most once (vector <tt>FR10</tt>). An entry carries exactly three members, each required (vectors <tt>FR5</tt> and <tt>FR6</tt>), and no other (vector <tt>FR11</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>input</tt>, a value from the closed set in the table below (vector <tt>FR12</tt>);</t>
          </li>
          <li>
            <t><tt>lastResult</tt>, the time at which the source produced the last value of that input the decision point held, or the literal <tt>none</tt> if it never held one;</t>
          </li>
          <li>
            <t><tt>maxAge</tt>, the maximum age in seconds, a non-negative integer, that the decision point applies to that input (vector <tt>FR13</tt>).</t>
          </li>
        </ul>
        <t>The reference time for every entry is <tt>decision.reportedAt</tt>, the time the decision point reported its decision. An input's age is <tt>decision.reportedAt</tt> minus <tt>lastResult</tt>. An input is fresh when its age is at most <tt>maxAge</tt>, so an age equal to <tt>maxAge</tt> is fresh (vector <tt>FR2</tt>); it is stale when its age is greater (vector <tt>FR3</tt>); and it was never established when <tt>lastResult</tt> is <tt>none</tt> (vectors <tt>A10</tt> and <tt>FR4</tt>). A <tt>lastResult</tt> later than <tt>decision.reportedAt</tt> by more than the skew tolerance is malformed, because a decision cannot rest on a value produced after it was reported (vector <tt>FR9</tt>). Where the decision depended on more than one value of one input, as when several delegation paths are judged, the entry carries the oldest <tt>lastResult</tt> among them, <tt>none</tt> if any was never held, and the smallest <tt>maxAge</tt>. A permit on a fully valid path depends only on the values that path used, so its entries carry those values and not the values of the other paths. <tt>issuedAt</tt> is the time the record was sealed, and it is not a reference time for any input.</t>
        <t>A held value older than the maximum age the decision point applies to its input is one it could not obtain, as Section 3.5 of <xref target="EVALUATION"/> treats standing that cannot be established within the pinned maximum age. The entries are therefore enough to derive the unavailable inputs, and a verifier derives them: the set of entries that are stale or were never established. Under <tt>evaluated</tt> that set <bcp14>MUST</bcp14> be empty (vector <tt>FR8</tt>). Under <tt>not-evaluated</tt> the member <bcp14>MUST</bcp14> carry <tt>unavailableInput</tt>, a non-empty array naming each input of that set exactly once and no other (vectors <tt>EV1</tt>, <tt>EV5</tt>, <tt>EV6</tt>, <tt>EV7</tt> and <tt>FR7</tt>), from the closed set in the table below (vector <tt>EV4</tt>). Under <tt>evaluated</tt> it <bcp14>MUST NOT</bcp14> carry <tt>unavailableInput</tt> in any spelling, including <tt>null</tt>, the empty array and the empty string (vectors <tt>EV2</tt>, <tt>EV8</tt>, <tt>EV9</tt> and <tt>EV10</tt>). No member other than <tt>status</tt>, <tt>inputs</tt> and <tt>unavailableInput</tt> is defined, and a verifier <bcp14>MUST</bcp14> reject an <tt>evaluation</tt> member carrying one (vector <tt>EV12</tt>). A free-text reason beside the closed set would name an input no other record can be compared with.</t>
        <t>A decision point that receives an input's value from another hop, rather than from its source, copies the source's <tt>lastResult</tt> into its entry unchanged, so the input's age runs from the source and not from the hop (vectors <tt>FR1</tt>, <tt>FR3</tt> and <tt>FR4</tt>). It applies its own <tt>maxAge</tt> in its own record. A hop that later obtains an input an earlier record named as unavailable writes a new record with its own evaluation, and never amends the earlier record, which its producer's signature has sealed. An entry carries what REQ-4 of <xref target="EVALUATION-STATE"/> asks a decision point to record for each input, its as-of time and whether it was accepted, stale or never established, and a forwarded entry carries what REQ-6 asks a hop to preserve: the input name, its evaluation state and its freshness bound.</t>
        <table>
          <name>The inputs an evaluation entry or unavailableInput names</name>
          <thead>
            <tr>
              <th align="left">input</th>
              <th align="left">what it names</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>standing-source</tt></td>
              <td align="left">the source issuer standing is established from (Section 3.5 of <xref target="EVALUATION"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>key-source</tt></td>
              <td align="left">the source of the issuer or evaluator keys a decision verifies under (Section 3.4 of <xref target="EVALUATION"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>consumption-state</tt></td>
              <td align="left">the record of which approvals have been consumed (Section 4.3 of <xref target="EVALUATION"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policy-source</tt></td>
              <td align="left">the policy the decision point evaluates the request against, including a profile the request names that the decision point does not hold</td>
            </tr>
          </tbody>
        </table>
        <t>The first three are the inputs Section 5 of <xref target="EVALUATION"/> names as making a refusal transient. A refusal that document classifies as transient is recorded as <tt>not-evaluated</tt>, naming the inputs that were unavailable. A refusal it classifies as permanent (an unsupported entry type, a signature that does not verify, an expired grant, an issuer whose standing is withdrawn) is recorded as <tt>evaluated</tt> with <tt>deny</tt>. The record then carries what Section 5 requires a verifier's own record of a refusal to carry, and what the caller is told is unaffected.</t>
        <sourcecode type="json"><![CDATA[
"decision":   { "action": "write", "reported": "deny",
                "reportedAt": "2026-09-19T11:04:02Z" },
"evaluation": {
  "status": "not-evaluated",
  "inputs": [
    { "input": "policy-source",
      "lastResult": "2026-09-19T10:00:00Z", "maxAge": 86400 },
    { "input": "standing-source",
      "lastResult": "2026-09-19T09:30:00Z", "maxAge": 3600 }
  ],
  "unavailableInput": ["standing-source"]
},
"effect":     { "observed": "none", "writes": [] },
"agreement":  "agree"
]]></sourcecode>
        <t>The record above is a decision point whose last standing value was 5642 seconds old against a maximum of 3600, and which failed closed. Its <tt>agreement</tt> is <tt>agree</tt>, because the deny held, and its <tt>evaluation</tt> says the deny was not a policy outcome and which input was stale.</t>
        <t><tt>evaluation</tt> is not an input to <tt>agreement</tt>. "Could not evaluate" is not a decision, so it is not a fourth value of <tt>decision.reported</tt>, and the agreement table is unchanged: a deny enforced during an outage that leaked anyway is still <tt>disagree</tt> (vector <tt>A19</tt>). A verifier <bcp14>MUST NOT</bcp14> reject a record because <tt>evaluation.status</tt> is <tt>not-evaluated</tt>, whatever <tt>decision.reported</tt> and <tt>agreement</tt> are (vectors <tt>A10</tt>, <tt>A12</tt> to <tt>A14</tt>, and <tt>A18</tt> to <tt>A20</tt>). A permit recorded as <tt>not-evaluated</tt> is a decision point failing open, and the format represents it so that it can be found (vector <tt>A18</tt>). The evidence class of <tt>evaluation</tt> is the one <tt>fieldEvidence</tt> declares for <tt>decision</tt>.</t>
      </section>
      <section anchor="oversight">
        <name>Oversight</name>
        <t><tt>oversight</tt> is optional. When present it records the kind of act a person took on this request before or at the decision, so that a permit bound to a user confirmation (Section 10.7 of <xref target="AIMS"/>) says whether that person observed the request, checked a stated property of it, chose, or released an action already within authority they held. The four kinds are those of <xref target="OVERSIGHT-ACTS"/>, Sections 2.3 to 2.9.</t>
        <t><tt>oversight.act</tt> is required in the member and is one of <tt>observation</tt>, <tt>check</tt>, <tt>decision</tt>, <tt>release</tt> (vector <tt>OV1</tt>). <tt>oversight.recordDigest</tt> is optional and, when present, is the digest of the overseer's own signed record, bound as <tt>delegation.authorityDigest</tt> binds the authority document. No other member is defined, and a verifier <bcp14>MUST</bcp14> reject an <tt>oversight</tt> member carrying one (vector <tt>OV2</tt>). The act is producer-asserted: its evidence class is the one <tt>fieldEvidence</tt> declares for <tt>decision</tt>, and a verifier does not resolve <tt>recordDigest</tt>.</t>
      </section>
      <section anchor="correlation">
        <name>Correlation, posture and remediation</name>
        <t><tt>correlation.scope</tt> is one of <tt>producer</tt>, <tt>cross-party</tt>, and it is required because Section 11 asks systems to "correlate events across Agents, Tools, Services, Resources and LLMs", which a producer-scoped identifier cannot do. A record a producer distributes beyond its own deployment <bcp14>SHOULD</bcp14> carry a scope of <tt>cross-party</tt>.</t>
        <t><tt>correlation.timeBasis</tt> of <tt>beacon-anchored</tt> <bcp14>MUST</bcp14> carry <tt>externalAnchor</tt>, and <tt>asserted</tt> <bcp14>MUST NOT</bcp14> carry it (vector <tt>F5</tt>). <tt>externalAnchor.kind</tt> is one of <tt>rfc3161</tt>, <tt>transparency-log</tt>, <tt>opentimestamps</tt>, of which <xref target="RFC3161"/> and <xref target="RFC9162"/> define the first two. <tt>externalAnchor.digest</tt> is the digest of the anchor's proof and not the proof, so a verifier that holds only the record cannot validate the anchor. Such a verifier reads <tt>beacon-anchored</tt> as a statement the producer made, accepts the record, and does not date it from the anchor (vector <tt>N1</tt>). A record is dated from the anchors of a retention entry (<xref target="retained"/>), which are over the envelope digest and are validated under the rules in <xref target="anchor-rules"/>. The record's verdict and its dating are two results, and a verifier reports them separately, so vector <tt>N1</tt> has one conforming verdict where draft-gilda-wimse-agent-audit-record-02 admitted two.</t>
        <t><tt>posture.reported</tt> and <tt>posture.observed</tt> are over the closed set <tt>no_network</tt>, <tt>allowlist</tt>, <tt>sinkhole</tt>, <tt>unsafe_bypass_egress</tt>, each with a digest pinning the posture document. <tt>posture.assessedAt</tt> carries the time the assessment was made, which <xref target="rationale"/> gives the reason for. A consumer weighing either posture <bcp14>SHOULD</bcp14> read <tt>assessedAt</tt> beside it.</t>
        <t><tt>remediation</tt> carries one member per event. Its <tt>cause</tt> is one of <tt>session-revoked</tt>, <tt>risk-elevated</tt>, <tt>subject-disabled</tt>, <tt>token-replay-suspected</tt>, <tt>policy-changed</tt>, <tt>operator-action</tt>. Its <tt>enforcement</tt> is one of <tt>access-attenuated</tt>, <tt>session-terminated</tt>, <tt>tokens-discarded</tt>, <tt>privileges-reduced</tt>, <tt>reevaluated</tt>, <tt>not-enforced</tt>. In each member <tt>enforcedAt</tt> <bcp14>MUST</bcp14> be at or after <tt>signalReceivedAt</tt> (vector <tt>F7</tt>).</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> reject a record because <tt>enforcement</tt> is <tt>not-enforced</tt> (vector <tt>A4</tt>). A record carries that value when a remediation signal arrived and enforcement did not follow it.</t>
        <t><tt>postEnforcementEffect</tt> and <tt>postEnforcementRoot</tt> make the Section 11 delay requirement checkable by a third party. A revocation that arrived, was recorded, and was followed by an observed effect is a recorded enforcement failure. This document defines no bound on the delay, because Section 11 carries no unit for "undue", and vector <tt>N2</tt> records that case as indeterminate.</t>
      </section>
      <section anchor="observation">
        <name>Observation and tier</name>
        <t><tt>observation.vantage</tt> is one of <tt>below-observed</tt>, <tt>peer</tt>, <tt>self</tt>. An observer that could not read part of <tt>pathScope</tt> <bcp14>SHOULD</bcp14> name that path in <tt>coverage.gaps</tt>, because the tier recompute below reads the gap list and not the observer's confidence. <tt>observation.priorCommitment</tt> is the observer's commitment, made before the interval opened, to the before-state and to a nonce the observer chose.</t>
        <t>Its <tt>committedAt</tt> <bcp14>MUST</bcp14> be strictly before the interval's <tt>openedAt</tt> (vector <tt>C2</tt>). Its <tt>commitmentDigest</tt> <bcp14>MUST</bcp14> recompute as the <xref target="RFC8785"/> digest over <tt>authorityDigest</tt>, <tt>beforeRoot</tt>, <tt>recordId</tt> and <tt>witnessNonce</tt> (vector <tt>C3</tt>). Its <tt>keyid</tt> <bcp14>MUST NOT</bcp14> appear in <tt>agent.signers</tt> (vector <tt>C1</tt>), and that disjointness is the one byte-pure discriminator between an observer and a self-observing party.</t>
        <t><tt>doesNotAssert</tt> is the negative-scope member the sections above refer to: an array of explicit statements about what this record does not claim. A record under this version <bcp14>SHOULD</bcp14> carry two entries. The first entry records that it makes no claim about retention. The second records that it makes no claim that the reported decision is the decision the policy engine evaluated.</t>
        <t><tt>fieldEvidence</tt> carries exactly the seven keys named in the mapping table, each one of <tt>substrate-covered</tt> or <tt>producer-asserted</tt>. Both terms are reused unchanged from the field-evidence partition registered in <xref target="VOCABULARY"/>, as the four posture values above are reused from its containment-posture terms. A missing key is malformed (vector <tt>FE1</tt>), and no key may declare <tt>substrate-covered</tt> while <tt>vantage</tt> is <tt>self</tt> (vector <tt>FE2</tt>).</t>
        <t><tt>tier</tt> is one of <tt>voluntary</tt>, <tt>authoritative</tt>. A verifier <bcp14>MUST</bcp14> recompute it and <bcp14>MUST NOT</bcp14> take the declared value as the tier. Vectors <tt>TI1</tt> through <tt>TI5</tt> each declare <tt>authoritative</tt> while failing one clause, so a verifier that reads the declared value passes all five.</t>
        <t>A record is <tt>authoritative</tt> if and only if all five of these hold, and <tt>voluntary</tt> otherwise: <tt>vantage</tt> is <tt>below-observed</tt> (vector <tt>TI1</tt>); <tt>priorCommitment</tt> is present and complete (vector <tt>TI2</tt>); <tt>pathScope</tt> is non-empty (vector <tt>TI3</tt>); <tt>coverage.scopeComplete</tt> is true or every gap names a path outside <tt>pathScope</tt> (vector <tt>TI4</tt>); and <tt>resource.binding</tt> is <tt>digest-bound</tt> (vector <tt>TI5</tt>).</t>
        <t>A record declaring <tt>authoritative</tt> that fails a clause is malformed, and a verifier <bcp14>MUST NOT</bcp14> downgrade it to <tt>voluntary</tt> (vector <tt>TI1</tt>). Downgrading would let a producer emit an authoritative-shaped record and rely on the verifier to relabel it.</t>
        <t>The opposite mismatch is well formed. A record declaring <tt>voluntary</tt> while meeting all five clauses is not malformed, and a verifier reads it at the tier the recompute gives. Treating the two directions differently is deliberate: a producer that over-claims is relying on somebody else to correct it, and a producer that under-claims is not.</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> read a <tt>voluntary</tt> record as evidence that its content corresponds to any independently observed fact (vector <tt>A5</tt>).</t>
      </section>
      <section anchor="worked">
        <name>A worked reading of the example</name>
        <t>The record at the head of <xref target="members"/> reports a write that was denied and happened anyway. Each rule above lands on one of its members.</t>
        <t><tt>decision.reported</tt> is <tt>deny</tt>, and the single write is attributed to the record's own request, so <tt>effect.observed</tt> derives as <tt>occurred</tt>. The third row of the agreement table maps that pair to <tt>disagree</tt>, which is the value the record carries, so the derivation holds and vector <tt>D1</tt> does not apply.</t>
        <t><tt>posture.reported</tt> is <tt>sinkhole</tt> and <tt>posture.observed</tt> is <tt>allowlist</tt>. Both are present and they are unequal, so <tt>posture.agreement</tt> derives as <tt>disagree</tt>, which is again the carried value.</t>
        <t>The tier recompute passes all five clauses. <tt>vantage</tt> is <tt>below-observed</tt>; <tt>priorCommitment</tt> carries all five of its own members; <tt>pathScope</tt> holds one entry; <tt>coverage.scopeComplete</tt> is true with no gaps; and <tt>resource.binding</tt> is <tt>digest-bound</tt>. The declared <tt>authoritative</tt> is therefore the tier a verifier derives.</t>
        <t><tt>evaluation.status</tt> is <tt>evaluated</tt> and the member names no unavailable input, so vector <tt>EV2</tt> does not apply. Each of its two inputs is fresh at <tt>decision.reportedAt</tt>, 11:04:02Z: the policy was produced 3842 seconds earlier under a <tt>maxAge</tt> of 86400, and the standing 242 seconds earlier under a <tt>maxAge</tt> of 3600, so the recompute gives an empty set of unavailable inputs and vector <tt>FR8</tt> does not apply. The record carries no <tt>oversight</tt> member and claims nothing about a human act.</t>
        <t>The ordering checks hold on the timestamps as written. Vector <tt>C2</tt> tests the first: <tt>committedAt</tt> at 11:03:58Z falls strictly before <tt>openedAt</tt> at 11:04:01Z. Vector <tt>F7</tt> tests the second: <tt>enforcedAt</tt> at 11:04:09Z falls two seconds after <tt>signalReceivedAt</tt> at 11:04:07Z.</t>
        <t>The single write lies under <tt>/srv/ledger/</tt>, the one member of <tt>pathScope</tt>, so its <tt>inScope</tt> of true is derived from the path and vector <tt>V3</tt> does not apply. <tt>fieldEvidence</tt> carries all seven keys, so vector <tt>FE1</tt> does not apply, and <tt>vantage</tt> is not <tt>self</tt>, so vector <tt>FE2</tt> does not either.</t>
        <t>What the record says, read whole, is that a write was denied and happened anyway, that the posture the decision point read was not the posture an observer saw, and that a revocation signal was enforced two seconds after it arrived. All three are well formed, and a verifier accepts the record.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A record is checkable for internal coherence and says nothing about the world outside its own bytes. Where a consumer needs a fact about that world, it has to establish that fact somewhere else.</t>
      <section anchor="the-vantage-claim-is-not-self-proving">
        <name>The vantage claim is not self-proving</name>
        <t>The vantage claim in a record is an assertion about the world, and the record makes it coherent with its own members without making it self-proving. A consumer that requires the vantage to be true <bcp14>MUST</bcp14> anchor the observer's key out of band, exactly as it would anchor any signer. Such a consumer <bcp14>MUST</bcp14> read <tt>authoritative</tt> as coherence with a claimed <tt>observation.vantage</tt>, and never as proof of one (vector <tt>A5</tt>).</t>
      </section>
      <section anchor="a-producer-that-observes-only-itself">
        <name>A producer that observes only itself</name>
        <t>A producer that observes only itself can satisfy every field of this format, and the <tt>observation.priorCommitment</tt> member raises the cost of doing so. It binds the before-state, the authority and the record identifier under the observer's signature before the interval opens. A forgery therefore has to be decided on before the forger knows what it will be lying about.</t>
        <t>It does not reduce the cost to zero, and a producer holding two keys satisfies every clause. That residual is detectable by a key inventory outside the record and by no function of the bytes inside it. A consumer that depends on the vantage <bcp14>SHOULD</bcp14> keep such an inventory.</t>
      </section>
      <section anchor="withheld-rows">
        <name>Withheld rows</name>
        <t>A record can omit a remediation event, or a claimed access that the observer saw, and no function of a Statement detects a row that was never written. No quantity of extra carried material changes that, because extra material is material a withholding producer also declines to carry.</t>
        <t>The <tt>coverage</tt>, <tt>fieldEvidence</tt> and <tt>doesNotAssert</tt> members exist so that a blind spot travels where the observer is honest about it. An observer that knows of a blind spot <bcp14>SHOULD</bcp14> record it in the <tt>doesNotAssert</tt> member. None of these members is a defence against a producer that conceals one.</t>
      </section>
      <section anchor="well-formed-disagreement">
        <name>Well-formed disagreement</name>
        <t>A disagreement between the reported decision and the observed effect is well formed, as is a disagreement between the two postures, and as is a remediation event recording that enforcement did not occur. A verifier <bcp14>MUST</bcp14> accept all three (vectors <tt>A3</tt> and <tt>A4</tt>). A format that refused to represent a failed enforcement would mean that no record ever reports one. This clause prevents that.</t>
      </section>
      <section anchor="a-decision-that-was-not-evaluated">
        <name>A decision that was not evaluated</name>
        <t>A record whose <tt>evaluation.status</tt> is <tt>not-evaluated</tt> is well formed beside any reported decision and any agreement, and a verifier <bcp14>MUST</bcp14> accept it (vectors <tt>A10</tt>, <tt>A12</tt> to <tt>A14</tt>, and <tt>A18</tt> to <tt>A20</tt>). A deny that was not evaluated is a decision point failing closed, and a permit that was not evaluated is one failing open. Both are facts an audit trail exists to carry. A consumer <bcp14>SHOULD</bcp14> treat a <tt>not-evaluated</tt> permit as an enforcement failure for policy purposes, and this document leaves that to the consumer.</t>
        <t>The reason is the one <xref target="well-formed-disagreement"/> gives for a disagreement. A format with no way to say that a decision point could not evaluate records every outage as policy: each lost standing source reads as a correctly enforced denial, and each fail-open reads as a permit somebody decided. An incident review that reads such a trail finds no outage, because none was ever written down.</t>
        <t>Every source a decision point reads is also a way to stop it (Section 5 of <xref target="EVALUATION"/>). An attacker who can make a source unavailable turns fail-closed evaluation into a denial of service, and the <tt>not-evaluated</tt> records are the evidence of it. A consumer <bcp14>SHOULD</bcp14> read a rate of <tt>not-evaluated</tt> records naming one input as an availability event, not as a series of policy decisions.</t>
        <t><tt>evaluation</tt> is producer-asserted. A decision point that records <tt>evaluated</tt> for a decision that depended on an input it did not obtain is withholding, as in <xref target="withheld-rows"/>, and no function of the record's bytes detects it. The same holds for <tt>evaluation.inputs</tt>: the recompute catches an entry whose own times contradict the status, and it cannot catch a <tt>lastResult</tt> written later than the source produced the value, or a hop that wrote the time it received a forwarded value in place of the source's. A consumer that relies on freshness <bcp14>SHOULD</bcp14> read each entry's evidence class as the one <tt>fieldEvidence</tt> declares for <tt>decision</tt>.</t>
      </section>
      <section anchor="revocation-without-a-bound">
        <name>Revocation without a bound</name>
        <t>Section 11 of <xref target="AIMS"/> requires that revoked or downgraded authorization be enforced "without undue delay" and specifies no bound. This document carries <tt>signalReceivedAt</tt> and <tt>enforcedAt</tt>, and defines no bound of its own. A record with an arbitrarily large gap between them is well formed. A consumer <bcp14>SHOULD</bcp14> set a bound on that gap as policy and read a record that exceeds it accordingly.</t>
      </section>
      <section anchor="relationship-to-other-tamper-evidence-mechanisms">
        <name>Relationship to other tamper-evidence mechanisms</name>
        <t>A signature over canonical bytes detects an editor who cannot sign. A trusted timestamp <xref target="RFC3161"/> adds an assertion about when the bytes existed, and an append-only log <xref target="RFC6962"/> <xref target="RFC9162"/> adds an assertion that they were published. This document requires neither, and a deployment <bcp14>MAY</bcp14> carry a record under this format in such a log.</t>
        <t>None of the three detects a producer that signed a false record. The recomputes in <xref target="tamper"/> address that case.</t>
      </section>
      <section anchor="two-implementations-that-both-differ-from-the-canonical-form">
        <name>Two implementations that both differ from the canonical form</name>
        <t><xref target="rationale"/> gives the mechanism by which two implementations can share a serialization that is not <xref target="RFC8785"/>. Neither party can see the failure from inside it. Every signature each of them produces verifies for the other, and the records fail only for a third party that canonicalizes correctly.</t>
        <t>A consumer therefore derives the canonical bytes itself and does not accept a producer's report of them. <xref target="canonical"/> is normative for that reason, and vector <tt>T2</tt> is the member that tests it.</t>
      </section>
      <section anchor="receipt-time-and-late-anchoring">
        <name>Receipt time and late anchoring</name>
        <t>A retention entry's <tt>receivedAt</tt> is asserted by the retaining party, and <xref target="dating"/> makes it checkable for consistency, not true. A retaining party that anchors a digest before the envelope arrives, or anchors late and states a correspondingly late receipt, produces an entry that passes the check. A relying party that grants a received record an allowance, such as dating it from its receipt rather than from its issuance, is relying on the two assumptions <xref target="dating"/> states, and <bcp14>SHOULD</bcp14> limit the allowance to retaining parties it trusts to anchor on delivery.</t>
        <t>An anchor of origin <tt>received</tt> was obtained by the party that sent the record. It can date the record's existence, and it says nothing about when the retaining party received it, so it never forms the upper edge of the receipt bracket.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>A record under this document carries an agent identifier, a delegated subject, a resource identifier and a set of paths. The delegated subject in particular may identify a natural person. Deployments <bcp14>SHOULD</bcp14> consider which of these a given consumer needs before distributing a record. The <tt>doesNotAssert</tt> member is the place to record what a distributed record deliberately omits.</t>
      <t>The format binds five documents by digest and carries none of them: the credential, the authority document, the policy, and both posture documents. A consumer that needs their content <bcp14>SHOULD</bcp14> resolve them out of band.</t>
      <t>That separation is deliberate and is the privacy-preserving default, because it lets a record travel to a party entitled to verify the decision without carrying the material the decision was made from. A consumer entitled to the decision receives the digest and resolves the document only if it needs the content.</t>
      <t>A retention entry's anchors are over the envelope digest alone, so an anchoring service, a transparency log or a time-stamping authority learns that a record existed and nothing in it. A retaining party that discloses an entry discloses its receipt time and the parties whose validation data it holds, and <bcp14>SHOULD</bcp14> treat the entry with the same care as the record.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. The predicate type is a URI under a namespace the author controls and requires no registration to be used, consistent with the in-toto Attestation Framework's treatment of predicate type identifiers <xref target="IN-TOTO"/>.</t>
      <t>A registered identifier would be the alternative. It is not proposed here, because a record carries its predicate type inside the bytes its producer signed. A later revision <bcp14>SHOULD NOT</bcp14> move the URI once records carrying it exist, since moving it invalidates every signature over them.</t>
      <t>No revision has yet frozen the URI. Until a revision states in its Document History that it does, the members published in <xref target="VECTORS"/> are test records signed under published test keys, and a revision may change what a record under the URI must carry, as draft-gilda-wimse-agent-audit-record-02 did (vector <tt>EV3</tt>) and as this revision does (vector <tt>EV13</tt>). After the freeze, a change to what a record must carry is published under a new URI, as <xref target="members"/> requires for an extended vocabulary.</t>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>Note to the RFC Editor: please remove this section before publication.</t>
      <t>This section records the status of known implementations at the time of writing, following <xref target="RFC7942"/>. Listing an implementation here does not imply endorsement by the IETF.</t>
      <t><xref target="VECTORS"/> is an open conformance corpus for this format, licensed under Apache-2.0. Its <tt>vectors-agent-audit-record</tt> family publishes each member of <xref target="vectors"/> as a signed DSSE envelope with the verdict a conforming verifier must reach. It ships two verifiers written from the text, one in Python that uses only the standard library and one in Go. Release v0.18.1, published on 13 October 2026, carries the 68 members defined by draft-gilda-wimse-agent-audit-record-02, and anyone can rerun every one of them with a single command:</t>
      <artwork><![CDATA[
uvx agent-evidence-vectors==0.18.1 \
    --corpus vectors-agent-audit-record
]]></artwork>
      <t>The run prints the verdict counts and whether every member behaves as its manifest declares; on release v0.18.1 it reports 17 members to accept, 49 to reject and 2 indeterminate, each behaving as declared. Two parties outside the corpus's authorship ran its members themselves and posted their results on the issue tracker of <xref target="AIMS"/>: 47 of 47 members behaved as specified at release 0.14.1, and 47 of 47 at release 0.16.0, including both readings that the earlier revision allowed for vectors <tt>N1</tt> and <tt>N2</tt>.</t>
      <t>Those 68 members are records under the earlier revision, which this revision makes malformed because it requires <tt>evaluation.inputs</tt> (vector <tt>EV13</tt>). The corpus is regenerated for this revision in the release that follows it, with the 31 members this revision adds, which <xref target="vectors"/> marks as <tt>next</tt>.</t>
    </section>
  </middle>
  <back>
<references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="AIMS">
          <front>
            <title>AI Identity Management System</title>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
              <organization>AWS</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="15" month="September" year="2026"/>
            <abstract>
              <t>   This document proposes best practices for authentication and
   authorization of AI agent interactions.  It leverages existing
   standards such as the Workload Identity in Multi-System Environments
   (WIMSE) architecture and OAuth 2.0 family of specifications.  Rather
   than defining new protocols, this document describes how existing and
   widely deployed standards can be applied or extended to establish
   agent authentication and authorization.  By doing so, it aims to
   provide a framework within which to use existing standards, identify
   gaps and guide future standardization efforts for agent
   authentication and authorization.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-aims-00"/>
        </reference>
        <reference anchor="WIMSE-ID">
          <front>
            <title>Workload Identifier</title>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Palo Alto Networks</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document defines a canonical identifier for workloads, referred
   to as the Workload Identifier.  A Workload Identifier is a URI that
   uniquely identifies a workload within the context of a specific trust
   domain.  This identifier can be embedded in Workload Identity
   Credentials, including X.509 certificates and JWT-based tokens, to
   support authentication, authorization, and policy enforcement across
   diverse systems.  The Workload Identifier format ensures
   interoperability, facilitates secure identity federation, and enables
   consistent identity semantics.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-identifier-03"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </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="IN-TOTO" target="https://github.com/in-toto/attestation/blob/main/spec/README.md">
          <front>
            <title>in-toto Attestation Framework Specification</title>
            <author>
              <organization>in-toto</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DSSE" target="https://github.com/secure-systems-lab/dsse">
          <front>
            <title>Dead Simple Signing Envelope</title>
            <author>
              <organization>Secure Systems Lab</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="EVALUATION">
          <front>
            <title>Verifier-Side Evaluation Semantics for Delegated Authority Chains</title>
            <author fullname="Wes Jackson" initials="W." surname="Jackson">
         </author>
            <date day="10" month="October" year="2026"/>
            <abstract>
              <t>   Delegation chain specifications describe the shape of conveyed
   authority.  They leave the verifier's half of the exchange
   underdetermined.  Two verifiers can check the same chain, both report
   success, and enforce different policy.  This document states what a
   verifier must do: the explicit inputs evaluation depends on, how
   those inputs behave when their sources are stale or unavailable, and
   four rules that keep evaluation fail-closed.  The rules are drawn
   from the Grant &amp; Autonomy Lifecycle (GAL) and Provenance &amp; Trust
   Context (PTC) specifications and from a public reference
   implementation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jackson-wimse-evaluation-04"/>
        </reference>
        <reference anchor="EVALUATION-STATE">
          <front>
            <title>Preserving Evaluation State in Agent Protocol Decisions</title>
            <author fullname="Girish Konda" initials="G." surname="Konda">
         </author>
            <date day="10" month="October" year="2026"/>
            <abstract>
              <t>   Agent protocols often require a participant to establish a decision-
   time input before it acts: issuer standing, key availability,
   delegated authority, policy profile availability, consumption state,
   revocation status, or the outcome of a downstream operation.  A
   participant that establishes an input and receives a negative answer
   has learned a different fact from a participant that cannot establish
   the input at all.  Collapsing those facts into one denial or failure
   value changes retry behavior, alert routing, audit interpretation,
   incident ownership, and post-incident reconstruction.

   This document specifies requirements for preserving evaluation state
   across agent protocol boundaries: the value of an input, whether that
   value was established at decision time, the freshness of the source
   used to establish it, and whether the resulting policy decision was
   actually evaluated.  The requirements are stated independently of
   encoding, so that policy, authorization, revocation, routing, and
   audit documents can satisfy them in their own formats.  A subsequent
   revision will specify concrete representations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-konda-agentproto-evaluation-state-01"/>
        </reference>
        <reference anchor="OVERSIGHT-ACTS">
          <front>
            <title>Terminology for Human Oversight Acts in Automated and Agentic Systems</title>
            <author fullname="Andreas Ehstand" initials="A." surname="Ehstand">
              <organization>Independent Researcher</organization>
            </author>
            <date day="26" month="September" year="2026"/>
            <abstract>
              <t>   Records produced by automated and agentic systems often represent
   human oversight as a single, undifferentiated event, such as an
   approval flag or a confirmation.  Such a record does not say whether
   the person was shown an output, determined whether a named property
   of it holds, chose a course of action, or permitted an action, and
   consumers of the record may treat a confirmation click as if it were
   a check.

   This document defines terms for four kinds of human oversight act
   (observation, check, decision, and release) and for related concepts:
   the oversight act and the overseer, the named property, standing
   authority, the oversight record, the undifferentiated approval, the
   check step, error detectability, the fail-open check step, and the
   check test.  It states what a record of each kind of act is, and is
   not, evidence of, and relates the terms to existing vocabularies.
   The document defines terminology only.  It specifies no protocol,
   data format, procedure, or measurement method.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ehstand-oversight-acts-00"/>
        </reference>
        <reference anchor="PQ-AGENT-ID">
          <front>
            <title>Post-Quantum Requirements for Software and AI Agent Identity</title>
            <author fullname="Venkata Karunakar Uppalapati" initials="V. K." surname="Uppalapati">
              <organization>Independent Researcher</organization>
            </author>
            <date day="28" month="September" year="2026"/>
            <abstract>
              <t>   A delegation record retained as evidence must remain verifiable long
   after the key that signed it is retired.  A signature of any
   algorithm establishes who signed, not when, so such a record needs
   anchoring in trusted time, renewed before the algorithms protecting
   it weaken.  That is long-settled practice for archived signatures.
   It is rarely required for agent delegation, and where it is, the
   anchor is not itself required to be post-quantum.  An anchor is only
   as good as the protection behind it, and an RFC 3161 timestamp is
   itself a signature: an adversary holding a cryptanalytically relevant
   quantum computer can mint one bearing any date it chooses.  Because
   such a machine may be built without announcement, anchoring must
   become post-quantum anchoring by a stated transition date, and be
   applied early, so that the only assumption left about when such a
   machine appeared is that none existed before a record was first
   anchored that way.  The earlier that date, the weaker the assumption,
   which makes choosing it a security decision and not only a scheduling
   one.

   This document states requirements that software and AI agent identity
   mechanisms should satisfy in order to remain sound across the
   transition, and identifies four that no such mechanism yet imposes on
   delegation credentials in general.  The algorithms binding each hop
   of a delegation chain to its trust anchor must be visible to a
   verifier and retained with any record kept as evidence; where a
   signing key is fetched from a key set over TLS, as OAuth deployments
   commonly do, that binding is rarely recorded and no mechanism for
   agent delegation requires it to be, so in practice it is absent.
   Trust anchors must migrate before the credentials issued under them.
   Every retained record must be anchored, that anchoring must become
   post-quantum anchoring from a stated transition date and be
   maintained by renewal, and credentials of any type kept as evidence
   must be signed post-quantum from that same date.  Delegation chains
   also propagate the weakest algorithm in the chain, and routinely
   cross organizational boundaries where no common trust anchor policy
   can be assumed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-uppalapati-wimse-pq-agent-identity-00"/>
        </reference>
        <reference anchor="RFC3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="P. Cain" initials="P." surname="Cain"/>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
            <date month="August" year="2001"/>
            <abstract>
              <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3161"/>
          <seriesInfo name="DOI" value="10.17487/RFC3161"/>
        </reference>
        <reference anchor="RFC4998">
          <front>
            <title>Evidence Record Syntax (ERS)</title>
            <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
            <author fullname="R. Brandner" initials="R." surname="Brandner"/>
            <author fullname="U. Pordesch" initials="U." surname="Pordesch"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>In many scenarios, users must be able prove the existence and integrity of data, including digitally signed data, in a common and reproducible way over a long and possibly undetermined period of time. This document specifies the syntax and processing of an Evidence Record, a structure designed to support long-term non-repudiation of existence of data. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4998"/>
          <seriesInfo name="DOI" value="10.17487/RFC4998"/>
        </reference>
        <reference anchor="RFC6962">
          <front>
            <title>Certificate Transparency</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Kasper" initials="E." surname="Kasper"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6962"/>
          <seriesInfo name="DOI" value="10.17487/RFC6962"/>
        </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="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="AUDIT-BOFREQ" target="https://datatracker.ietf.org/doc/bofreq-kuhlewind-audit-agent-use-of-delegation-and-interaction-traceability/">
          <front>
            <title>AUDIT - Agent Use of Delegation and Interaction Traceability</title>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
            </author>
            <date year="2026" month="October" day="08"/>
          </front>
        </reference>
        <reference anchor="AUDIT-CHARTER" target="https://github.com/mirjak/audit-bof-preparation/blob/main/audit-charter.md">
          <front>
            <title>Agent Use of Delegation and Interaction Traceability (AUDIT) Working Group Charter (proposed)</title>
            <author>
              <organization>AUDIT BoF proponents</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="VECTORS" target="https://github.com/probityai/agent-evidence-vectors">
          <front>
            <title>Agent evidence conformance vectors</title>
            <author>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VOCABULARY" target="https://github.com/probityai/agent-evidence-vocabulary">
          <front>
            <title>Agent evidence vocabulary</title>
            <author>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>

<section anchor="rationale">
      <name>Design rationale</name>
      <t>Two requirements of this document are not derivable from Section 11 of <xref target="AIMS"/> on its own: the canonicalization contract, and carrying the observed effect beside the reported decision. Neither is restated normatively here.</t>
      <section anchor="the-canonicalization-contract">
        <name>The canonicalization contract</name>
        <t>The word "tamper-evident" appears once in <xref target="AIMS"/> and is not defined there. Read narrowly it means a record whose alteration is detectable, which a signature provides. Two gaps remain.</t>
        <t>A signature over a serialization is only as good as the agreement on which bytes were signed, and that agreement is a property of a written contract between two implementations; neither one's code establishes it. Two implementations can agree with each other on a canonical form and both differ from <xref target="RFC8785"/>, and no amount of signing or hash-chaining detects that.</t>
        <t>Each verifies its own records and rejects the other's, or worse, accepts a record whose meaning it has silently changed. A canonicalization contract is therefore part of the tamper-evidence requirement; it is not an implementation detail, and <xref target="canonical"/> makes it normative.</t>
        <t>A signature also says nothing about the producer. The party that holds the signing key can alter a record and sign it again, and every signature check still passes.</t>
        <t>Detecting that requires fields whose values are recomputable from other fields in the same record, so that an internally inconsistent record is refusable regardless of who signed it. A hash chain catches an alteration by a party with no signing key; only a recompute catches the key holder, and <xref target="tamper"/> specifies three of them.</t>
      </section>
      <section anchor="the-decision-and-the-observed-effect">
        <name>The decision and the observed effect</name>
        <t>The fourth of the seven minimum fields pairs "action requested and authorization decision". A record carrying only the decision is a self-report: it states what an enforcement point concluded, and a deployment that mis-enforces its own conclusion produces a clean audit trail of the decision it failed to apply. Section 11 asks for enough to "reconstruct agent behavior and authorization context after execution", and behaviour is not reconstructable from a decision.</t>
        <t>This document therefore requires both sides in one record: the decision as reported by the enforcement point, and the effect as observed. It also requires a three-valued <tt>agreement</tt> between them, which a verifier derives from the two values; it is not a claim the record makes. A decision reported as denied beside an effect observed as having occurred is then a refusable inconsistency in signed bytes. Today it is undetectable.</t>
        <t>The same construction applies to the sixth field. Section 8 of <xref target="AIMS"/> defines posture assessment as an evaluation performed at credential provisioning, while the sixth field asks for the posture "influencing the decision".</t>
        <t>A conformant record may therefore carry a posture that was accurate at issuance and inaccurate at decision time, with nothing in the record to say which. Carrying <tt>posture</tt> as the decision point read it, beside the posture as it was observed and its <tt>assessedAt</tt>, makes that difference visible without constraining either value.</t>
      </section>
      <section anchor="why-the-tier-carries-five-clauses">
        <name>Why the tier carries five clauses</name>
        <t>Each clause of the tier recompute closes one route by which a record could claim an observer's vantage while carrying nothing that distinguishes it from a self-report.</t>
        <t><tt>vantage</tt> of <tt>below-observed</tt> is the claim itself, and the four clauses under it make the claim cost something. The prior commitment binds the before-state before the interval opens, so a producer cannot decide after the fact what it saw. A non-empty <tt>pathScope</tt> means the record names the ground it covers. A complete coverage claim, or a gap list naming only paths outside that ground, means the record does not quietly exclude the interesting part. And a digest-bound resource means the arguments of the call are pinned.</t>
        <t>Dropping any one of them admits a record that carries the authority of the rest while resting on nothing. That is why the corpus in <xref target="vectors"/> carries one reject member per clause.</t>
      </section>
    </section>
    <section anchor="vectors">
      <name>Conformance vectors</name>
      <t>The table below is the conformance corpus for this format. Each row gives a member identifier, the accept member it derives from, its input, and the verdict a conforming verifier reaches. A reject differs from the accept member in its <tt>from</tt> column by one mutation, so refusing every input scores nothing on this corpus.</t>
      <t>An accept member has no parent and its <tt>from</tt> column reads <tt>root</tt>. An indeterminate member has more than one conforming verdict and its row gives each. A member whose input is a retained record (<tt>R1</tt> to <tt>R9</tt>) is an envelope with its retention entry, and its row gives the envelope's verdict and the result of the dating check separately.</t>
      <t>The <tt>first in</tt> column names the release of <xref target="VECTORS"/> that first published a member under that identifier, or <tt>next</tt> for a member this revision adds. Because <tt>evaluation.inputs</tt> is required here, every member published under draft-gilda-wimse-agent-audit-record-02 is malformed under this revision (vector <tt>EV13</tt>), and the whole corpus is regenerated in the release that follows it. Each member keeps its identifier and its row, with the entries it needs in <tt>evaluation.inputs</tt>; vector <tt>A10</tt> carries <tt>standing-source</tt> with a <tt>lastResult</tt> of <tt>none</tt>, and vector <tt>N1</tt> changes verdict as <xref target="correlation"/> states.</t>
      <t>Every row names the rule it tests. Three rules this document adds have no member in the table: the binding on the digest map in <xref target="subject"/>, the <xref target="RFC3339"/> requirement in <xref target="timestamps"/>, and the single hash algorithm of <xref target="hashalg"/>. An implementation <bcp14>SHOULD</bcp14> be run against every member of the corpus before it is described as conforming to this document, and the three rules above are checked by reading them.</t>
      <t>The corpus travels with the predicate schema: the revision of this document that freezes the predicate type URI is the revision that publishes these members in <xref target="VECTORS"/>, in that repository's manifest layout.</t>
      <table>
        <name>The conformance corpus, one member for every normative rule this document adds</name>
        <thead>
          <tr>
            <th align="left">id</th>
            <th align="left">from</th>
            <th align="left">what it is</th>
            <th align="left">expected</th>
            <th align="left">first in</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">root</td>
            <td align="left">every member present, <tt>permit</tt> beside <tt>occurred</tt>, all five tier clauses met</td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>deny</tt> beside <tt>none</tt>, equal roots, empty write set</td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A3</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> with <tt>deny</tt> beside <tt>occurred</tt> and <tt>agreement</tt> of <tt>disagree</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A4</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> plus a remediation event with <tt>enforcement</tt> of <tt>not-enforced</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A5</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> with <tt>vantage</tt> of <tt>self</tt>, no prior commitment, <tt>tier</tt> of <tt>voluntary</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A6</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> with <tt>binding</tt> of <tt>not-bindable</tt>, <tt>argumentsDigest</tt> absent from the record and from the request-digest preimage, <tt>tier</tt> of <tt>voluntary</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A7</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A2</tt> plus one in-scope write inside the interval attributed to a different request, roots and chain moved to match</td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A8</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A2</tt> plus one in-scope <tt>unattributed</tt> write inside the interval, <tt>effect.observed</tt> of <tt>unknown</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>indeterminate</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A9</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> with <tt>permit</tt> beside an empty write set, equal roots, <tt>effect.observed</tt> of <tt>none</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>not-exercised</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A2</tt> with <tt>evaluation.status</tt> of <tt>not-evaluated</tt> and <tt>unavailableInput</tt> of <tt>standing-source</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A11</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> plus <tt>oversight</tt> with <tt>act</tt> of <tt>check</tt> and a <tt>recordDigest</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A12</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A10</tt> with <tt>unavailableInput</tt> of <tt>key-source</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A13</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A10</tt> with <tt>unavailableInput</tt> of <tt>consumption-state</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A14</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A10</tt> with <tt>unavailableInput</tt> naming all three inputs of -02, each once, in neither the table order nor sorted order</td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A15</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A11</tt> with <tt>oversight.act</tt> of <tt>observation</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A16</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A11</tt> with <tt>oversight.act</tt> of <tt>decision</tt> and no <tt>recordDigest</tt>, which is optional</td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A17</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A11</tt> with <tt>oversight.act</tt> of <tt>release</tt></td>
            <td align="left">valid</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A18</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> with <tt>evaluation.status</tt> of <tt>not-evaluated</tt>, <tt>policy-source</tt> never established, <tt>unavailableInput</tt> of <tt>policy-source</tt> and the allow-all fallback's <tt>decision.policyDigest</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A19</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A3</tt> with <tt>evaluation.status</tt> of <tt>not-evaluated</tt>, <tt>key-source</tt> and <tt>consumption-state</tt> stale, and <tt>unavailableInput</tt> naming both</td>
            <td align="left">valid, <tt>agreement</tt> of <tt>disagree</tt></td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>A20</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A2</tt> with <tt>evaluation.status</tt> of <tt>not-evaluated</tt>, a profile the request names not held, <tt>unavailableInput</tt> of <tt>policy-source</tt> and the deny-all fallback's <tt>decision.policyDigest</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>A1</tt> with the whole <tt>agent</tt> member removed</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>subjectKind</tt> of <tt>none</tt> beside a named subject</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>digest-bound</tt> with <tt>argumentsDigest</tt> removed</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F3b</tt></td>
            <td align="left">
              <tt>A6</tt></td>
            <td align="left">
              <tt>not-bindable</tt> carrying <tt>argumentsDigest</tt> of <tt>null</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F3c</tt></td>
            <td align="left">
              <tt>A6</tt></td>
            <td align="left">
              <tt>not-bindable</tt> carrying <tt>argumentsDigest</tt> of the empty string</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F4</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>action</tt> changed, <tt>requestDigest</tt> left at its original value</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F5</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>beacon-anchored</tt> with <tt>externalAnchor</tt> removed</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F6</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">two unequal postures declared as <tt>agree</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>F7</tt></td>
            <td align="left">
              <tt>A4</tt></td>
            <td align="left">
              <tt>enforcedAt</tt> one second before <tt>signalReceivedAt</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>T1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>effect.observed</tt> edited to <tt>none</tt>, writes intact, signed again with the real key</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>T2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">serialized in declaration order, not <xref target="RFC8785"/> order</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>T3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">a member name repeated at depth three</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>T4</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">nesting 129 levels deep</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>T5</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">an integer of magnitude exactly 2^53</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>D1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>agreement</tt> of <tt>disagree</tt> with both sides agreeing</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>D2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>agreement</tt> of <tt>one-sided</tt> with both values present</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>D3</tt></td>
            <td align="left">
              <tt>A9</tt></td>
            <td align="left">
              <tt>agreement</tt> of <tt>disagree</tt> beside <tt>permit</tt> and <tt>none</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>S1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">second subject entry removed, interval left present</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>S2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">second subject entry's digest set to the before-state root</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>I1r</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">interval removed, second subject entry left present</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>TI1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>authoritative</tt> declared with <tt>vantage</tt> of <tt>self</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>TI2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>authoritative</tt> declared with no prior commitment</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>TI3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>authoritative</tt> declared with an empty <tt>pathScope</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>TI4</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>authoritative</tt> declared with a coverage gap inside <tt>pathScope</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>TI5</tt></td>
            <td align="left">
              <tt>A6</tt></td>
            <td align="left">
              <tt>authoritative</tt> declared on <tt>A6</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>C1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">commitment <tt>keyid</tt> added to <tt>agent.signers</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>C2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>committedAt</tt> one second after <tt>openedAt</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>C3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>witnessNonce</tt> changed, <tt>commitmentDigest</tt> left at its original value</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>E1</tt></td>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">
              <tt>observed</tt> of <tt>none</tt> with a non-empty write set</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>E2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">a second write whose pre-state is not the first write's post-state</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>E3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>empty-tree</tt> under sha256 carrying the sha1 constant</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>E4</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">the only write's pre-state is not the before-state root, its post-state is the after-state root</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>E5</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">the only write starts from the before-state root and its post-state is not the after-state root</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>E6</tt></td>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">an empty write set beside an after-state root unequal to the before-state root, second subject moved to match</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>V1</tt></td>
            <td align="left">
              <tt>A4</tt></td>
            <td align="left">
              <tt>enforcement</tt> of <tt>quarantined</tt>, outside the closed set</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>V2</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">a <tt>pathScope</tt> member carrying a glob metacharacter</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>V3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">a write outside <tt>pathScope</tt> carrying <tt>inScope</tt> of <tt>true</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FE1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">six of the seven <tt>fieldEvidence</tt> keys present</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FE2</tt></td>
            <td align="left">
              <tt>A5</tt></td>
            <td align="left">
              <tt>substrate-covered</tt> declared beside <tt>vantage</tt> of <tt>self</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> written by the second of two hops: each input fresh at <tt>decision.reportedAt</tt>, one carried from the first hop with the source's <tt>lastResult</tt> unchanged</td>
            <td align="left">valid</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR2</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>FR1</tt> with one input's age at <tt>decision.reportedAt</tt> exactly equal to its <tt>maxAge</tt></td>
            <td align="left">valid, the input fresh</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR3</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A10</tt> written by the second of two hops, the forwarded <tt>standing-source</tt> one second older than its <tt>maxAge</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR4</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A10</tt> written by the second of two hops, which received <tt>standing-source</tt> as never established, <tt>lastResult</tt> of <tt>none</tt></td>
            <td align="left">valid, <tt>agreement</tt> of <tt>agree</tt></td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR5</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">an entry with <tt>lastResult</tt> removed</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR6</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">an entry with <tt>maxAge</tt> removed</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR7</tt></td>
            <td align="left">
              <tt>FR3</tt></td>
            <td align="left">
              <tt>unavailableInput</tt> naming <tt>key-source</tt>, whose entry is fresh, in place of <tt>standing-source</tt></td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR8</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">
              <tt>evaluated</tt> beside an entry one second older than its <tt>maxAge</tt></td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR9</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">an entry whose <tt>lastResult</tt> is later than <tt>decision.reportedAt</tt> by more than the skew tolerance</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR10</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">one input named in two entries</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR11</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">an entry carrying a fourth member this document does not define</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR12</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">an entry whose <tt>input</tt> is <tt>network</tt>, outside the closed set</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FR13</tt></td>
            <td align="left">
              <tt>FR1</tt></td>
            <td align="left">an entry with a negative <tt>maxAge</tt></td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV1</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>not-evaluated</tt> with <tt>unavailableInput</tt> removed</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV2</tt></td>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">
              <tt>evaluated</tt> carrying <tt>unavailableInput</tt> of <tt>standing-source</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV3</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">the <tt>evaluation</tt> member removed, which is the shape of a revision 01 record</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV4</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>unavailableInput</tt> of <tt>network</tt>, outside the closed set</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV5</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>not-evaluated</tt> with <tt>unavailableInput</tt> of the empty array</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV6</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>not-evaluated</tt> with <tt>standing-source</tt> named twice</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV7</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>not-evaluated</tt> with <tt>unavailableInput</tt> of the string <tt>standing-source</tt>, not an array</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV8</tt></td>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">
              <tt>evaluated</tt> carrying <tt>unavailableInput</tt> of <tt>null</tt></td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV9</tt></td>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">
              <tt>evaluated</tt> carrying <tt>unavailableInput</tt> of the empty array</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV10</tt></td>
            <td align="left">
              <tt>A2</tt></td>
            <td align="left">
              <tt>evaluated</tt> carrying <tt>unavailableInput</tt> of the empty string</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV11</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>evaluation.status</tt> of <tt>partially-evaluated</tt>, outside the closed set</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV12</tt></td>
            <td align="left">
              <tt>A10</tt></td>
            <td align="left">
              <tt>evaluation</tt> carrying a free-text <tt>reason</tt> member this document does not define</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>EV13</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">
              <tt>evaluation.inputs</tt> removed, the shape of a record under draft-gilda-wimse-agent-audit-record-02</td>
            <td align="left">malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>OV1</tt></td>
            <td align="left">
              <tt>A11</tt></td>
            <td align="left">
              <tt>oversight.act</tt> of <tt>approval</tt>, outside the closed set</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>OV2</tt></td>
            <td align="left">
              <tt>A11</tt></td>
            <td align="left">
              <tt>oversight</tt> carrying a member this document does not define</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>OV3</tt></td>
            <td align="left">
              <tt>A11</tt></td>
            <td align="left">
              <tt>oversight</tt> with <tt>act</tt> removed and <tt>recordDigest</tt> kept</td>
            <td align="left">malformed</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>N1</tt></td>
            <td align="left">
              <tt>A1</tt></td>
            <td align="left">an anchor token digest carried in <tt>correlation.externalAnchor</tt>, the proof not held</td>
            <td align="left">valid, not dated by the anchor</td>
            <td align="left">v0.18.1, verdict changed</td>
          </tr>
          <tr>
            <td align="left">
              <tt>N2</tt></td>
            <td align="left">
              <tt>A4</tt></td>
            <td align="left">enforcement forty days after the signal, ordering intact</td>
            <td align="left">indeterminate</td>
            <td align="left">v0.18.1</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R1</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> retained by its producer: <tt>received</tt> of <tt>false</tt> and one anchor of origin <tt>retainer</tt> inside <tt>anchorWithin</tt> of <tt>issuedAt</tt></td>
            <td align="left">record valid, dated at the anchor's time</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R2</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>A1</tt> received from another party, <tt>receivedAt</tt> between <tt>issuedAt</tt> and the retaining party's anchor obtained on delivery</td>
            <td align="left">record valid, receipt time asserted and consistent</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R3</tt></td>
            <td align="left">
              <tt>R2</tt></td>
            <td align="left">
              <tt>receivedAt</tt> later than the retaining party's earliest anchor by more than the skew tolerance</td>
            <td align="left">record valid, entry malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R4</tt></td>
            <td align="left">
              <tt>R2</tt></td>
            <td align="left">
              <tt>received</tt> of <tt>true</tt> and no anchor of origin <tt>retainer</tt></td>
            <td align="left">record valid, entry malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R5</tt></td>
            <td align="left">root</td>
            <td align="left">
              <tt>R2</tt> with the retaining party's anchor obtained before delivery and <tt>receivedAt</tt> inside the bracket</td>
            <td align="left">record valid, receipt time asserted and consistent, never established</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R6</tt></td>
            <td align="left">
              <tt>R2</tt></td>
            <td align="left">
              <tt>receivedAt</tt> earlier than <tt>issuedAt</tt> by more than the skew tolerance</td>
            <td align="left">record valid, entry malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R7</tt></td>
            <td align="left">
              <tt>R1</tt></td>
            <td align="left">the retaining party's first anchor later than <tt>issuedAt</tt> by more than <tt>anchorWithin</tt> plus the skew tolerance</td>
            <td align="left">record valid, entry malformed</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R8</tt></td>
            <td align="left">
              <tt>R1</tt></td>
            <td align="left">the only anchor's proof is over a different envelope digest</td>
            <td align="left">record valid, not dated</td>
            <td align="left">next</td>
          </tr>
          <tr>
            <td align="left">
              <tt>R9</tt></td>
            <td align="left">
              <tt>R1</tt></td>
            <td align="left">
              <tt>receivedAt</tt> carried beside <tt>received</tt> of <tt>false</tt></td>
            <td align="left">record valid, entry malformed</td>
            <td align="left">next</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="audit-map">
      <name>Mapping to the AUDIT problem statement</name>
      <t>The table below takes each problem the AUDIT BoF request <xref target="AUDIT-BOFREQ"/> and the proposed charter <xref target="AUDIT-CHARTER"/> name, quoted or closely paraphrased from those texts, and gives the part of this document that addresses it. Where this document leaves a problem to other work, the row says so. The charter's first deliverable, an architecture, and its third and fourth, protocol extensions and deployment practice, are outside a record format; the rows below fall under its second deliverable, audit data models and semantics, unless a row names another.</t>
      <table>
        <name>AUDIT problems and the parts of this document that address them</name>
        <thead>
          <tr>
            <th align="left">AUDIT problem</th>
            <th align="left">where it is stated</th>
            <th align="left">this document</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">who initiated an action</td>
            <td align="left">BoF request</td>
            <td align="left">
              <tt>agent.id</tt>, <tt>agent.credentialDigest</tt>, <tt>delegation.subject</tt> and <tt>delegation.subjectKind</tt>, <xref target="members"/></td>
          </tr>
          <tr>
            <td align="left">under which authority it occurred</td>
            <td align="left">BoF request</td>
            <td align="left">
              <tt>delegation.authorityDigest</tt> and <tt>decision.policyDigest</tt>, with <tt>evaluation</tt> saying whether the authority was evaluated, <xref target="members"/> and <xref target="evaluation"/></td>
          </tr>
          <tr>
            <td align="left">how permissions evolved during execution</td>
            <td align="left">BoF request</td>
            <td align="left">one record per decision, joined by <tt>correlation.id</tt>; <tt>remediation</tt> for each revocation or downgrade with its enforcement and the effect after it, <xref target="correlation"/>. A record carries one delegation hop and no delegation chain</td>
          </tr>
          <tr>
            <td align="left">attributing actions to a user, an agent instance or a delegation context</td>
            <td align="left">charter, challenges</td>
            <td align="left">
              <tt>agent</tt> and <tt>delegation</tt>, with the request bound by digest to the action, resource and arguments, <xref target="members"/></td>
          </tr>
          <tr>
            <td align="left">visibility across long-running or distributed workflows</td>
            <td align="left">charter, challenges</td>
            <td align="left">
              <tt>correlation.id</tt> with <tt>correlation.scope</tt> of <tt>cross-party</tt>, and the subject convention that binds one identifier to the request, the interval and the record, <xref target="subject"/> and <xref target="correlation"/></td>
          </tr>
          <tr>
            <td align="left">delegation relationships, dynamic authorization context and identity transitions</td>
            <td align="left">charter, challenges</td>
            <td align="left">the authorization context of each decision, including the freshness of every input it relied on, <xref target="evaluation"/>; identity transitions are left to the identity work the charter relies on</td>
          </tr>
          <tr>
            <td align="left">interoperable means to exchange or verify audit information across domains</td>
            <td align="left">charter, challenges</td>
            <td align="left">the canonical form, <xref target="canonical"/>; the verification order, <xref target="verifying"/>; the open conformance corpus, <xref target="vectors"/> and <xref target="impl"/></td>
          </tr>
          <tr>
            <td align="left">verifiable by a party that trusts neither the agent nor its operator</td>
            <td align="left">charter</td>
            <td align="left">the recomputes, which refuse a record its own key holder altered, <xref target="tamper"/>; the derived tier, <xref target="observation"/>; and what a record cannot prove, <xref target="security-considerations"/></td>
          </tr>
          <tr>
            <td align="left">user intent</td>
            <td align="left">BoF request, charter</td>
            <td align="left">not carried; a record can bind an intent record by digest as it binds the authority document, and keeps the user's statement apart from the decision</td>
          </tr>
          <tr>
            <td align="left">invoked or declined actions</td>
            <td align="left">BoF request, charter</td>
            <td align="left">
              <tt>decision.reported</tt> beside <tt>effect.observed</tt> and the derived <tt>agreement</tt>, so a declined action that took effect is visible, <xref target="members"/></td>
          </tr>
          <tr>
            <td align="left">exchanged data</td>
            <td align="left">BoF request, charter</td>
            <td align="left">
              <tt>resource.argumentsDigest</tt> binds the arguments by digest and carries none of them, <xref target="members"/> and <xref target="privacy-considerations"/></td>
          </tr>
          <tr>
            <td align="left">resulting outcomes</td>
            <td align="left">BoF request, charter</td>
            <td align="left">
              <tt>effect</tt>, its write chain and the before-state and after-state roots, <xref target="members"/></td>
          </tr>
          <tr>
            <td align="left">a common identifier linking user intent to resulting actions across boundaries</td>
            <td align="left">BoF request, charter</td>
            <td align="left">
              <tt>correlation.id</tt>, the first subject entry's name, <xref target="subject"/> and <xref target="timestamps"/></td>
          </tr>
          <tr>
            <td align="left">authorization as a time-evolving state</td>
            <td align="left">charter</td>
            <td align="left">
              <tt>evaluation.inputs</tt>, <tt>posture.assessedAt</tt> and <tt>remediation</tt>, <xref target="evaluation"/> and <xref target="correlation"/></td>
          </tr>
          <tr>
            <td align="left">selective disclosure and privacy</td>
            <td align="left">charter</td>
            <td align="left">digests in place of the five bound documents, and anchors over a digest alone, <xref target="privacy-considerations"/>; no mechanism for disclosing part of a record's own members</td>
          </tr>
          <tr>
            <td align="left">collecting, aggregating, verifying and transparency-logging records, possibly by an independent auditor</td>
            <td align="left">charter, scope and deliverable 2</td>
            <td align="left">what a retaining party keeps, the anchor kinds including a transparency log, and the dating check, <xref target="retained"/>; no protocol for collection or retrieval</td>
          </tr>
          <tr>
            <td align="left">a data model for records</td>
            <td align="left">BoF request, new work</td>
            <td align="left">this document</td>
          </tr>
          <tr>
            <td align="left">protocols to store and retrieve records</td>
            <td align="left">BoF request, new work</td>
            <td align="left">not defined; <xref target="retained"/> defines what is stored and leaves the protocol open</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>This document replaces draft-gilda-wimse-agent-audit-record. Its target is the AUDIT BoF and the working group it proposes. The revisions listed below as -02, -01 and -00 are revisions of that document.</t>
      <t>Changes in draft-gilda-audit-agent-audit-record-00:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="retained"/> defines the retention entry a retaining party keeps beside a record: anchors over the envelope digest with their kind and origin, the validation data for the envelope and each anchor, and, for a received record, <tt>receivedAt</tt>. A verifier derives each anchor's time and algorithm family from its proof.</t>
        </li>
        <li>
          <t><xref target="verifying"/> gains the dating check. The earliest anchor that validates dates the record, and no issuance time a record states does. A received record must carry an anchor the retaining party obtained on delivery, and a <tt>receivedAt</tt> outside the bracket from <tt>issuedAt</tt> to that anchor, within the skew tolerance, makes the entry malformed. The check is stated to be a consistency check: it rests on the sender's clock and on the retaining party anchoring on delivery, a digest anchored before delivery does not establish receipt, and the late-anchor limit is stated as an assumption.</t>
        </li>
        <li>
          <t><xref target="anchor-rules"/> gives an offline validation rule for each anchor kind, and says when a transparency-log anchor is a hash commitment and when a signed token. The predicate's own <tt>correlation.externalAnchor</tt> dates nothing by itself, so vector <tt>N1</tt> has one conforming verdict.</t>
        </li>
        <li>
          <t><xref target="evaluation"/> gains <tt>evaluation.inputs</tt>, required under both statuses: one entry per input the decision depended on, with <tt>lastResult</tt> and <tt>maxAge</tt>, both required. Age is measured from <tt>lastResult</tt> to <tt>decision.reportedAt</tt>, an age equal to <tt>maxAge</tt> is fresh, and <tt>unavailableInput</tt> is derived from the entries and must match them. A forwarded value keeps the source's <tt>lastResult</tt>. Under draft-gilda-wimse-agent-audit-record-02 freshness could not be recorded for an input that was accepted.</t>
        </li>
        <li>
          <t><tt>unavailableInput</tt> gains <tt>policy-source</tt>, for a decision point that could not read its policy or does not hold the profile a request names. <tt>decision.policyDigest</tt> then names the fallback the decision point enforced.</t>
        </li>
        <li>
          <t>The rule for <tt>evaluated</tt> is stated: the reported decision does not depend on any input the decision point could not obtain. <tt>decision.reported</tt> under <tt>not-evaluated</tt> is stated to be the outcome the decision point fell back to, so a fail-open is a <tt>permit</tt> and stays findable.</t>
        </li>
        <li>
          <t><tt>evaluation</tt> carries no member other than <tt>status</tt>, <tt>inputs</tt> and <tt>unavailableInput</tt>. Under the earlier revision a free-text reason beside the closed set was not refused.</t>
        </li>
        <li>
          <t>Each input is mapped to the section of <xref target="EVALUATION"/> that defines it, and a transient refusal under that document is mapped to <tt>not-evaluated</tt> and a permanent one to <tt>evaluated</tt> with <tt>deny</tt>.</t>
        </li>
        <li>
          <t>The write-chain replay is stated in <xref target="members"/>: where the running root starts, what each write must match, and where it must end. Under the earlier revision the body required the replay without defining it.</t>
        </li>
        <li>
          <t><xref target="verifying"/> applies the JSON profile before the signature, because deriving the <xref target="RFC8785"/> bytes the signature covers requires a parse the duplicate-member rule constrains.</t>
        </li>
        <li>
          <t>A closed vocabulary is extended only by a revision, and after the predicate type URI freezes only under a new URI. No vocabulary carries a catch-all value. <xref target="iana"/> states that no revision has yet frozen the URI.</t>
        </li>
        <li>
          <t>A skew tolerance of 300 seconds is defined for every comparison between times written by two parties.</t>
        </li>
        <li>
          <t><xref target="impl"/> records the open implementation, and <xref target="audit-map"/> maps the problems the AUDIT BoF request and proposed charter name to this document.</t>
        </li>
        <li>
          <t>A record under the earlier revision is malformed under this one, because it carries no <tt>evaluation.inputs</tt> (vector <tt>EV13</tt>). The corpus is regenerated, and 31 members are added to <xref target="vectors"/>: <tt>A18</tt> to <tt>A20</tt>, <tt>E4</tt> to <tt>E6</tt>, <tt>EV11</tt> to <tt>EV13</tt>, <tt>FR1</tt> to <tt>FR13</tt> and <tt>R1</tt> to <tt>R9</tt>.</t>
        </li>
      </ul>
      <t>Changes in draft-gilda-wimse-agent-audit-record-02:</t>
      <ul spacing="normal">
        <li>
          <t>A required <tt>evaluation</tt> member records whether the decision point evaluated the request, and under <tt>not-evaluated</tt> names the unavailable inputs from a closed set (<xref target="evaluation"/>). Under -01 a verifier that lost its standing source and denied wrote a record identical to a correctly enforced denial. <tt>decision.reported</tt> and the agreement table are unchanged.</t>
        </li>
        <li>
          <t>An optional <tt>oversight</tt> member records the kind of act a person took behind a decision, and may bind the overseer's own signed record by digest (<xref target="oversight"/>).</t>
        </li>
        <li>
          <t>A record conforming to -01 is malformed under -02, because it carries no <tt>evaluation</tt> member and no member has a default (vector <tt>EV3</tt>). The predicate type URI does not change: no revision has yet frozen it, and the corpus in <xref target="VECTORS"/> is regenerated against this revision.</t>
        </li>
        <li>
          <t>Eight members are added to <xref target="vectors"/>: <tt>A10</tt>, <tt>A11</tt>, <tt>EV1</tt> to <tt>EV4</tt>, <tt>OV1</tt> and <tt>OV2</tt>.</t>
        </li>
      </ul>
      <t>Changes in draft-gilda-wimse-agent-audit-record-01:</t>
      <ul spacing="normal">
        <li>
          <t>The request-digest preimage under <tt>not-bindable</tt> is stated: three members, with no <tt>argumentsDigest</tt> member in any spelling. Under -00 the text named four members and forbade the fourth, so the preimage was open and three spellings gave three digests.</t>
        </li>
        <li>
          <t>Each write carries the request digest it is attributed to, or <tt>unattributed</tt>. <tt>effect.observed</tt> describes this record's request, and it gains <tt>unknown</tt> for an unattributed write inside the scope. A write that belongs to another request no longer changes this record's agreement.</t>
        </li>
        <li>
          <t><tt>agreement</tt> gains <tt>not-exercised</tt>, for a permit beside no effect, and <tt>indeterminate</tt>, for an effect the observer could not attribute. Under -00 a permitted call that was never made read as <tt>disagree</tt>, the value a leaked deny also takes.</t>
        </li>
        <li>
          <t>A statement whose signature fails is malformed, so <xref target="verifying"/> and vector <tt>T2</tt> report the same verdict.</t>
        </li>
        <li>
          <t>Six members are added to <xref target="vectors"/>: <tt>A7</tt>, <tt>A8</tt>, <tt>A9</tt>, <tt>F3b</tt>, <tt>F3c</tt> and <tt>D3</tt>.</t>
        </li>
      </ul>
      <t>draft-gilda-wimse-agent-audit-record-00 was the first revision.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Cliff Singletary pointed out that an earlier revision could not record a decision point that was unable to evaluate, and proposed the separate member that leaves <tt>decision.reported</tt> and the agreement table untouched. Girish Konda reviewed that member against Section 5 of <xref target="EVALUATION"/>, proposed adding the policy input to its closed set, and asked for the reference time, the boundary case and the freshness of accepted inputs that <tt>evaluation.inputs</tt> now carries. Wes Jackson proposed reading stale and never-established inputs from the as-of time and the maximum age. Venkata Uppalapati asked whether a receipt time could be bound to anything a later reader can check, which led to the receipt bracket, and named the late-anchor limit it leaves. Iman Schrock pointed out that the bracket is a consistency check and not proof of receipt, and proposed the case of a digest anchored before delivery. Andreas Ehstand asked whether the human act behind a permit belongs in this format and proposed the member that names its kind. Brian Campbell pointed this work to the AUDIT BoF.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7W97XobR5Im+p9XUYf+YbsXoETqwxK9vbu0RHVrxrZ6JNr9
TO/2LopAkawWWIVBAaLZsuZazrWcKzsRb3xkZFWBorvPmWdmLAKFzKzMyPiO
N6bT6d6m3iyr42L/pClOtot6U7yt5u16Ubxq19flprho18XJ6+Lksmo29MDm
ql3Xfy83ddsUL6t53dE/uv298vx8XX3gUfS5NND+3rzcVJft+va4qJuLdm9v
0c6b8prmXKzLi830sl4uymnJP5mW/HP99xo/nz58uNdtz6/rjqfa3K7od69P
z17tNdvr82p9vLeg0Y/35rSMqum23XGxWW+rPVrLo71yXZW0pnfVfLuuN7f7
e++r2xsa83ivmBaYBP/gOfGPzabqNng3/nNTXq+q9bT6UC/4gQ9Vs6WJiuJy
3W5X/Ko/vXx9tk8fyKL2v6vXi65oL4qyeFWVm6tqzV9el/WSvsRs/6OuNhcH
7fqSvyjX8yv64mqzWXXHDx7wc/xR/aE6sMce8AcPztftTVc9wAgP9vf2ShwC
vwONUhQX2+VStnP/Xdm8L5er4g+8o/v4ttL5O/nqAJv9Py7504N5e03DNThn
mpbf7eT1D+9of6cvsYbpTX3dVdOS/j9992f67nT6+uXge+xPfVFXa3rq7asX
jx49en4s//zm8fNH+s9n3zx7wv98/eP07M3Zm2Msz4ivbqabdtMWJ+kIildr
eis6rvfFuxVR2kU9x+fyXptyfVltjgvbvst6c7U951d6oGM9CMf54HzZnvMW
Nw86GuvB29OTlz+cHlwvMJZvKP5nWtDOpyXJdCCy4ujh0VP68+W7d6f58l9W
5aJ4V1+vlhX957Kpm8vitPlQLdtV9dn1dkye1bS77TbVdTddlucPFl1X3bE0
EDTNJL8ovi/PB6vc46sWDvb055Pvfzo5e/3mRzm+v5Xz913b6AlWH8rlVgk/
PDp9d3Zydio/eN82fEv5rqzWtC/hN1PeZV7vm59P3757/Yc/nk1PXpwpHVVX
9G2zmLYfqnVXX17R7Z5vmJz+9G/Tkz+c/njmFLVdrcpluaIhdVWr/1B+IAS2
uVXyOnx6qDT1+PnzZ/rPp8+fHhnRPX9s/3x+KJ/irk6/e/Pq7em/5UeHb2hn
hXH91FV8g19Wy+pSqJDWXrxuNtWals1/n9E/qvK8XoKhjB0tnUK5oafeV+t0
k4nnPThvL9bVf0zfb6+W1U1NexJ53pZeuL2YLnzmKe9anWaebsLMD0apQ9nA
D/X6b2Xxr9tK5+kTx/Tw4fThM9+VF388eXt2+ra3Lf/AdhRfYcCviz/TpeUr
8AfmlMWLq3JNPyi+IrpZtV21+PqzV+Ka3+C9sLwpbdt0ta5W5bp/l+X7uYx/
922WY/6ufVVgFQ29XTdytX8+fXH25u27sb0QOTCvChI1uFr87w/VfNOuu8++
EE16TjtU1g/ktG2wqQ7AU795cfLdT9+fvP33O2f/0M7L8y2Jih3Ud69JfYy9
vemUBN95x8S12ds7u6q7gmh1e82TLqqLuqk6Emgii4uLTCfAqLrfphMsTCcA
pZAQLKqLC3rHjv6NXy6X7U2Fb64PijP6XsekeelUChMEdOALZvgVpOukINbR
0M/qpqN3oAUxDy4qZbEHxYmtcF6u13XVYWZbiy+lPe+q9QcaRtZU3NBe0ViL
al3zp+Xluqrw4ufV5qaqGqxyUtxcVSzN8zFXLd1NooXtkoYTVljhCbriW5I7
mPSqvSnozndXRVXOr2j1qy296YaeWdY0IQ1zU3YTPFrS0pu2oXde2l4SoeFY
im1DS6Rl1HNeLl0EumvYTlJ1Otrapqp9gXIoJNRpHtpS0mBKIjBszzXNrlsj
u/Vlx3N0NYmRZn5LK22v8avzW3pOTsdpoVx2rRPEDU+erWRdbehGBlJ5X1Ur
GqnCedUbOsFW1+zT8xsXy5J5w3mFe7iQNdDVIpJSkpFJFi1N27Qb2ZR2mdFO
PPSuIkWtuK6b+np7LUpeQarJUlQzfgJ6DNPvaxUrxQ9lQ9uG1xSZSstQ3UMO
pxb6JKpZM53wazKXL65b4te4Dth6TCbvJosxjiectrhRvggNkv5i2umg29we
FK/TfWuI/ttlPb89kPt5XS8Wy2pv7wtmvet2sQXv3XVb+RoN7yttNUiDzvwz
N7Ze2531l08L21zxC1TLrsKKZfV1XLNsyoQ/YJJb1mCUc1LA6ZqVGJG+Inrh
zeeLRB+3izSVHXT1Cz1Bd4SWfs3/+PiRldNPn2hPzm7a4rxd8LR8pvQkncl7
vGa3xR2RFz8oSFPCJIeH/KQNgTtar5mzZUeGffosU1tW5QchNtopnohvWSME
6QeuQslobuz8aTVR/tKy6CVkEYm4OrtexBA7Xtl+UAls4RP6B5MmbTQ932JG
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
lqPiVnKvpMjEZ9QN5DJY9U+bt3kpdRwGd6kVLN2qRSYfIzogsmf8IjpUMx+J
IDMxJxNMyJh9oA74L3ffJYmW79Sk5/x1fpDiBVEyKldIK+mqiamHFgfQcwUl
JfbF779cGvxbmVJNdVFOGfc4HmJh9CwzaLdmWaf4bZrKQoP5YWZOFwOsnotT
husTnK/BctjcTfWgF/3z8vCoqyZiQeA61BvVk8X7UyQPAEJC7HnPlF/N9Htf
SwKNbqlfLfM5MVItnYgg5DAaXgho1l1IFD6/9ZiqIty1GZvvZTWxTcyusYrB
9GLMHUGl94JRkI0eQ/JWCQ2LPRtd0BDZBaJe4JlAwcShe4E2vV3sx+u6kmn6
erVmcGzUBXUDtd0NlbQenb4L/tDdrobk/6gm8mIjHhGWyX0njvqO2F5MQ8g+
47WTLdHfbhGBmYbLG0GLuRTXHG9Y3+stOzeEi9E4UF7XNtgkXVbFiCKl28nl
gIhcRPUIRLEt9feyT4xM2WmSHS5TdgpJYSqFvwjEeTa2OUnoNjfIwx0lPcxw
U3cV15VK0K5HLsIfdHFffoYUaC+/7MSBhddgV1e73n3Ozq36VD08xbAET1nm
s2RE55TDrHegt/Vj1yB5Ju93wOEg73fJ6+wNyk0YQd8BaEp9fgTsEKRhT+lS
NhuGRk+CP11hvE4NBUcZGbFN/cX0w3ZJGq4gVJr7dmRfnLvgc8nibRgfYSXA
iCWQkOm6HT15SsopIzDAOMlIqJ84ptWFy0qOnWVq9jbhSS+v2IESVHd9L7Lp
zDz0WBRCq1KgefrqmcNH58P9tloBIWVAiW4o/oXp08jZovu3QJbXxuo84DuY
RG031JFwRxaOhbI6stEyWNHtRb25qUoEF4gNueSkOcul4KYttmvLEtGmKowg
DH88h9KJKEDu4j7tK4Uebc9fGTMjb09KMcEdJel9IQhvnJoVmsDQlIqeDh9Z
CO8ic8ycuq4EbwQ3WNJqLS+/BATnMvPIw4+FeK1nbPPH7mkNL/NlB8ClPw2g
gz5+YUlk/aitKP+vF1m8lnN2EDiMCTPyVRbd42e0fFuCspeSdP1RqrxrjNqt
uNpTYJMWB1oYjqYyTfdgVUrx54OufADY23m9TGXi/TqcuMhClpeKcZB/DqDx
m5VFN/c1tYpjr/jlX+ljxEv3U0VNWnAqnt+nG7o+piOYV/8jLNmHTdU59nBc
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
VC43xEbOvYRcBt+0E3spl1rbxh9dzMKKfSRDnLOnBO+o8Q80kaS09kblxvGE
ytDyKPaYpBuNHkG1ZQjYK6C8kk486pDcuYg5PosPufYH5neZBa062LJfdoWj
MGM6NwDzcvh6E7mD+ZuDgkWbw9pNM4MGbVikILcEjJi2t+NW8WkczZyNIU15
DuaG7TnSlHdwm29NcdBC3l2/9yrUwXHieYT3FIVi5h5oq5+yd0yJBcz65Zf5
NGWARrUTC01MNVCLz7/01oQ8R0r+azZW40bv9aVWugVZd/KNsjNAPbIZKthb
Qz1sbIGjNLAjy/o0YUmO4WVajqE2jwQf6EMG70ao6OEGCMCFoRYwxkgDDoJR
tNC55MJlxj9IMY2ZFvnoqTeGv3UgIYIZKh+kJjBFarMmVz0uAlAB9dfTr4Ny
U6IrTQgEzExaCeZhXHGABe9FD2aSjnJeGSJL/kNNao8vnwxuDifpmwZhOfMw
ziyrCPZsu5xryo/gozgofraTfjwzDq1Js5XsN13w06MZd1mqm/epz9ONjtrx
909m6UdVo9bx7PRpQnJn/K1sNXz4szzIJKol9Lspp8VkiqWrfvgKyambUsuY
Mtu/5/VLpPzI0sJFdJo6LeccVFIpymbBuGzP6elNyW25uZHL2lT/bcNZoGyx
w33tFqOo3C41HgQV42dFnZajsFYdgxWoFm3kl1UOOVKQAcqF+kcte5PS1OAg
ald1k7Vl+Fm2IWLRBfaOT6H7aRRE+PxmWv1SrYn7CuPnpCAPMMAAbyr03VvM
knU7LgfGlM8AHhmE1rmcuei/AnuWOODLQ5725ZH++CUaHxh+40F4tzvEEVAX
tB2V/rLzfh1owM49cY5tUzy76jYgjnPtM0iQ/xG3TZ4+t/4dVlzGq9028tuk
fT7FkfxaDPam+LXo7Qt9ksB4AkqqIqWa9g4etkNvZxTKJH5/9ffD76Hz84ci
SHZ9m/0+vfRvWYJPkJOXoJKSKfhrELq/9mkuQ858yWeLXCPfmdBKTXfyc01p
91GDJuu19nQJCDKTz+oYQHY1uG1CvZ8LuncpCBwVOg+yLqtNgMoFeMXgRplD
odEChCUnSy3UjNDNVcQqdlzDs246BldmdqZIktUsrZS5S1J1k4qDrffAtTQc
CGo+6glP2H8R1AQTpgMmFXohudK6lUJVdpZul+b2NQUndKNfM9tTS9d9r1Bm
+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
4IHPEhOT0uuD4qXLRVc47f1UNrh7z3q49eJbelG9YjM2E5AljnsPjZuJhpwQ
oG7UcvcKUL9jKU+Mc6mIvjv1KKjMlqgEEkds+7vURFGC9x7ed3GuKH6x3XQe
xrCxJkXKhFDkbBbD/VKxEe1e+2NcVfXak8Vcu5eKYQi8ENTCm+H6oDZPE67T
DhRaTI4lKWEqWBXaNVQXJdk7yRdQs2fGOBcUTziQpX5BbhC//WYpbkPByckj
xqa9e/k1ZJH5xfNHte5N2/SG/YiTZD9xkDh8mk5MN0g/t1tlibZ12NzQx3hM
zLmEubMkcxm71prcDE6HIlbpQocVTYME7hRqMsjfaWdZlevG4/bmWhWt2Gpa
wN0AErdTOnLZA7tGgtRKH0Wp4oLfuLBgDinYKFeZAqa13JTeFTITG+IdlJ2B
4V1rKwAY8XNog4OI/OuTH0+G7LIumxJ5ipEbaudr/EIK/pSNEe0uuH9zBQgn
8aH+9Pa15wMhC2pVWvs3bLC4Adplp4Rimn+rifp6byQ0KGCsrpRs0qvVzXTT
0kMnG1am5Dev1jQf51p+2cmeCNVdDNYZWjZ//Pj6x+nZm7M3pAoLCaZqgdDB
Gi7Ic32PJbIPWPsz1G/WlBjpAo4w1kQjgm8vSUlQ+vIFNR4zdD01tF2HbcJk
Jv4P9izGWhNOfr1uFQyVtx+FTaZex04uoOEJZ/Ww9YkYv8SLrJjZPKo9WxRK
MJtTaW6midsKKtLfVbjT1Az6uamXkm4iD6qGp3iKL42m/kgraU2PqyWAOwmK
cpesRS3bOH1x9uYt+zPgI+R7b6+oxptQXfoZnpE0IJHDviYWr9pp4ya75CnE
zft4TRqWY3d1966aZkddAPJ8NPvaYk1aVPQhdEUZwMifeEM/Rv78O9iXdQVp
e8tNC4Qn0t/c7191wy+C1ecJxnrrBFAYzZ/hckz9gIRH5G1i38Fjx1yCPv/E
9CDtR3mxZFAWp/BLHJNywPAnHFQTqmSMI3VNqd6BpYob60C5jT0RoXDERYhO
69zsa2Dtej67tBVhNyF8oVJHytQNS/eb54+P2NL9nmhOAZl6DXClKt4sQv6S
JeuCJI9GEUWqvj49e3XANnoiRknMQYTAe6Kzk69dr7Zm+oaEDnrrqun8iE6I
OV5V06ODh1qOp4GtEcqakaF8zZ4uO+YuK3CGw09/DcROxdOjqV6+e3eaZKZz
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
/b8Bv5BLYnEBAA==

-->

</rfc>
