<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-yang-provenance-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="yang-data-provenance">Applying COSE Signatures for YANG Data Provenance</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-yang-provenance-06"/>
    <author initials="D." surname="Lopez" fullname="Diego Lopez">
      <organization>Telefonica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <author initials="A." surname="Pastor" fullname="Antonio Pastor">
      <organization>Telefonica</organization>
      <address>
        <email>antonio.pastorperales@telefonica.com</email>
      </address>
    </author>
    <author initials="A." surname="Huang-Feng" fullname="Alex Huang Feng">
      <organization>Deutsche Telekom</organization>
      <address>
        <email>alex.huang-feng@t-systems.com</email>
      </address>
    </author>
    <author initials="A." surname="Mendez" fullname="Ana Mendez">
      <organization>Telefonica</organization>
      <address>
        <email>ana.mendezperez@telefonica.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2026" month="July" day="04"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>provenance</keyword>
    <keyword>signature</keyword>
    <keyword>COSE</keyword>
    <keyword>metadata</keyword>
    <abstract>
      <?line 78?>

<t>This document defines a mechanism based on CBOR Object Signing and Encryption (COSE) signatures to provide and verify the provenance of YANG data, so it is possible to verify the origin and integrity of a dataset, even when those data are going to be processed and/or applied in workflows where a crypto-enabled data transport directly from the original data source is not available. As the application of evidence-based OAM automation and the use of tools such as AI/ML grow, provenance validation becomes more relevant in all scenarios, in support of the assuring the origin and integrity of data. The use of compact signatures facilitates the inclusion of provenance strings in any YANG schema requiring them.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dr2lopez.github.io/yang-provenance/draft-ietf-opsawg-yang-provenance.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-opsawg-yang-provenance/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Operations and Management Area Working Group Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dr2lopez/yang-provenance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 82?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAM automation, generally based on closed-loop principles, requires at least two datasets to be used. Using the common terms in Control Theory, we need those from the plant (the network device or segment under control) and those to be used as reference (the desired values of the relevant data). The usual automation behavior compares these values and takes a decision, by whatever the method (algorithmic, rule-based, an AI model tuned by ML...) to decide on a control action according to this comparison. Assurance of the origin and integrity of these datasets, what we refer in this document as "provenance", becomes essential to guarantee a proper behavior of closed-loop automation.</t>
      <t>When datasets are made available as an online data flow, provenance can be assessed by properties of the data transport protocol, as long as some kind of cryptographic protocol is used for source authentication, with TLS, SSH and IPsec as the main examples. But when these datasets are stored, go through some pre-processing or aggregation stages, or even cryptographic data transport is not available, provenance must be assessed by other means.</t>
      <t>The original use case for this provenance mechanism is associated with <xref target="YANGmanifest"/>, in order to provide a proof of the origin and integrity of the provided metadata, and therefore the examples in this document use the modules described there, but it soon became clear that it could be extended to any YANG datamodel to support provenance evidence. An analysis of other potential use cases suggested the interest of defining an independent, generally applicable mechanism.</t>
      <t>Provenance verification by signatures incorporated in YANG data can be applied to any data processing pipeline, whether they rely on an online flow or use some kind of data store, such as data lakes or time-series databases. The application of recorded data for ML training or validation constitute the most relevant examples of these scenarios.</t>
      <t>This document provides a mechanism for including digital signatures within YANG data. It applies COSE <xref target="RFC9052"/> to make the signature compact and reduce the resources required for calculating it. This mechanism is applicable to any serialization of the YANG data supporting a clear method for canonicalization, but this document considers three base ones: CBOR, JSON and XML.</t>
      <t>In some scenarios, multiple entities may need to provide cryptographic proof over the same provenance information to allow traceability of this content. For this purpose, this specification uses COSE counter signatures <xref target="RFC9338"/>. Counter signatures enable traceability of provenance by allowing multiple entities to attest to the same data object over time.</t>
      <section anchor="target-deployment-scenarios">
        <name>Target Deployment Scenarios</name>
        <t>The provenance mechanisms described in this document are designed to be flexible and applicable in multiple deployment contexts within operational and management practices. The following non-exhaustive list provides examples of intended deployment scenarios:</t>
        <ul spacing="normal">
          <li>
            <t>Device Configuration Integrity: Digital signatures may be applied to device configuration elements to ensure that specific configuration fragments originate from an authorized source (e.g., controller, automation system) and have not been altered in transit. This is useful for zero-touch provisioning and secure configuration distribution in programmable networks.</t>
          </li>
          <li>
            <t>Telemetry and Monitoring Data: When applied to operational state or telemetry data (e.g., YANG-Push updates or Subscription Notifications), provenance signatures can help verify the integrity and authenticity of data collected from network elements, especially when the data may traverse untrusted collection pipelines.</t>
          </li>
          <li>
            <t>Network-Wide Service Orchestration: In multi-vendor or multi-domain environments, provenance can be used to track and validate contributions from different orchestrators or domain controllers in composite service models. This enables trustable service chaining and auditability.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The term "data provenance" refers to information describing the origin of a piece of data and, when available, the history of transformations or transfers it has undergone.</t>
      <t>The signature mechanisms defined in this document provide integrity protection and origin authentication for YANG data at the time of signing. When applied iteratively by different entities along a data path, these signatures can contribute to building a provenance trail. However, such a trail is only as complete as the set of signatures present and its continuity is not guaranteed by these mechanisms alone.</t>
    </section>
    <section anchor="defining-provenance-elements">
      <name>Defining Provenance Elements</name>
      <t>The provenance for a given YANG element <bcp14>MUST</bcp14> be convened by a leaf element, containing the COSE signature bitstring built according to the procedure defined below in this section. The provenance leaf <bcp14>MUST</bcp14> be of type "provenance-signature", defined as follows:</t>
      <artwork><![CDATA[
typedef provenance-signature {
     type binary;
     description
      "The provenance-signature type represents a digital signature
       corresponding to the associated YANG element. The signature is based
       on COSE and generated using a canonicalized version of the
       associated element.";
     reference
      "RFC 9052: CBOR Object Signing and Encryption (COSE): Structures and Process
       draft-ietf-opsawg-yang-provenance";
}
]]></artwork>
      <t>The use of this type is the proper method for identifying signature leaf instances, and therefore whenever this type is used for a leaf element, it <bcp14>MUST</bcp14> be considered a provenance signature element, to be generated or verified according to the procedures described in this section.</t>
      <section anchor="provenance-signature-strings">
        <name>Provenance Signature Strings</name>
        <t>Provenance signature strings are COSE single signature messages with [nil] payload, according to COSE conventions and registries, and with the following structure (as defined by <xref section="4.2" sectionFormat="comma" target="RFC9052"/>):</t>
        <artwork><![CDATA[
COSE_Sign1 = [
protected /algorithm-identifier, kid, serialization-method/
unprotected /algorithm-parameters/
signature /using as external data the content of the YANG
           (meta-)data without the signature leaf/
]
]]></artwork>
        <t>The COSE_Sign1 procedure yields a bitstring when building the signature and expects a bitstring for checking it, hence the proposed type for provenance signature leaves. The structure of the COSE_Sign1 consists of:</t>
        <ul spacing="normal">
          <li>
            <t>The algorithm-identifier, which <bcp14>MUST</bcp14> follow COSE conventions and registries.</t>
          </li>
          <li>
            <t>The kid (Key ID), to be locally agreed, used and interpreted by the signer and the signature validator. URIs <xref target="RFC3986"/> and RFC822-style <xref target="RFC5322"/> identifiers are typical values to be used as kid.</t>
          </li>
          <li>
            <t>The serialization-method, a string identifying the YANG serialization in use. It <bcp14>MUST</bcp14> be one of the three possible values "xml" (for XML serialization <xref target="RFC7950"/>), "json" (for JSON serialization <xref target="RFC7951"/>) or "cbor" (for CBOR serialization <xref target="RFC9254"/>).</t>
          </li>
          <li>
            <t>The value algorithm-parameters, which <bcp14>MUST</bcp14> follow the COSE conventions for providing relevant parameters to the signing algorithm.</t>
          </li>
          <li>
            <t>The signature for the YANG element provenance is being established for, to be produced and verified according to the procedure described below for each one of the enclosing methods for the provenance string described below.</t>
          </li>
        </ul>
        <section anchor="use-of-countersignatures">
          <name>Use of Countersignatures</name>
          <t>The primary provenance signature is a COSE_Sign1 message generated over the canonicalized input defined above. Additional entities <bcp14>MAY</bcp14> subsequently apply countersignatures to this COSE_Sign1 message. These countersignatures are integrated within the existing COSE signature object and do not modify the pimary signature input or its value.</t>
          <t>COSE supports the inclusion of countersignatures as defined in <xref target="RFC9338"/>. Countersignatures allow additional entities to provide cryptographic proof over an existing COSE signature without modifying the primary signature value. The inclusion of counter signatures does not alter the original COSE_Sign1 structure, nor the canonicalized input used to produce the original signature. Instead, they extend the COSE object by binding additional signers to the existing signed content.</t>
          <t>If the canonicalized input used for generating the primary signature is altered, the original signature will fail to validate. Since countersignatures are computed over the original COSE signature object, they remain bound to that original content. As a result, any modification to the underlying data or to the canonicalization process leads to a validation inconsistency across the chain of signatures. This allows verifiers to detect that the data has been altered and to identify the point in the sequence of signatures at which the inconsistency is introduced.</t>
          <t>In particular, adding counter signatures doesnot change the underlying canonicalized YANG content to which the original COSE_Sign1 signature applies. Countersignatures are composed with the existing COSE signature object, while preserving the primary signature and its association with the same signed content. As a result, the original signature remains unchanged, and every countersignature is added on top of it, binding additional signers to the same signed content. From an encoding perspective, the resulting COSE object, including any countersignatures, is carried within the same provenance leaf, without modifying the YANG data model or the enclosing methods defined in this document. Countersignatures <bcp14>MUST</bcp14> be encoded according to the mechanisms defined in <xref target="RFC9338"/>, including the relevant countersignature structures.</t>
          <t>Provenance signature strings including countersignatures <bcp14>SHALL</bcp14> use full countersignatures according to the definitions in <xref target="RFC9338"/>, with context "CounterSignature", and following the same structure as described above for the primary signature in what related to its protected, unprotected and signature fields. Counter signatures <bcp14>SHALL</bcp14> be included in the unprotected header of the COSE_Sign1 object.</t>
          <t>When multiple counter signatures are present, they <bcp14>SHALL</bcp14> be encoded as an array of COSE_Countersignature structures and carried within the COSE object using the appropriate header parameter defined in <xref target="RFC9338"/>.</t>
        </section>
      </section>
      <section anchor="signature-and-verification-procedures">
        <name>Signature and Verification Procedures</name>
        <t>To keep a concise signature and avoid the need for wrapping YANG constructs in COSE envelopes, the whole signature <bcp14>MUST</bcp14> be built and verified by means of externally supplied data, as defined in <xref section="4.3" sectionFormat="comma" target="RFC9052"/>, with a [nil] payload.</t>
        <t>The byte strings to be used as input to the signature and verification procedures <bcp14>MUST</bcp14> be built by:</t>
        <ul spacing="normal">
          <li>
            <t>Selecting the exact YANG content to be used, according to the corresponding enclosing methods.</t>
          </li>
          <li>
            <t>Applying the corresponding canonicalization method as described in the following section.</t>
          </li>
          <li>
            <t>When countersignatures are present, the same proceduras apply for the generation or verficiation of any countersignature, taking into account the following additinal processing rules:  </t>
            <ul spacing="normal">
              <li>
                <t>Each counter signature <bcp14>MUST</bcp14> be verifiable independently using the public key of the corresponding signer, as defined by the applicable key identifier carried by the countersignature structure.</t>
              </li>
              <li>
                <t>Verification of provenance information <bcp14>MAY</bcp14> include the validation of the primary signature, a subset of the countersignatures, or all of them, depending on the policy of the verifying entity.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>In order to guarantee proper verification, the signature procedure <bcp14>MUST</bcp14> be the last action to be taken before the YANG construct being signed is made available, whatever the means (sent as a reply to a poll or a notification, written to a file or record, etc.), and verification <bcp14>SHOULD</bcp14> take place in advance of any processing by the consuming application. The actions to be taken if the verification fails are specific to the consuming application, but it is <bcp14>RECOMMENDED</bcp14> to at least issue an error warning.</t>
        <ul empty="true">
          <li>
            <t><strong>Note:</strong> In deployments where YANG data are transported through message broker systems, verification can be applied after message deserialization and before instance data processing, consistently with the placement described in <xref target="YANGmsgbroker"/>. In such scenarios, additional schema validation steps (e.g., YANG schema validation performed at the broker level) may complement the provenance mechanism, further strengthening data integrity before application-level processing. The deployment architecture is out of scope for this document, as the provenance mechanisms defined here are intentionally designed for general-purpose applicability across any YANG data processing system.</t>
          </li>
        </ul>
      </section>
      <section anchor="canonicalization">
        <name>Canonicalization</name>
        <t>Signature generation and verification require a canonicalization method to be applied, that depends on the serialization used. According to the three types of serialization defined, the following canonicalization methods <bcp14>MUST</bcp14> be applied:</t>
        <ul spacing="normal">
          <li>
            <t>For CBOR, length-first core deterministic encoding, as defined by <xref target="RFC8949"/>.</t>
          </li>
          <li>
            <t>For JSON, JSON Canonicalization Scheme (JCS), as defined by <xref target="RFC8785"/>.</t>
          </li>
          <li>
            <t>For XML, Exclusive XML Canonicalization 1.0, as defined by <xref target="XMLSig"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="provenance-signature-yang-module">
        <name>Provenance-Signature YANG Module</name>
        <t>This module defines a provenance-signature type to be used in other YANG modules.</t>
        <sourcecode markers="true" name="ietf-yang-provenance@2026-06-30.yang"><![CDATA[
module ietf-yang-provenance {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-yang-provenance";
  prefix iyangprov;

  organization "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Authors:  Alex Huang Feng
               <mailto:alex.huang-feng@t-systems.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>
               Antonio Pastor
               <mailto:antonio.pastorperales@telefonica.com>
               Henk Birkholz
               <mailto:henk.birkholz@sit.fraunhofer.de>";

  description
    "Defines a binary provenance-signature type to be used in other YANG
    modules.

    Copyright (c) 2026 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, is permitted pursuant to, and subject to the license
    terms contained in, the Revised BSD License set forth in Section
    4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX; see the RFC
    itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  typedef provenance-signature {
    type binary;
    description
      "The provenance-signature type represents a digital signature
      corresponding to the associated YANG element. The signature is based
      on COSE and generated using a canonicalized version of the
      associated element.";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="enclosing-methods">
      <name>Enclosing Methods</name>
      <t>Once defined the procedures for generating and verifying the provenance signature string, let us consider how these signatures can be integrated with the associated YANG data by enclosing the signature in the data structure. This document considers four different enclosing methods, suitable for different stages of the YANG schema and usage patterns of the YANG data. The enclosing method defines not only how the provenance signature string is combined with the signed YANG data but also the specific procedure for selecting the specific YANG content to be processed when signing and verifying.</t>
      <t>Appendix A includes a set of examples of the different enclosing methods, applied to the same YANG fragment, to illustrate their use.</t>
      <section anchor="including-a-provenance-leaf-in-a-yang-element">
        <name>Including a Provenance Leaf in a YANG Element</name>
        <t>This enclosing method requires a specific element in the YANG schema defining the element to be signed (the enclosing element), and thus implies considering provenance signatures when defining a YANG module, or the use of augmentation to include the provenance signature element in a existing YANG module.</t>
        <t>When defining a provenance signature leaf element to appear in a YANG schema by means of this enclosing method, the provenance-signature leaf <bcp14>MAY</bcp14> be defined to be at any position in the enclosing element, but only one such leaf <bcp14>MUST</bcp14> be defined for this enclosing element. If the enclosing element contains other non-leaf elements, they <bcp14>MAY</bcp14> define their own provenance-signature leaf, according to the same rule. In this case, the provenance-signature leaves in the children elements are applicable to the specific child element where they are enclosed, while the provenance-signature leaf enclosed in the top-most element is applicable to the whole element contents, including the children provenance-signature leaf themselves. This allows for recursive provenance validation, data aggregation, and the application of provenance verification of relevant children elements at different stages of any data processing pipeline.</t>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by taking the whole enclosing element and eliminiating the leaf containing the provenance signature string.</t>
        <t>As example, let us consider the two modules proposed in <xref target="YANGmanifest"/>. For the platform-manifest module, the provenance for a platform would be provided by augmenting the current schema with the optional platform-provenance leaf shown below:</t>
        <artwork><![CDATA[
module: ietf-platform-manifest
  +--ro platforms
     +--ro platform* [id]
       +--ro id                      string
       +--ro name?                   string
       +--ro vendor?                 string
       +--ro vendor-pen?             uint32
       +--ro software-version?       string
       +--ro software-flavor?        string
       +--ro os-version?             string
       +--ro os-type?                string
       +--ro platform-provenance?    provenance-signature
       +--ro yang-push-streams
       |  +--ro stream* [name]
       |     +--ro name
       |     +--ro description?
       +--ro yang-library
       + . . .
       .
       .
       .
]]></artwork>
        <t>For data collections, the provenance of each one would be provided by augmenting the schema with an optional collector-provenance leaf, as shown below:</t>
        <artwork><![CDATA[
module: ietf-data-collection-manifest
  +--ro data-collections
     +--ro data-collection* [platform-id]
     +--ro platform-id
     |       -> /p-mf:platforms/platform/id
     +--ro collector-provenance?   provenance-signature
     +--ro yang-push-subscriptions
       +--ro subscription* [id]
         +--ro id
         |      sn:subscription-id
         +
         .
         .
         .
     + . . .
     |
     .
     .
     .
]]></artwork>
        <t>Note how, in the two examples, the element bearing the provenance signature appears at different positions in the enclosing element. And note that, for processing the element for signature generation and verification, the signature element <bcp14>MUST</bcp14> be eliminated from the enclosing element before applying the corresponding canonicalization method.</t>
        <t>Note that, in application of the recursion mechanism described above, a provenance element could be included at the top of any of the collections, supporting the verification of the provenance of the collection itself (as provided by a specific collector), without interfering with the verification of the provenance of each of the collection elements. As an example, in the case of the platform manifests it would look like:</t>
        <artwork><![CDATA[
module: ietf-platform-manifest
  +--ro platforms
     +--ro platform-collection-provenance? provenance-signature
     +--ro platform* [id]
       +--ro platform-provenance?          provenance-signature
       +--ro id                            string
       +--ro name?                         string
       +--ro vendor?                       string
       + . . .
       .
       .
       .
]]></artwork>
        <t>Note here that, to generate the YANG content to be processed in the case of the collection the provenance leafs of the indivual elements <bcp14>SHALL NOT</bcp14> be eliminated, as it <bcp14>SHALL</bcp14> be the case when generating the YANG content to be processed for each individual element in the collection.</t>
      </section>
      <section anchor="including-a-provenance-signature-in-yang-push-notifications">
        <name>Including a Provenance Signature in YANG-Push Notifications</name>
        <t>The signature mechanism proposed in this document <bcp14>MAY</bcp14> be used with YANG-Push <xref target="RFC8641"/> to sign notifications generated  directly by publisher nodes. The signature is carried inside the notification envelope header defined in <xref target="I-D.ietf-netconf-notif-envelope"/> as a new extension.</t>
        <t>The YANG content to be processed <bcp14>MUST</bcp14> consist of the content defined by the "contents" element in <xref target="I-D.ietf-netconf-notif-envelope"/>.</t>
        <t>The following sections define the YANG module that augments the "ietf-yp-notification" module. It extends the notification envelope header with a new leaf for the provenance signature and an augmentation to the "ietf-notification-capabilities" to enable clients discover the support of the provenance signature.</t>
        <section anchor="yang-tree-diagram">
          <name>YANG Tree Diagram</name>
          <t>The following is the YANG tree diagram <xref target="RFC8340"/> for the "ietf-yp-provenance" module.</t>
          <artwork><![CDATA[
module: ietf-yp-provenance

  augment /sysc:system-capabilities/notc:subscription-capabilities
            /iypn:notification-metadata/iypn:metadata:
    +--ro notification-provenance?   boolean

  augment-structure /iypn:envelope:
    +-- provenance?   iyangprov:provenance-signature
]]></artwork>
          <t>And the following is the full YANG tree diagram for the notification structure.</t>
          <artwork><![CDATA[
module: ietf-yp-notification

  structure envelope:
    +-- event-time         yang:date-and-time
    +-- hostname?          inet:host
    +-- sequence-number?   yang:counter32
    +-- provenance?        iyangprov:provenance-signature
    +-- contents?          <anydata>
]]></artwork>
          <t>Unlike the first enclosing method, in this second enclosing method the provenance leaf is added by augmenting a structure (/iypn:envelope). The provenance leaf is inserted before the contents leaf.
This ordering is important because the provenance signature <bcp14>MUST</bcp14> cover the content of the notification but <bcp14>MUST NOT</bcp14> include itself in the signature computation. This ensures the signature remains valid and verifiable. YANG augmented structures typically respect the convention that the anydata node, when present, should appear as the last element in the structure. Therefore, any newly augmented elements are automatically placed before it.</t>
        </section>
        <section anchor="yang-module">
          <name>YANG Module</name>
          <t>The "ietf-yp-provenance" module augments "ietf-yp-notification" module <xref target="I-D.ietf-netconf-notif-envelope"/> adding the provenance leaf to the notification envelope structure.
It also adds the "notification-provenance" capability to allow clients to discover if provenance signatures are supported.</t>
          <sourcecode markers="true" name="ietf-yp-provenance@2026-06-30.yang"><![CDATA[
module ietf-yp-provenance {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-yp-provenance";
  prefix inotifprov;

  import ietf-system-capabilities {
    prefix sysc;
    reference
      "RFC 9196: YANG Modules Describing Capabilities for
       Systems and Datastore Update Notifications";
  }
  import ietf-notification-capabilities {
    prefix notc;
    reference
      "RFC 9196: YANG Modules Describing Capabilities for
       Systems and Datastore Update Notifications";
  }
  import ietf-yang-provenance {
    prefix iyangprov;
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }
  import ietf-yang-structure-ext {
    prefix sx;
    reference
      "RFC 8791: YANG Data Structure Extensions";
  }
  import ietf-yp-notification {
    prefix iypn;
    reference
      "RFC YYYY: Extensible YANG Model for YANG-Push Notifications";
  }

  organization "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Authors:  Alex Huang Feng
               <mailto:alex.huang-feng@t-systems.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>
               Antonio Pastor
               <mailto:antonio.pastorperales@telefonica.com>";

  description
    "Defines a bynary provenance-signature type to be used in other YANG
    modules.

    Copyright (c) 2026 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, is permitted pursuant to, and subject to the license
    terms contained in, the Revised BSD License set forth in Section
    4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
    (https://trustee.ietf.org/license-info).

    This version of this YANG module is part of RFC XXXX; see the RFC
    itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  sx:augment-structure "/iypn:envelope" {
    leaf provenance {
      type iyangprov:provenance-signature;
      description
        "COSE signature of the 'contents' element of the Notification for
        provenance verification.";
    }
  }

  augment "/sysc:system-capabilities"
        + "/notc:subscription-capabilities"
        + "/iypn:notification-metadata/iypn:metadata" {
    description
      "Extensions to Notification Capabilities enabling clients to
      know whether the provenance signature is supported.";
    leaf notification-provenance {
      type boolean;
      default "false";
      description
        "Support of the provenance signature on YANG-Push
        Notifications.";
    }
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="including-provenance-as-metadata-in-yang-instance-data">
        <name>Including Provenance as Metadata in YANG Instance Data</name>
        <t>Provenance signature strings can be included as part of the metadata in YANG instance data files, as defined in <xref target="RFC9195"/> for data at rest. The augmented YANG tree diagram including the provenance signature is as follows:</t>
        <artwork><![CDATA[
module: ietf-yang-instance-data-provenance
  augment-structure /id:instance-data-set:
    +-- provenance?   iyangprov:provenance-signature
]]></artwork>
        <ul empty="true">
          <li>
            <t><strong>Note:</strong> As in the second enclosing method, since this is a data structure, the <tt>provenance</tt> leaf appears before the <tt>content-data</tt> element.</t>
          </li>
        </ul>
        <t>The resulting YANG tree structure is:</t>
        <artwork><![CDATA[
  structure instance-data-set:
    + . . .
    +-- timestamp?           yang:date-and-time
    +-- provenance?          iyangprov:provenance-signature
    +-- content-data?        <anydata>
]]></artwork>
        <t>The provenance signature defined in this enclosing method applies to the whole content of the instance-data-set structure. This is independent of any other provenance signature strings that might be present within the content-data itself through other enclosing methods.</t>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by taking the contents of instance-data-set structure, excluding the provenance signature element itself and applying the corresponding canonicalization method.</t>
        <section anchor="yang-module-1">
          <name>YANG Module</name>
          <t>This module defines the provenance signature element to be included as metadata of a YANG data instance.</t>
          <sourcecode markers="true" name="ietf-yang-instance-data-provenance@2026-06-30.yang"><![CDATA[
module ietf-yang-instance-data-provenance {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance";
  prefix yidprov;

  import ietf-yang-instance-data {
    prefix id;
    reference
      "RFC 9195: A File Format for YANG Instance Data";
  }

  import ietf-yang-provenance {
    prefix iyangprov;
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  import ietf-yang-structure-ext {
    prefix sx;
    reference
      "RFC 8791: YANG Data Structure Extensions";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Authors:  Ana Mendez
               <mailto:ana.mendezperz@telefonica.com>
               Diego Lopez
               <mailto:diego.r.lopez@telefonica.com>";

  description
    "This module augments YANG instance data to include a provenance
     signature for the content-data block, enabling integrity and
     authenticity verification of the dataset.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or without
     modification, is permitted pursuant to, and subject to the license
     terms contained in, the Revised BSD License set forth in Section
     4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the RFC
     itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision.";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  sx:augment-structure "/id:instance-data-set" {
    description
      "Adds a provenance signature to the instance data set envelope.";
    leaf provenance {
      type iyangprov:provenance-signature;
      description
        "Provenance signature that applies to the full content-data
         block of an instance dataset. This signature can be used to
         verify the integrity and authenticity of the instance data.";
    }
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="EMannotations">
        <name>Including Provenance in YANG Annotations</name>
        <t>The use of annotations as defined in <xref target="RFC7952"/> seems a natural enclosing method, dealing with the provenance signature string as metadata extension and not requiring modification of existing YANG schemas. The provenance-string annotation is defined as follows:</t>
        <artwork><![CDATA[
  md:annotation provenance {
    type provenance-signature;
    description
      "This annotation contains a digital signature corresponding
      to the YANG element in which it appears.";
  }
]]></artwork>
        <t>The specific YANG content to be processed <bcp14>SHALL</bcp14> be generated by eliminating the provenance annotation (encoded according to what is described in Section 5 of <xref target="RFC7952"/>) from the element it applies to, before invoking the corresponding canonicalization method. In application of the general recursion principle for provenance signature strings, any other provenance strings within the element to which the provenance-string applies <bcp14>SHALL</bcp14> be left as they appear, whatever the enclosing method used for them.</t>
        <section anchor="yang-module-2">
          <name>YANG Module</name>
          <t>This module defines a metadata annotation to include a provenance signature for a YANG element.</t>
          <sourcecode markers="true" name="ietf-yang-provenance-annotation@2026-06-30.yang"><![CDATA[
module ietf-yang-provenance-annotation {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation";
  prefix ypmd;

  import ietf-yang-metadata {
    prefix md;
    reference
      "RFC 7952: Defining and Using Metadata with YANG";
  }
  import ietf-yang-provenance {
    prefix iyangprov;
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  organization "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
    WG List:  <mailto:opsawg@ietf.org>

    Authors:  Diego Lopez
              <mailto:diego.r.lopez@telefonica.com>
              Alex Huang Feng
              <mailto:alex.huang-feng@t-systems.com>
              Antonio Pastor
              <mailto:antonio.pastorperales@telefonica.com>
              Henk Birkholz
              <mailto:henk.birkholz@sit.fraunhofer.de>";
    description
      "Defines a binary provenance-signature type to be used in YANG
      metadata annotations

      Copyright (c) 2026 IETF Trust and the persons identified as
      authors of the code.  All rights reserved.

      Redistribution and use in source and binary forms, with or without
      modification, is permitted pursuant to, and subject to the license
      terms contained in, the Revised BSD License set forth in Section
      4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
      (https://trustee.ietf.org/license-info).

      This version of this YANG module is part of RFC XXXX; see the RFC
      itself for full legal notices.";

  revision 2026-06-30 {
    description
      "First revision";
    reference
      "RFC XXXX: Applying COSE Signatures for YANG Data Provenance";
  }

  md:annotation provenance {
    type iyangprov:provenance-signature;
    description
      "This annotation contains the provenance signature for
      the YANG element associated with it";
  }
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The provenance assessment mechanism described in this document relies on COSE <xref target="RFC9052"/> and the deterministic encoding or canonicalization procedures described by <xref target="RFC8949"/>, <xref target="RFC8785"/> and <xref target="XMLSig"/>. The security considerations made in these references are fully applicable here.</t>
      <t>The considered threat model assumes an  attacker with the ability to intercept, observe, copy, replay, or modify YANG data in transit or at rest.</t>
      <t>The mechanisms defined here protect against data tampering: any modification of signed YANG data will result in signature verification failure, providing integrity protection from the point of signing onward.  Additionally, the signature binds the data to the entity holding the corresponding private key, providing origin authentication for the signed data.</t>
      <t>The following threats are explicitly outside the scope of this mechanism:</t>
      <ul spacing="normal">
        <li>
          <t>If the signing entity's private key is compromised, an attacker can produce valid signatures; protection against key compromise must be addressed by the key management infrastructure (e.g., PKI, certificate revocation).</t>
        </li>
        <li>
          <t>These mechanisms do not guarantee that all intermediate steps in a data path provides a signature: a provenance trail is only as complete as the set of signatures that are present, and gaps in signing by intermediate entities are not detectable by these mechanisms alone.</t>
        </li>
        <li>
          <t>A legitimate entity with access to a valid private key may sign incorrect or malicious data; these mechanisms provide no protection against a signing entity that intentionally or unintentionally produces erroneous data.</t>
        </li>
        <li>
          <t>Finally, these mechanisms do not inherently guarantee the freshness of signed data; replay of previously signed valid data is not prevented unless additional mechanisms, such as timestamps or nonces bound to the signature context, are employed.</t>
        </li>
      </ul>
      <t>The verification step depends on the association of the kid (Key ID) with the proper public key. This is a local matter for the verifier and its specification is out of the scope of this document. Similarly, key association with reliable data sources is a deployment decision, though a couple of deployment patterns can be considered, depending on the application scenario under consideration. On the one hand, identities may be associated to controller entities (a domain controller, a person in charge of operational aspects, an organizational unit managing an administrative domain, ec.) owning the private keys to be use in generating the provenance signatures for YANG data such as configurations or telemetry. Alternatively, individual devices may hold the identities and corresponding private keys to generate provenance signatures for locally originated data (e.g., telemetry updates). The use of certificates, PKI mechanisms, or any other secure out-of-band distribution of id-public key mappings is <bcp14>RECOMMENDED</bcp14>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="ietf-xml-registry">
        <name>IETF XML Registry</name>
        <t>This document registers the following URIs in the "IETF XML Registry" <xref target="RFC3688"/>:</t>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yang-provenance
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yp-provenance
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
        <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation
  Registrant Contact: The IESG.
  XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      </section>
      <section anchor="yang-module-name">
        <name>YANG Module Name</name>
        <t>This document registers the following YANG modules in the "YANG Module Names" registry <xref target="RFC6020"/>:</t>
        <artwork><![CDATA[
  name: ietf-yang-provenance
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-provenance
  prefix: iyangprov
  reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
  name: ietf-yp-provenance
  namespace: urn:ietf:params:xml:ns:yang:ietf-yp-provenance
  prefix: inotifprov
  reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
  name: ietf-yang-instance-data-provenance
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance
  prefix: yidprov
  reference: RFC XXXX
]]></artwork>
        <artwork><![CDATA[
  name: ietf-yang-provenance-annotation
  namespace: urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation
  prefix: ypmd
  reference: RFC XXXX
]]></artwork>
      </section>
      <section anchor="yang-sid-file">
        <name>YANG SID-file</name>
        <t>IANA is requested to register a new ".sid" file in the "IETF YANG-SID Ranges" <xref target="RFC9595"/>:</t>
        <artwork><![CDATA[
SID range entry point: TBD
SID range size: 20
YANG module name: ietf-yang-provenance
reference: RFC XXXX
]]></artwork>
        <t>A ".sid" file is proposed in Appendix B.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>An open-source reference implementation, written in Java, is available at <eref target="https://github.com/tefiros/cose-provenance">https://github.com/tefiros/cose-provenance</eref>. This implementation has been used to generate the examples in the appendix of this document, and was first demonstrated at the IETF 122 Hackathon. Work is ongoing to explore its integration with other open-source YANG modules. A Kafka message broker integration was presented at the IETF 123 Hackathon aiming at convergence with current efforts on YANG Push. The implementation is available at <eref target="https://github.com/tefiros/kafka-provenance">https://github.com/tefiros/kafka-provenance</eref>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC5322">
          <front>
            <title>Internet Message Format</title>
            <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5322"/>
          <seriesInfo name="DOI" value="10.17487/RFC5322"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="RFC7952">
          <front>
            <title>Defining and Using Metadata with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines a YANG extension that allows for defining metadata annotations in YANG modules. The document also specifies XML and JSON encoding of annotations and other rules for annotating instances of YANG data nodes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7952"/>
          <seriesInfo name="DOI" value="10.17487/RFC7952"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore. Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9195">
          <front>
            <title>A File Format for YANG Instance Data</title>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>There is a need to document data defined in YANG models at design time, implementation time, or when a live server is unavailable. This document specifies a standard file format for YANG instance data, which follows the syntax and semantics of existing YANG models and annotates it with metadata.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9195"/>
          <seriesInfo name="DOI" value="10.17487/RFC9195"/>
        </reference>
        <reference anchor="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="RFC9338">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="December" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9338"/>
          <seriesInfo name="DOI" value="10.17487/RFC9338"/>
        </reference>
        <reference anchor="RFC9595">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="A. Pelov" initials="A." role="editor" surname="Pelov"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>YANG Schema Item iDentifiers (YANG SIDs) are globally unique 63-bit unsigned integers used to identify YANG items. SIDs provide a more compact method for identifying those YANG items that can be used efficiently, notably in constrained environments (RFC 7228). This document defines the semantics, registration processes, and assignment processes for YANG SIDs for IETF-managed YANG modules. To enable the implementation of these processes, this document also defines a file format used to persist and publish assigned YANG SIDs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9595"/>
          <seriesInfo name="DOI" value="10.17487/RFC9595"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-notif-envelope">
          <front>
            <title>Extensible YANG Model for YANG-Push Notifications</title>
            <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Everything OPS</organization>
            </author>
            <date day="18" month="May" year="2026"/>
            <abstract>
              <t>   This document defines a new extensible Notification structure,
   defined in YANG, for use in YANG-Push Notification messages, both for
   NETCONF and RESTCONF, enabling any YANG-compatible encodings such as
   XML, JSON, or CBOR.  Additionally, it defines two essential
   extensions to this structure, the support of a hostname and a
   sequence number and the support of a timestamp characterizing the
   moment when the data was observed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-notif-envelope-05"/>
        </reference>
        <reference anchor="XMLSig" target="https://www.w3.org/TR/xmldsig-core2/">
          <front>
            <title>XML Signature Syntax and Processing Version 2.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </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="RFC7223">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes configuration data and state data (status information and counters for the collection of statistics).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7223"/>
          <seriesInfo name="DOI" value="10.17487/RFC7223"/>
        </reference>
        <reference anchor="YANGmanifest">
          <front>
            <title>A Data Manifest for Contextualized Telemetry Data</title>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Everything OPS</organization>
            </author>
            <author fullname="Jean Quilbeuf" initials="J." surname="Quilbeuf">
              <organization>Huawei</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica I+D</organization>
            </author>
            <author fullname="Ignacio Dominguez Martinez-Casanueva" initials="I. D." surname="Martinez-Casanueva">
              <organization>Telefonica I+D</organization>
            </author>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   Network platforms use Network Telemetry, such as YANG-Push, to
   continuously stream information, including both counters and state
   information.  This document describes the metadata that ensure that
   the collected data can be interpreted correctly.  This document
   specifies the Data Manifest, composed of two YANG data models (the
   Platform Manifest and the non-normative Data Collection Manifest).
   These YANG modules are specified at the network level (e.g., network
   controllers) to provide a model that encompasses several network
   platforms.  The Data Manifest must be streamed and stored along with
   the data, up to the collection and analytics systems to keep the
   collected data fully exploitable by the data scientists and relevant
   tools.  Additionally, this document specifies an augmentation of the
   YANG-Push model to include the actual collection period, in case it
   differs from the configured collection period.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-collected-data-manifest-10"/>
        </reference>
        <reference anchor="YANGmsgbroker">
          <front>
            <title>An Architecture for YANG-Push to Message Broker Integration</title>
            <author fullname="Thomas Graf" initials="T." surname="Graf">
              <organization>Swisscom</organization>
            </author>
            <author fullname="Ahmed Elhassany" initials="A." surname="Elhassany">
              <organization>Swisscom</organization>
            </author>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   This document describes the motivation and architecture of a native
   YANG-Push notifications and YANG Schema integration into a Message
   Broker and YANG Schema Registry.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-yang-message-broker-integration-13"/>
        </reference>
      </references>
    </references>
    <?line 807?>

<section numbered="false" anchor="appendix-a-examples-of-application-of-the-different-enclosing-methods">
      <name>Appendix A. Examples of Application of the Different Enclosing Methods</name>
      <t>In the examples that follow, the signature strings have been wrapped and, in some cases, indented to improve readability. If these examples are used for any kind of validation, all intermediate carriage returns and whitespace should be deleted to build the actual signature string to be considered.</t>
      <section numbered="false" anchor="xml">
        <name>XML</name>
        <t>Let us consider the following YANG instance, corresponding to a monitoring interface statement, as defined in <xref target="RFC7223"/>:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
</interfaces>
]]></artwork>
        <t>Using the first enclosing method, we will demonstrate how to augment the previous ietf-interfaces YANG module by defining it in the new example module below:</t>
        <artwork><![CDATA[
module interfaces-provenance-augmented {
  yang-version 1.1;
  namespace "urn:example:interfaces-provenance-augmented";
  prefix ifprov;

  import ietf-interfaces {
    prefix if;
  }
  import ietf-yang-provenance {
    prefix iyangprov;
  }

  description
    "Augments ietf-interfaces with provenance information";

  revision "2025-10-08" {
    description
      "Initial revision of the augment module adding provenance information to ietf-interfaces.";
  }

  augment "/if:interfaces" {
    leaf interfaces-provenance {
      type iyangprov:provenance-signature;
      description
        "Signature proving provenance of the interface configuration";
    }
  }
}


]]></artwork>
        <t>The following tree diagram illustrates the augmentation of the ietf-interfaces module with a provenance-signature at the root container:</t>
        <artwork><![CDATA[
module: ietf-interfaces
  +--rw interfaces
     +--rw interface* [name]
     |  +--rw name          string
     |  +--rw type          identityref
     |  ...
     +--rw ifprov:interfaces-provenance?  iyangprov:provenance-signature
]]></artwork>
        <t>The following example illustrates how a provenance signature can be attached to the root interfaces container to protect the entire set of interface configuration and operational data.
This augmentation adds a provenance-signature leaf at the root interfaces container (named "interfaces-provenance" in this case) and produces the following output:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <interfaces-provenance xmlns="urn:example:interfaces-provenance-augmented">
      0oRRowNjeG1sBGdlYzIua2V5ASag9lhAvzyFP5HP0nONaqTRxKmSqerrDS6C
      QXJSK+5NdprzQZLf0QsHtAi2pxzbuDJDy9kZoy1JTvNaJmMxGTLdm4ktug==
    </interfaces-provenance>
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
</interfaces>
]]></artwork>
        <t>The second enclosing method shows a notification with the provenance signature included inside the notification envelope. The provenance element is placed immediately before the contents element:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<envelope xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-notification">
    <event-time>2024-02-03T11:37:25.94Z</event-time>
    <provenance xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-provenance">
    0oRRowNjeG1sBGdlYzIua2V5ASag9lhAzyJBpvnpzI/TirrjckAA29q6Qmf
    u56L8ZhUXXhu0KFcKh1qSRFx2wGR/y+xgKigVHYicC7fp/0AlHSXWiKB2sg==
    </provenance>
    <contents>
        <push-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push">
            <id>1011</id>
            <datastore-contents>
                <interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
                    <interface>
                        <name>GigabitEthernet1</name>
                        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
                            ianaift:ethernetCsmacd</type>
                        <admin-status>up</admin-status>
                        <oper-status>up</oper-status>
                        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
                        <if-index>1</if-index>
                        <phys-address>0c:00:00:37:d6:00</phys-address>
                        <speed>1000000000</speed>
                        <statistics>
                            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
                            <in-octets>8157</in-octets>
                            <in-unicast-pkts>94</in-unicast-pkts>
                            <in-broadcast-pkts>0</in-broadcast-pkts>
                            <in-multicast-pkts>0</in-multicast-pkts>
                            <in-discards>0</in-discards>
                            <in-errors>0</in-errors>
                            <in-unknown-protos>0</in-unknown-protos>
                            <out-octets>89363</out-octets>
                            <out-unicast-pkts>209</out-unicast-pkts>
                            <out-broadcast-pkts>0</out-broadcast-pkts>
                            <out-multicast-pkts>0</out-multicast-pkts>
                            <out-discards>0</out-discards>
                            <out-errors>0</out-errors>
                        </statistics>
                    </interface>
                </interfaces-state>
            </datastore-contents>
        </push-update>
    </contents>
</envelope>
]]></artwork>
        <t>The third enclosing method, applicable if the instance is to be stored as YANG instance data at rest, by adding the corresponding metadata, would produce a results as shown below:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<instance-data-set xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-instance-data">
  <name>atRestYANG</name>
  <content-schema></content-schema>
  <revision>
    <date>2024-11-03</date>
    <description>For demos</description>
  </revision>
  <description>Sample for demonstrating provenance signatures</description>
  <contact>diego.r.lopez@telefonica.com</contact>
  <provenance xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-instance-data-provenance">
  0oRRowNjeG1sBGdlYzIua2V5ASag9lhAWff+fMbfNChKUYZ52UTOBmAlYPFe4
  vlZOLyZeW0CU7/2OutDeMCG28+m3rm58jqLjKbcueKLFq8qFJb4mvPY+Q==
  </provenance>
  <content-data>
   <interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
   </interfaces-state>
 </content-data>
</instance-data-set>
]]></artwork>
        <t>Finally, using the fourth enclosing method, the YANG instance would incorporate the corresponding provenance metadata as an annotation, using the namespace prefix specified in the ietf-yang-provenance-annotation module, as introduced in <xref target="EMannotations"/>:</t>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<interfaces-state xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
                  xmlns:ypmd="urn:ietf:params:xml:ns:yang:ietf-yang-provenance-annotation"
                  ypmd:provenance=
                  "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAzen3Bm9AZoyXuetpoTB70SzZqKVxeu
                  OMW099sm+NXSqCfnqBKfXeuqDNEkuEr+E0XiAso986fbAHQCHbAJMOhw==">
    <interface>
        <name>GigabitEthernet1</name>
        <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
            ianaift:ethernetCsmacd</type>
        <admin-status>up</admin-status>
        <oper-status>up</oper-status>
        <last-change>2024-02-03T11:22:41.081+00:00</last-change>
        <if-index>1</if-index>
        <phys-address>0c:00:00:37:d6:00</phys-address>
        <speed>1000000000</speed>
        <statistics>
            <discontinuity-time>2024-02-03T11:20:38+00:00</discontinuity-time>
            <in-octets>8157</in-octets>
            <in-unicast-pkts>94</in-unicast-pkts>
            <in-broadcast-pkts>0</in-broadcast-pkts>
            <in-multicast-pkts>0</in-multicast-pkts>
            <in-discards>0</in-discards>
            <in-errors>0</in-errors>
            <in-unknown-protos>0</in-unknown-protos>
            <out-octets>89363</out-octets>
            <out-unicast-pkts>209</out-unicast-pkts>
            <out-broadcast-pkts>0</out-broadcast-pkts>
            <out-multicast-pkts>0</out-multicast-pkts>
            <out-discards>0</out-discards>
            <out-errors>0</out-errors>
        </statistics>
    </interface>
</interfaces>
]]></artwork>
      </section>
      <section numbered="false" anchor="json">
        <name>JSON</name>
        <t>Let us consider the following YANG instance, corresponding to the same monitoring interface statement, with JSON serialization:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "GigabitEthernet1",
        "type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ]
  }
}
]]></artwork>
        <t>Applying the first enclosing method, a provenance-signature leaf at the top element (named "interfaces-provenance" in this case") would be included following the augmentation module previously defined for the XML example. This will produce the following output:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "GigabitEthernet1",
        "type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ],
    "interfaces-provenance-augmented:interfaces-provenance":
      "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAvzyFP5HP0nONaqTRxKmSqerrDS6C
       QXJSK+5NdprzQZLf0QsHtAi2pxzbuDJDy9kZoy1JTvNaJmMxGTLdm4ktug=="
  }
}

]]></artwork>
        <t>The second enclosing method would translate into a notification including the "provenance" element as follows:</t>
        <artwork><![CDATA[
{
  "ietf-yp-notification:envelope" : {
    "event-time" : "2013-12-21T00:01:00Z",
    "contents": {
      "ietf-yang-push:push-update": {
        "id": 1011,
        "datastore-contents": {
          "ietf-interfaces:interfaces-state": {
            "interface": [ {
                "name": "GigabitEthernet1",
                "type": "ianaift:ethernetCsmacd",
                "admin-status": "up",
                "oper-status": "up",
                "last-change": "2024-02-03T11:22:41.081+00:00",
                "if-index": 1,
                "phys-address": "0c:00:00:37:d6:00",
                "speed": 1000000000,
                "statistics": {
                  "discontinuity-time": "2024-02-03T11:20:38+00:00",
                  "in-octets": 8157,
                  "in-unicast-pkts": 94,
                  "in-broadcast-pkts": 0,
                  "in-multicast-pkts": 0,
                  "in-discards": 0,
                  "in-errors": 0,
                  "in-unknown-protos": 0,
                  "out-octets": 89363,
                  "out-unicast-pkts": 209,
                  "out-broadcast-pkts": 0,
                  "out-multicast-pkts": 0,
                  "out-discards": 0,
                  "out-errors": 0
                }
              }
            ]
          }
        }
      }
    },
    "ietf-yp-provenance:provenance":
    "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAiKEKLQKJT12LsNgxt8WllEI65lyi
    E/m12drCfl+wh7T61cTYhFGdEeX8A5F0vmUWROZebq/VVFewUZeVYGZBOQ=="
  }
}
]]></artwork>
        <t>The third enclosing method, applicable if the instance is to be stored as YANG instance data at rest, by adding the corresponding metadata, would produce a results as shown below:</t>
        <artwork><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set" : {
    "name" : "interfaces-labTID-status",
    "contact" : "sofia.garciarincon.practicas@telefonica.com",
    "timestamp" : "Thu Jul 18 11:42:06 CEST 2024",
    "content-data" : {
      "ietf-interfaces:interfaces": {
        "interface": [
          {
            "name": "GigabitEthernet1",
            "iana-if-type:type": "ianaift:ethernetCsmacd",
            "admin-status": "up",
            "oper-status": "up",
            "last-change": "2024-02-03T11:22:41.081+00:00",
            "if-index": 1,
            "phys-address": "0c:00:00:37:d6:00",
            "speed": 1000000000,
            "statistics": {
              "discontinuity-time": "2024-02-03T11:20:38+00:00",
              "in-octets": 8157,
              "in-unicast-pkts": 94,
              "in-broadcast-pkts": 0,
              "in-multicast-pkts": 0,
              "in-discards": 0,
              "in-errors": 0,
              "in-unknown-protos": 0,
              "out-octets": 89363,
              "out-unicast-pkts": 209,
              "out-broadcast-pkts": 0,
              "out-multicast-pkts": 0,
              "out-discards": 0,
              "out-errors": 0
            }
          }
        ]
      }
    },
    "ietf-yang-instance-data-provenance:provenance" :
    "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAmop/c7wMcjRmiSPVy65F/N6O21dsG
    kjGQjIDRizhu3WMwi9Je+VUf5sqwlhSwQCdv5u7mRXa6Pd9dhCwdxdRCA=="
  }
}
]]></artwork>
        <t>Finally, using the fourth enclosing method, the YANG instance would incorporate the corresponding provenance metadata as an annotation, using the namespace prefix specified in the yang-provenance-metadata module, as introduced in <xref target="EMannotations"/>, and the recommendations in section 5.2.3 of <xref target="RFC7952"/>:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces" : {

    "interface" : [
      {
        "name" : "GigabitEthernet1",
        "iana-if-type:type" : "ianaift:ethernetCsmacd",
        "admin-status" : "up",
        "oper-status" : "up",
        "last-change" : "2024-02-03T11:22:41.081+00:00",
        "if-index" : 1,
        "phys-address" : "0c:00:00:37:d6:00",
        "speed" : 1000000000,
        "statistics" : {
          "discontinuity-time" : "2024-02-03T11:20:38+00:00",
          "in-octets" : 8157,
          "in-unicast-pkts" : 94,
          "in-broadcast-pkts" : 0,
          "in-multicast-pkts" : 0,
          "in-discards" : 0,
          "in-errors" : 0,
          "in-unknown-protos" : 0,
          "out-octets" : 89363,
          "out-unicast-pkts" : 209,
          "out-broadcast-pkts" : 0,
          "out-multicast-pkts" : 0,
          "out-discards" : 0,
          "out-errors" : 0
        }
      }
    ],
    "@": {
        "ypmd:provenance": "0oRRowNjeG1sBGdlYzIua2V5ASag9lhAM/Dx3HVc4GL91jmuU5nWgcmOPPVpARLJkWo5wwQYvGFJpKMXTkjAtArPp8v6Sl1ZD1qHimKMhAoHLMHVxBtrcA=="
    }
  }
}
]]></artwork>
      </section>
      <section numbered="false" anchor="cbor">
        <name>CBOR</name>
        <t>According to <xref target="RFC9254"/>, provenance information <bcp14>MAY</bcp14> be represented in CBOR using either YANG names (CBOR diagnostic notation) or YANG SIDs as map keys. The CBOR diagnostic notation when using name keys would be essentially similar to the JSON encoding presented in the previous section. Both representations are included in the examples below to provide a full reference.</t>
        <t>NOTE TO THE RFC EDITOR: The SID values shown below are illustrative and must be replaced by IANA-assigned values before publication.</t>
        <t>The first enclosing method will produce the following output, in CBOR diagnostic notation:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "GigabitEthernet1",
        "type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ],
    "interfaces-provenance-augmented:interfaces-provenance": h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
    }
}
]]></artwork>
        <t>Note that the provenance leaf in JSON would be represented in BASE64 value and in CBOR diagnostic is a byte string represented with an hexadecimal value.</t>
        <t>And the corresponding representation of the first enclosing method using YANG SIDs will be:</t>
        <artwork><![CDATA[
{
  1500: {                      / ietf-interfaces:interfaces /
    1501: [                     / interface list /
      {
        1502: "GigabitEthernet1",     / name /
        1503: 1800,                   / type identityref /
        1504: 1,                      / admin-status: up /
        1505: 1,                      / oper-status: up /
        1506: "2024-02-03T11:22:41.081+00:00", / last-change /
        1507: 1,                      / if-index /
        1508: "0c:00:00:37:d6:00",        / phys-address /
        1509: 1000000000,             / speed /
        1510: {                       / statistics /
          1511: "2024-02-03T11:20:38+00:00",
          1512: 8157,
          1513: 94,
          1514: 0,
          1515: 0,
          1516: 0,
          1517: 0,
          1518: 0,
          1519: 89363,
          1520: 209,
          1521: 0,
          1522: 0,
          1523: 0,
          1524: 0
        }
      }
    ],
    3162: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'   / provenance-signature leaf /
  }
}

]]></artwork>
        <t>The following example illustrates the notification-based enclosing method (second method), represented in CBOR diagnostic notation.</t>
        <artwork><![CDATA[
{
    "ietf-yp-notification:envelope": {
        "event-time": "2013-12-21T00:01:00Z",
        "contents": {
            "ietf-yang-push:push-update": {
                "id": 1011,
                "datastore-contents": {
                    "ietf-interfaces:interfaces-state": {
                        "interface": [
                            {
                                "name": "GigabitEthernet1",
                                "type": "iana-if-type:ethernetCsmacd",
                                "admin-status": "up",
                                "oper-status": "up",
                                "last-change": "2024-02-03T11:22:41.081+00:00",
                                "if-index": 1,
                                "phys-address": "0c:00:00:37:d6:00",
                                "speed": 1000000000,
                                "statistics": {
                                    "discontinuity-time": "2024-02-03T11:20:38+00:00",
                                    "in-octets": 8157,
                                    "in-unicast-pkts": 94,
                                    "in-broadcast-pkts": 0,
                                    "in-multicast-pkts": 0,
                                    "in-discards": 0,
                                    "in-errors": 0,
                                    "in-unknown-protos": 0,
                                    "out-octets": 89363,
                                    "out-unicast-pkts": 209,
                                    "out-broadcast-pkts": 0,
                                    "out-multicast-pkts": 0,
                                    "out-discards": 0,
                                    "out-errors": 0
                                }
                            }
                        ]
                    }
                }
            }
        },
        "ietf-yp-provenance:provenance": h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
    }
}
]]></artwork>
        <t>And thhis would be the second enclosing method example in YANG SID notation:</t>
        <artwork><![CDATA[
{
  2957: {                           / ietf-yp-notification:envelope /
    2959: "2024-10-10T08:00:11.22Z", / event-time /
    2958: {                           / contents /
      4000: {                         / push-update /
        4001: 1011,                   / id /
        4002: {                       / datastore-contents /
          1500: {                     / ietf-interfaces:interfaces /
            1501: [                    / interface list /
              {
                1502: "GigabitEthernet1",    / name /
                1503: 1800,                  / type identityref /
                1504: 1,                     / admin-status: up /
                1505: 1,                     / oper-status: up /
                1506: "2024-02-03T11:22:41.081+00:00", / last-change /
                1507: 1,                     / if-index /
                1508: "0c:00:00:37:d6:00",       / phys-address /
                1509: 1000000000,            / speed /
                1510: {                     / statistics /
                  1511: "2024-02-03T11:20:38+00:00", / discontinuity-time /
                  1512: 8157,
                  1513: 94,
                  1514: 0,
                  1515: 0,
                  1516: 0,
                  1517: 0,
                  1518: 0,
                  1519: 89363,
                  1520: 209,
                  1521: 0,
                  1522: 0,
                  1523: 0,
                  1524: 0
                }
              }
            ]
          }
        }
      }
    },
    3162: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'  / provenance-signature/
  }
}
]]></artwork>
        <t>The following example illustrates the third enclosing method, represented in CBOR diagnostic notation.</t>
        <artwork><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set": {
    "name": "interfaces-labTID-status",
    "contact": "sofia.garciarincon.practicas@telefonica.com",
    "timestamp": "Thu Jul 18 11:42:06 CEST 2024",
    "content-data": {
      "ietf-interfaces:interfaces": {
        "interface": [
          {
            "name": "GigabitEthernet1",
            "iana-if-type:type": "ianaift:ethernetCsmacd",
            "admin-status": "up",
            "oper-status": "up",
            "last-change": "2024-02-03T11:22:41.081+00:00",
            "if-index": 1,
            "phys-address": "0c:00:00:37:d6:00",
            "speed": 1000000000,
            "statistics": {
              "discontinuity-time": "2024-02-03T11:20:38+00:00",
              "in-octets": 8157,
              "in-unicast-pkts": 94,
              "in-broadcast-pkts": 0,
              "in-multicast-pkts": 0,
              "in-discards": 0,
              "in-errors": 0,
              "in-unknown-protos": 0,
              "out-octets": 89363,
              "out-unicast-pkts": 209,
              "out-broadcast-pkts": 0,
              "out-multicast-pkts": 0,
              "out-discards": 0,
              "out-errors": 0
            }
          }
        ]
      }
    },
    "ietf-yang-instance-data-provenance:provenance":
      h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
  }
}
]]></artwork>
        <t>And this would be the third enclosing method using YANG SID notation:</t>
        <artwork><![CDATA[
{
  3170: {                             / ietf-yang-instance-data:instance-data-set /
    3171: "interfaces-labTID-status", / name /
    3172: "sofia.garciarincon.practicas@telefonica.com", / contact /
    3173: "Thu Jul 18 11:42:06 CEST 2024", / timestamp /
    3174: {                             / content-data /
      1500: {                           / ietf-interfaces:interfaces /
        1501: [                          / interface list /
          {
            1502: "GigabitEthernet1",
            1503: 1800,
            1504: 1,
            1505: 1,
            1506: "2024-02-03T11:22:41.081+00:00",
            1507: 1,
            1508: "0c:00:00:37:d6:00",
            1509: 1000000000,
            1510: {
              1511: "2024-02-03T11:20:38+00:00",
              1512: 8157,
              1513: 94,
              1514: 0,
              1515: 0,
              1516: 0,
              1517: 0,
              1518: 0,
              1519: 89363,
              1520: 209,
              1521: 0,
              1522: 0,
              1523: 0,
              1524: 0
            }
          }
        ]
      }
    },
    3162: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'   / provenance-signature /
  }
}
]]></artwork>
        <t>Note that there is no IANA registered SID for ietf-yang-instance-data:instance-data-set, so a provisional one is used to complete the example.</t>
        <t>Finaly, the following example illustrates the fourth and last enclosing method using CBOR diagonstic notation:</t>
        <artwork><![CDATA[
{
  "ietf-interfaces:interfaces": {

    "interface": [
      {
        "name": "GigabitEthernet1",
        "iana-if-type:type": "ianaift:ethernetCsmacd",
        "admin-status": "up",
        "oper-status": "up",
        "last-change": "2024-02-03T11:22:41.081+00:00",
        "if-index": 1,
        "phys-address": "0c:00:00:37:d6:00",
        "speed": 1000000000,
        "statistics": {
          "discontinuity-time": "2024-02-03T11:20:38+00:00",
          "in-octets": 8157,
          "in-unicast-pkts": 94,
          "in-broadcast-pkts": 0,
          "in-multicast-pkts": 0,
          "in-discards": 0,
          "in-errors": 0,
          "in-unknown-protos": 0,
          "out-octets": 89363,
          "out-unicast-pkts": 209,
          "out-broadcast-pkts": 0,
          "out-multicast-pkts": 0,
          "out-discards": 0,
          "out-errors": 0
        }
      }
    ],

    "@": {
      "ypmd:provenance":
        h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'
    }
  }
}
]]></artwork>
        <t>While this last example uses YANG SID notation for the fourth enclosing method:</t>
        <artwork><![CDATA[
{
  1500: {                             / ietf-interfaces:interfaces /
    1501: [                              / interface list /
      {
        1502: "GigabitEthernet1",
        1503: 1800,
        1504: 1,
        1505: 1,
        1506: "2024-02-03T11:22:41.081+00:00",
        1507: 1,
        1508: "0c:00:00:37:d6:00",
        1509: 1000000000,
        1510: {
          1511: "2024-02-03T11:20:38+00:00",
          1512: 8157,
          1513: 94,
          1514: 0,
          1515: 0,
          1516: 0,
          1517: 0,
          1518: 0,
          1519: 89363,
          1520: 209,
          1521: 0,
          1522: 0,
          1523: 0,
          1524: 0
        }
      }
    ],
    3162: h'd28451a30363786d6c04676563322e6b65790126a0f6584033f0f1dc755ce062fdd639ae5399d681c98e3cf5690112c9916a39c30418bc6149a4a3174e48c0b40acfa7cbfa4a5d590f5a878a628c840a072cc1d5c41b6b70'  / provenance-signature/
  }
}
]]></artwork>
        <t>In the example above, the provenance-signature leaf is represented using the proposed assigned SID (3162). The representation of this leaf is the same whether it is added via the first enclosing method (as a direct augmentation of the interfaces container) or via the fourth enclosing method (as an annotation using the yp-provenance-metadata module). The only difference between these two methods is the semantic context and location of the leaf within the YANG data: in the first method it is part of the root container structure, while in the fourth method it is included as metadata in the @ annotation object. From the perspective of CBOR representation, SIDs are identical in both methods.</t>
        <t>NOTE TO THE RFC EDITOR: Replace the illustrative SID values with the final values allocated by IANA according to <xref target="RFC9595"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="appendix-b-provisional-yang-sid-file-sid-for-ietf-yang-provenance">
      <name>Appendix B. Provisional YANG SID File (.sid) for <tt>ietf-yang-provenance</tt></name>
      <t>The following <tt>.sid</tt> file is provided as a provisional example for implementers. It maps schema nodes defined in the <tt>ietf-yang-provenance</tt> module to numeric SIDs for use in CBOR compact encoding. These SIDs are provisional and will be replaced by IANA-assigned values upon publication of the RFC.</t>
      <sourcecode markers="true" name="ietf-yang-provenance@2025-05-09.yang"><![CDATA[

{
    "ietf-sid-file:sid-file": {
        "module-name": "ietf-yang-provenance",
        "module-revision": "2026-30-06",
        "sid-file-status": "unpublished",
        "description": "Provisional SIDs for ietf-yang-provenance module",
        "reference": "RFC-to-be: Applying COSE Signatures for YANG Data Provenance",
        "dependency-revision": [],
        "assignment-range": [
            {
                "entry-point": "3161",
                "size": "20"
            }
        ],
        "item": [
            {
                "status": "unstable",
                "namespace": "module",
                "identifier": "ietf-yang-provenance",
                "sid": "3161"
            },
            {
                "status": "unstable",
                "namespace": "data",
                "identifier": "/ietf-yang-provenance:provenance-signature",
                "sid": "3162"
            }
        ]
    }
}
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Sofia Garcia (UC3M, sgarciarincon01@gmail.com) for being instrumental in demonstrating the feasibility of the proposed approach, providing a first proof of concept of YANG provenance signatures.</t>
      <t>This document is based on work partially funded by the EU Horizon Europe projects iTrust6G (grant 101139198), CYBERNEMO (grant 101168182), cPAID (grant 101168407), MARE (grant 101191436), and 6G-DALI (grant 101192750).</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963rbRrLgfz5FL/NjrISkSOrOcZzIkmzLtixHkmPHc/Jt
QAIUEYEEDYCS6IznWfZZ9sm2Ln3FhaRs5zvJHmnyjSWgu9FdXV33qm42m7Us
zKKgJ+r702k0DyeX4uD0/Eich5cTL5slQSqGcSJ+2X/1VBx6mSdeJ/F1MPEm
g6Be8/r9JLiGvnNvctn04XVzar0eeFlwGSfznkgzv1bz48HEG8On/MQbZs0w
yIbNeJp6N5dN6m+6NtvbtXTWH4dpGsaTbD6FTsdHF0+E+EZ4URrDF8OJH0wD
+L9JVm+I+vH+Y/gHJlo/Prt4Uq9NZuN+kPRqMKegVxvEkzSYpLO0J7JkFtRg
yhs1Lwk8GOh0GiReBp9JhTfxxYk38S6DMQ5bu4mTq8sknk0XNRP7MI54C00R
dk+xeb12Fcyhs9+riaYwy8K/UgVX/AMhjf+Og8xD6NWg4QzmK8TnfVYIhlW9
8HzshRE8Z3D/iKBvxcklvvGSwQjejLJsmvbW17EhPgqvg5Zqto4P1vtJfJMG
6zzEOna9DLPRrA+d/aQbxdPg43puH7FRBDuQZtYXVOMWd2+Fcb7b+lIEaY2y
cQT4N8tGcUJQZsw6DAHhxEscHj4N+HDpTcKPBMCeuAiiYBhPwoGH7wIJEh+7
tJIWzenHTLdpDeJx3Yy8P8ngcSxee2kWJ6sO7nGv1pR64V5GQVr2kXASZiGg
NnyohQOks4S/+2yGK38STC7x8XAWRXI+UXDLL4V66U7oMJhl6WAU0Myu4rEz
LejcGtHIQ+j8Y9ZM52kWjNPCoj1xgodsZWgCfrbG1AMWWw7PcAKrfNYSj8Pk
ahRHNLRcazC5ch7DF3viSeLNJqN4GCTi/PgCHyuyU3wjpzGCgVp9OdCPaZi1
hrppyw8IwFkSBICWZ6MAJpQlXpoGYmcLXw1iHyazvdnd4z/DDCjYoZeMUzil
GbeYTTKka0+DZOxN5rXaJIZfMjg0gIxnTw42tnd35W97u9v829ZGt8u/bbe7
bf5tZ2/L/NbRv8l2uxub8u3u9qZ8u7uzuyV/29vc49/22qrHXmdPvt3rbm3K
3zY25Fz2tujtcfOQjnZzEmRAGeHfOAuHzWByHeAh6C1rUBPvTl4Cf0A6JZkH
PDAcQ5zPJ5l3SwQLuMUgACoOaPpzkCA1F91WGzt6ySXCX1GFm5ub1s0GUZuL
s/XbceQDpWwO4iTortdq4WToAnin292A35AtwQaEQyIxet6SaAziKAoGWeAz
a1INZbf0EijaFTAJa73jeMqkZgyTBkrb5CbNcAKcjAlxrdZsNgEFEWcGWa12
MQpTAaxtRlTZD4bhBHimBzR9MIIPpmPR99LAF7Dyg8enZ+K0/zvMiaCFUEEg
HU0GyXyKg4sHyBLWDJdIRRYTBwn9gNpeB0k4nIsMDrYhhyIeMofGdTZEGosw
EzCtaQyg70cBDmJ1jJPwMpzQcLwwwHAcwqP+aZA1RAAjixs4R9AhhpOBL4BV
BOIyxlnDeH2aAG4uLA6GWgfm64EIEQY4qkDeOYyAY+Ao0M8TtMYYsMiDGfk8
IsBwkk7jBAAXJgCWaC6GSTy2ZulF3DKNZwksFBYFyCi8a2RTME5L7KfUmj49
oB3CpQQIMJQkGPin+ycCmEU85ga4cuw0Swl0WRxHKZDcwUh4qdg/XgdsBgZ8
07BBfO1Foc/d+wHQMtiaMWCnSIDCXQOdx0V7USTSAXRIwjht4JN0NqXl4Vdw
likQdgLggm3A9bbEhZkffG0KuGZjxdAbhFGYIW+lscLJIJqlcvHWrAFL4XMp
TW4yZyRBrjD2YOIfZqGazLjFeD0OfT8KarVvxDFQuNifDRjnXQA2xGUwQWYG
+6WxexABovjNKI6nMAOYUDgFZteQ38EzkYkoAEYosptYYVoqUQlW6rfEm1TB
BpY8hjEzoK80+YMYpxMhVECgbIibQEyCwJfYqXFmGuFOPMBfgXYhDsKJvA7x
hCQiDS7pjM6APSXwBRpxTSIDDmOmgniQBMAtEId4PD9IYRU+4sEMFiM3VO8+
rmdN7doMsNZCt34w8q7DOOGNTHjL0kANRRPwrohq+MEgTAnC/TmcHNhfOLf0
JZARR7EvHngRiNQgOY3DAcB2FkkUb8AwgLqAk34QiWw2ganCECcvW63WGq4M
RwYagtiv1i68AR+HAdBZX57rDOkZTzRM4wkeMMBZRWUW4S0vSm1sg6aPG0WA
xE3MHFIJIK5bomJDHyskKROUhnA6lzMPPp4FSEGgNUgVBpx4NCykMxAHZH6L
tEsjGVKusYckVBEO/DxALJ5EQK+ZxCC5co78wMO9w0PLVA7gyVPIQoMBOToG
DbIYGE8DPxDFSOGBtMC6BAjkPk2Z6CBwk+koHOj2SNkI81DbksQOxVuExEAe
uhvYdnHx8rwhzs+fEfyPX6fBAL9AGOIBjINbb4znDuSrWaYouL0vBAuURhFn
LnG/QUe4HPEcp0nQnBqWjST98jIJLhmPQf65xBMNj4k/uCvJASJPqR3IjmdA
BnKgjWGeCaA5DNBCtmpxAKSDAw8PepwwFtljaUYLz2HAeBDCsfEZWn/8YYsI
nz4RUQZkx0NlMVb8DbZmOYKrLr7W2RqKmwCaIz/ARmoTikiPK6G9AtKKDYCq
DJKwH8gR4BDArgHzTmPmMyAXA44HHi7bozcge0Y+wi64zVDQ9nEhmrbjjCQJ
iDXzsYCl+CIca1ygF83TkFCZoT+NM3n0FMiRL17Crmc8RQIIUDDiaCTssBAj
LH3c5g6SLeOB0/sEu/va4qsolyjODWhgMTngIaA0xQltJ4BSr1CfTClvSAjQ
Kwt9p+E0wOONpCig9cH/zZFmz4kO6uOPJx+xGhftnFUWPfCwNLR8QM8ioteI
jeE4aKawhoDfIDFOmQ/kRBKQbxDxpOSDmAxiBpwXBiH8aUkYaLAA0XqWKWwB
gGtWo7FL01wtc7Ty8qhEV1cgxW+TwEA03wdkz2DHLcDj0bHh3RLHmQR2yuah
P/6QesenTwj9MYCDZqoH0UILng6gNbNBIBkmE7dUyQVM8QZeNJhFsHiYEKhr
glbhnmyDSXK7EeoAso8awji+wRGJ/YSf8gxJHsofnJBaqvrzyXMPK+4CAC9B
8graIok6gDIB6K8oyjfE8/PTV7RA0H8A9McTxh5LBBzPogzlIIHHitjG2JtL
0cXQnwJLwAOpGH/qjR1ZX+tCKB/FKHMC8qIyEnh9lAklqSIuPsHj3BJPNNmc
wXlKAZnpr3QKMoE+e7NUbS6pt/B1CyN4v0GT/PSpBcJY4T1L9YVpWNOGo01T
xf0oQgUXkqGhiEUQuWrax5gVJoYHnDYA9DffiAvSH8VhMI3iOe3WuYI6M48y
DmHT26I8krCQdznhzekjXQhuSX/CPbYQEPrqJfhmBgTv20yfn1gZ71AchBHG
xno3ReUR5FJJKoaxAg1gZTO4HXnAIEHZFVGYWofYPvlIiIn8WxPQiNer1b4F
2JDkC6LzMLyc8UxQrGeGhsaywsFH5HTpqhSfB84gQInwe7RtaFcltgfsSSFU
rvkw8S65veTomRTZgQKzCS/8CF+TUs+DoHXZaigZNQqShi1Ls6GKpXYQAwMS
MvpBgMoXcibeWJRCNBlhyWo4i+jgfwySuJnFSMwJrihtK0UchCkmXfbs/RCV
KKAO+AcMDr3gpI7HhAlSy0DC+y2ZxIDEJHO21cK4wDlwbDSc9wSJpBZobfRI
UZUjfqLHIOSXwECq1nw9S0diNvVJ6YOm57M+IjMbDl6hiUYe5XTNEbas/UW+
OQqiqW0NMCIOYbmSOS1lVGhDCm+bUq0UGjRAZMedJ46vRE7uiQgFuwGfA9KJ
RrMZSRJyQJy4YtIMwlc8dPMtksXzICHkO01AY0V7C1sej+Xpa8ICfVQDEvm3
H7MIPLkOk3gip1aU50nMRjIDZ/CKjSrMeQNGOrnXKS/WD4ekBwIF0tOIE9oA
+T2DqSTwIeOLAfsCZFA0fxLIUomNTClTQaAgHFLNgEiFGhU9YM6ZpKRI8fAY
X+PGKFfAIQlf9DcTvCsQbdDpAGrVyZvzC/SK4L/i1Sn9fnb005vjs6ND/P38
2f7Ll/qXmmxx/uz0zctD85vpeXB6cnL06pA7w1PhPKrVT/Z/qbMcXD99fXF8
+mr/Zb2cwDJdJSESdI2MNO2aQ5QfH7z+v/+nswkc538By+l2OnsgYvAfu52d
TfgDMYy/BuLbXP6Jkl0NDheyeWmJGXhTpG8pqWLpKL5B3E+Qf3z7L4TMrz3x
sD+YdjYfyQe4YOehgpnzkGBWfFLozEAseVTyGQ1N53kO0u58939x/lZwtx4+
/IGE22Zn94dHNcYRtKeIupKTlerNGjpRc1u4kNuSM1eRnXAaBmwPYLvgxG/w
ube0PewC2w9nhQUSJMl6bBad6RGdmgxoecqGmUsQsKT+Z4RJh4OjhbWEfyth
ytAz1K0llSFskWqdo1Ub7yYvJaOJo5yBs07ZSttyaTec7YRs0Wj+mlsUQosz
Hmv+UiPxslFDSeouLdb0hk/GLIx8llctqoUqQtQSz+IbtAUpPYQfI2+jQ+Cx
zSaCI6XMAaDsqyXIL8KJS+kgomKbsXwYTmYIKqmta2sLaeQ8ZQv2uCySvyT1
galamtyRZAcF+QtB7InLEG0GBGrJOAQduj6RXXjHH/XQSDhUTVgOkHQRV0UC
qkGMPqyDTJwEvCxvypI2an9Gsh0jTj9AgVmhT8oIwmKYNWeahJof4u98Gtj2
qqaeA1A+NbSXSkkOBbD//Oc/NewFL0VZP/EHupLYZQvrAMFt/k9+wgeP+Do/
EHV3dtYg1DsJ5NaSCTEv1skxAJIJtJrGExs+lsHE3hqGh/kMQIrMjGos9Gbg
TiAqsbaPI8xSqW0Z5Sogl0VqNDQ1gvVh9c26XL+2vKrVA+0X5ORa3YXSE+fA
YQeM+JYnSn1+qYsZJvOJ9rBmWeIJZQjkYarQaxo4iiXaV0AUo0gKAz9CJ3Q0
4tBp3maEtFMaeq3xtTkwfyRC5+SQiorIVyrzmV7Mes1mocWBbC/Yt/LYlKlM
6syQImYRAMsDyG4Hx9BjpqScEigQyPM8uYxcek/uN9akxH/9axJG//UrENJ5
FHto6ranK1VWVzpKgksS2xWsaZzM0bRShR/igWfYClAgbdtogATK7GOz1f30
aU0eavzg/8a1dsT34l81yWWg77q2zTclFoRIsK9CmLJjrGgyvqzXZpPS3lOg
wtAEzs16zQBlXR6vlEx/iXaNsb+EVH3bCqIwHX8eoLWyuUbNERTxLMuZaxDD
1mu/Goy3Vmlo6DwMIh+JjKG7xPc153IHRcgHt6AaZG4fMsCMgsEVm3sa6LCX
9iE8UDEJ6HgKsGEpVsN0r5XybDZSrt6aOp2PFDXPIenEZJcr3aWbUQh8lc4V
48gyxGqp8WB/xYMXIH0fH66pYxbFA7Z/XiYBGtpn0kvqiL7MYmlVcPaVU9Is
UqolcdISb86OpREGAwpACMbWKBJ3u800m8PhoZcYYwAvzbr4kAEskRorh5Pr
54Lp66WUYSkcIHliHdqmjW2uGS4kQxIZDDX3nOidYTuadkvL+dRvx1FdPMDN
xkACd0BaF8ZJwAEE7eP3NJ7ItmR9K2/cgcYUDTbox4lsTqyjpDlGSkBzDQOa
lCg7jGVIomUSG1EU2oZ0JrTh1oykrVyKhamvmZ3QWMA+j8CVnGx7ILDmAAcJ
SJ8M0xGzDYWKU3LjSvRbgeJbBJ9FJZxA4MG6rY2E8xrFRI4YSVI9zYLzOT8e
sY1vxBvmqNKWaKRUJT2GYxCIyg8/WoPtQy65hc3blPHUlUTCyXSWGWmtD81a
Yt/3Q2mF0fI7aFcgZ/fT4MMMnkk/xlwZRt3oDGKJxdkQbUInSqEPnkgVUCL9
VOFE+o2AtugQTLNgaQLFDfRjEtTHsa/DQBhSFnholSiKAN0jbAaQ84hsEi8J
GSiZpaNqldl/7cZ0FrwSSK5i5fYmlStXzIrXq+iOwg6HVM4Y5KXrsrUgPw6k
axINhm6oibWNmqs0oHE1Miljkjxl7nD6q0APQfYLUHYhFxT77gzxkBsMDAEU
AVYBDSyZP2iaoUElTdXKyl+rHQ8XTxOPqDwj1ZDEw8WW1EbFYmBTokgMUf3E
uCJpO2uB+EdGtlJ8R+V05pxMB+YFXG8oVx1Z2PowJpvs0Mqse2r/xj4SBPjU
LMoa5BoidFEavoQbWRc4wpn9Col6k/cFKR8iShk++yZs5xy6JUmqACIIlGGQ
ADvjcdCA5+rc0uhH5yNV1Jf30g9Q8OMlaXspmkEca7bHC1eclzctDjneiNV8
pFGDIKfrY+gFMSt51K0Zo0lcBvcEPrutgDNlITrg0NjuEwJWnBw8OGgPuAzy
QHXRjriVkkphAWYypYfNiIzsZSwlMhKPSDzUAv1imkksOwrY9JFcV6O9soko
tRQ3Wn+DnFG54+YiXcVJYfxFyxbDzGdtBHW9Ijeho+f7HE2VxVPy8sDYy0lC
6fyeSA8L7HlM/UFRRTM9Gq4ayheLdnMFOwUx4xrGo1Q4zw2c58BLktBlXnk/
JWoUjQoCbgxuHKwgCWxRqqiy9pXhh5I3acFlIk65FdFibfbaneiuwlZp7pC2
lii5ZsQiZWTDMdoWMLC7jHTml+Abq39h7oSu0gcp6hI+WieXBnqj/xrE0fqT
Z2v7JB5ZYl1RzOAILwASyTFIpbJUaIUWlB5LuyX3mpFpSY8s9SQzTPqSj/tq
7wNntBEQ5iAp0fcYh1X8l3bSlhAzpCbSaiaZjf6yRiAKEQNM98iETZ/Jo52F
CbTGkoNhc/iZjnAEQgeqboIWMLUcrR9USV5kcDl3aNbPdvjMa221ASk6FldB
MOVov0GY5vVy7zoOWQKhaATc5xsQzaY4P0W8eW0cgImLUBHgKdOPm1HsWG3U
AZSmWFvdAMmGIrsoNldaL0CgRoGUTOoykqrkYObsMBsa0728XUh6DfrzzJw+
V9VlWcjSvQw4nDAky/rlrqk/JyvCeUDeS7mTwS3GueQZnvxso3iGXTtsgeaR
CqiTsYodCtKKND56BVOdY+3SNrtv2ZlRLqfZJ0JTdIKFl0olSFEEJUmioE2m
RABfqGNxylhHA8NcyY4wQZlqQO9z82QmhzzOCuTCMFc0qQvxrThCTbRwnvU+
8T7KKA0dkgbTNidvOgMteUD+UklAXAAzc3WwUVpqrBAQ7G3MLPrYy4bV/KLF
q3COrRsoY7vgUA+VdJDGtaRQHY+Yo8tkrkHVNTOrK3BwNCoDw+EGY3RgIKAo
Dm0iRUxYqIYPRwswtmbskD62wihNjK40h9uHqZE7bMbOoLYM30cYFy7Dkfnw
YEQ0uut1UKVLlKTNQwo9GCzmhPc28sHTSHsepDLuGOU2RGWS7GGpJIB4YmLF
UMAASZhlAcdYAcOKKDyDg/gaIsgGrbVGkXJIDy9OHoPRaTsBp69V/DQeCwux
NbpM0tmY0N/EDMogwgEzexsoobUr2o0JC5exvSoIR5ObksF1oClAznIxcxyW
DNMP0xQNYSBBJglyBy8hX2it9kh8++0rYMW9b7/FYAwTgKSSPSx/ahKYmGAK
IeVoY2Wy4fwaGdUDiOmsKRfl6Q0zcrVwTz9wbXm4FRJblJ8lHxDaEFoNQoqg
xXvaKJm+YxFQGTus8oTQ8oERfuh+tSL8bKmcEyusQwqfmqZ2EE9JGzgweOBx
gUwMJUxA9AyiNYqgYdcuzTBnYtMibQNEyAQ9SpTZNrlEH7dWdY1LXELIwoQm
fceCEuOdFVVG6aAoeEkdBcV5VDYH8dSKyFaSeUP5n6sC8JiiclKQtIRNGICw
JzoAz9gqoqaMWtTkl8MLpeLthD7bZ4tximWmgxzPrNWMFGXxscJxljGqrkvT
4bp8LiWKNlibZ2qaKlrq4ilnuuznhQK2jKPTg2Qkt48EWiPHKyvmZIQWOS2S
WZ5IE3gDEAvRozkMkxQ1G7L4YmAIKBagSQ+0wpjngCSPYdYhSaI8ItrgZRxs
HsbiHFE9EA+eH5yvlY+1s7tljfXu5GVDHN2S9Q40D3QFFMbstNrFoTgdUcnH
Rhtrmk0mDDmhoHsZIs0R+FbCXrV73RIi0b5Dp4wGlFH8LfYLPjw4PTwSj4+e
Hr86f8Qco04O5pxn+cduu7vdbG83N9otfFWvybmUNaYoAXqm3OidVgf95Jgy
m0496SSvz5JJD/v3SIlIe7fjqDdJe9izVzYu+dpB2huGtyLEd/jqnyic2Gm+
ok5p96evz/ffPhUP7pKNvkZfoOiNQcZzhCHeBv0e/PpQJ4PDoaU4vCAx6eY3
lyrL/BE7MaHjyxAzPMVDTPDN4l4ukf1RjRvuUzRpCg1L8qPtHzXOwkzoR/le
ufTysgEXpZMXxismlZfOcYUk8sLQhVzqspGX5Ek/qhNC5MNR6of6zHDYymcc
HRrIHB/86yCezpPwcpSJB4M1gWeEaz5cYKCk9o6iEYuMH0r2pghC7M+RxKmR
ev2ghXgQCRoVEw7QBEgmT2x/FjiRvfgBtMRg0qZMv0KJgheIDDqVeieKQmzU
UouwhEaMsUdSmqGwA3wrnXmkDrKoCHI5WQEkzQdmFkxSPsCc6SiDnQhaTO3P
gusQoff4/BDOALWnyC6YEcwFJitVYxpkszVQyzeg+0cqXgaXIJ68VuHOIPIF
MtcCZkItDyX3ZlA+UMeT43WtShByyk1UUtYkIImcOkE+8LdFHwkoHifBYiTP
O/j5JyyCxXp4QqOEWRpEQ+L7ZAyLaM4okmOUPGNiEvAChKGgMoqqJGTqCfE3
1UXGFpWGFuGEeuLu9U9wyE81WXVjSZhXIcrrzwny+ooxXl8c4lUd4fUn7MIn
yX5BjTl/xFEs32BUmLStnLBkVKudkl4gpYdcpFPOP2bS7Y3boNLQi2IVmvd0
RJYYcXRAMeizX3D/lu4SybMg3xgDkatIh1aYvTEviIuKFKYhEDUnVDVndsLA
0pAD0hEOpiVnfTr5VVKJYZKJytgUk3eSidvK5LHnP6alLvQmUfyqBNYiCAvO
S+7TzhnXDKsLFsRmGdUI4rdKFzZWB8qvdex3ulGJCc+UOKA4Jx2vYaMGkEHA
WrSf3Ip9Za7BQyptMLl8vcWbYOWHaBMczUsl0VBYRxiBkIyZCERDQ8pcZOn3
2Dhv7NC8lxx/CA9pMBmqK0XhwvaYlH0DHBV5ItHOxgOdB0rWUKWoEvzk9jxw
vTuyzZqKg4RjE445u1AhLDmsSnNYaCNM6qnNaRrKkSTDNb0ZgUy7gW1T2qJg
SYaU9ixaX9CZ5eb7VfFpQxsUVmaCAzrbLp6V7UUjN9lm7htoIexbFI3V0YwN
TZiGIoOySjeArUB0ADG2h0wbTuCzGlZr+YUhWuI4HxGkli2FmVSKfROyNRiw
pNLtgivg70hcxkSNygWX2NPpjKCJmOwznPnopcFiyF2r7Gx024eRD+fRpLV5
SZDLN3XoBHXQy2STFy0F+zEcAl95nhdvn2qt5pLF0yZl+2pMzGe+GseLDWeG
p+u91Ouq/jxaf4EYXucDFYZs6gT5FTXx0iooDWngM/UBdFRzPvPZ7p+zexsP
a3ETslImtCjRW+WNrETQtbvPCDdojmUPhQXlAl6TBz8K0V5iAmkInLlchQXM
DHmGzucsyg6ECjexLhOgo2KNWVKXNFDpvWTHzFBT0ZWONFnMzYaDylVzcaNK
CujiBpiHwbRTI9Ms4Y1guqX5bzyVxk/98XwSBWdeUeifDKDmWfXY3lGYNIhz
3zWbSaxHlDH77sNvxb9C/1el2PK70BelPwxyty2aT35YsS3nGRZbV7dtgjjg
tp+ByLfRddum8TC7AZqhTDs/LBhXtx1G3rU1mbK2cZofcWFb1C4KiytrW7LF
1K+Mvrg92fg0S0dNtE57Y52G8W+9PnoOu4ob86v1Wtg7VvbcUqR+KPlqFPYT
ULr0G9HC/6k/y34h5QHPlJ37impz4RyhcKcCY1c5RPbhweoT6uzIbyDe5ONn
dOpi5QGi2mZmlsVzlGvgHKfcO4C/3mR9vHKbH0oF8d8SYM1HYh2Y1rCnz+u6
+m1dteUhypb5w0L8KWCPlfKc5g6I9colDoY8mCdy8umkZ/dr2k2+M7+2Fv3q
YNS/a/Yr/Q+hFLrMUNFpaGYPFF4pBw1HeO6DsLiQi7A8mWOSSt5LKwU+LPvi
o9bFCfsNFamuGKk9B1KUVvGS5D28+ew+5pWeTh8vlxYtz9TdAh9aErK8oHCS
lz44kItkGeqjaorkIp0arihvhCt5rHU4kkoR5QA9FEe0xdGiFFb1kYKv1iol
ZAiJO4Iyh2FqkkNQ7BoL8jStmSg7yi4ZsvakWfTybzMRK8xBiWIc6zgx4ooS
nL1UT10LE4r8UFYvE8Uojq9EFF4FX5H/2xTPpibLaMki+aGKv/HPci5XJX9I
WnMHKaS6R5UsUtpjRV7HhClI1BnCkA4pEzuRF6VidAkuWCiUwzXkadoOgmGt
11gqT4v8OpHeJRvEBQGbtMSuP0i2gFxI+8LZ6lwW+njoW5/XK9GzX2hRObcN
caY+h1OHozKN3RHo3TR2qdDPdJCzGZudptubHS66hOM6MSuppcqYgppYtW7G
eUGohPs6bc42/Kr4pZAUEA4LtEbWkX8qVNEJ01tSLxaz1dCUNAluOPEhZdhe
LNssYiAyZMPgFrfNRWbVlRJct7dzhanJeRQC5VLLJuE4M8jDL+U6DnSQTt5p
04ZYXRmMMBOO0z3S5WCVgY0IKdKdypKq3CjOScHIZaZkf6o58KYcOREGACQq
3EMmhUEU0kr8MB2YmlNu2dKyz8s0LgLNBcYuHIYe1sXJw1MmSlM7rLkMH6J2
Eps3NtuAH2qdGpR2dQpteSvwDqchOmIkLMR6Ok8HPXblOitfB5gMXJnPfu04
StfD+XTSc4Coiv7xK/VXr2ZRdLu5y0f6cQybOrHm2TSh1zyirsGsRhTuENpT
3yvlRkTN96URprAF5FYr7oOCvYOYdrxiGdjtxrggs5DiErBWZNakkhrqh8IS
MGuoCUhMr3TrUZxmObYIxzDr4XPdSCW9NLnO/w9qSBnqKBXtIvx4uMVAVD0V
RbEm8hCkPdxw6WB6M0GhhmFLzsai8dZKmY/RbJS3tJfwR5MG4iqQnp2x7qLL
Wnn5Ckr0SQMKvLMCKdXCqFGLXQAUyylxJRzj2fdIJh94qmJlKQmSFFpnW7pZ
6A5GoaVZFdnRhngp5aoMEj0up4vpMEgyPKczWTm3JL+GzJKWYsKloQnXJQSx
vpiJ1JcJ0RFmmFFOjJq+TOEVOitL7jgxTlnkRsdIg2KO4q207cuwN4pkzYkU
jntOFn3gRDWg9NHcmqNrgpZlz3imFKVoYhwzmwCbyKaFNNTwrYU8azWW7vsl
GipbleMFnM6iLMfSUwdDSU5aQT3rQhPpual5qDgX5tIp5hUOSxFVRsYyV6MI
kMUBW9PVw7Wmf0qw1rQqVIsgpGO1+KjyTEq4nYw9kH2RJy7wv+919rZ7Njql
4tBUgDqwhx2aYKVzDpfikmRYYhiLpYo3VKXOFYalo96ddKWI4k4dufZfbepl
gXplIXWVs/6ygIeSyeij1cQMMHfvbxdMZHdnr9OzvqUr54gjJa5XgMClH3kQ
TCcLPvoL/PTUB1AQVdsXRHrpJSqVCbq5j1P8O8YpLg8pnN+HFN6HFP6PDylM
b3tFJbHuiv11OVMSugqcSMYcLtZ2ZMW1ksXCQvIZ9YwG/1D6wz+0mCvf2ITa
ZrRVAQAqHPCTWrRS3+uV+ntdj/kdtFqszLttV1Xm69Xbb7ghIrmzWkfGIMsK
eSy0hCqHuJqA3GoVo6+sb2NEVQkj2uMK8djdcGlmMDs79GYRwHQIsnZQX7jh
58vNPhgWqlmz7umwaHdbywIzbaOqZVIFDepE7oIu93+scrnwpCxJtdfBlcpT
Y4gELmecH9vNE0P5Py3PQe7sbUkjlSoSilcgyAQ9rbsVTStuPE5lLaN81UjX
2II8X800f8dihSnJ77kdgLp/iUXJzvfb187FCpNGA6v5USEcLr3t5SJUmQf9
Zr72G+O28mhahorfJKWhRfymfZis5priFQbuBgahgqVtmqoCiuUmQQChOQoa
jqe2l2WBxarUW3Q3IxPNSPfOmZkuqnAnXxyjYF1SVzY4YWM5I00BKIVgYjIj
6VRq7fQkGrYgxCllI8qY5K++Ti23KyPYq1fcWmWI8vhl2fFfMcRLm8Li4SJA
NERwu/Qka5sPr0NdGXBnZ3aZVaeYr7Z0GqrStqGFmv5RCWcTMa0WvlIaWxUl
WiGprarrcqvJqultVV+wLSjz0C81nxQHyKmz/mIDxBaIe+IJQusJpe8bGc9h
YUbC+wvZEv6bjAk5JZ41wS9S5P9bNXnnslT7xyjI1uWoS5XuL1XiKzRtm5ho
c3CJOGSFy9uBMTyVYnVKh5T3o3hw1TBysHPFBI/g3DNRFqEi7yuTCuEXq/J3
1uW/ljL/tbT5r6POfzV9/o4K/VfS6P9slf5PTFBboNOXiOsLtNB930+r0k4k
3rgnGZFBmQwcdfJPMBmU6mccMuHKorLgmSEahsYR9WAx010JkgNGJMtT6Nzp
YgZZ+YKbArw+W31VauX+BPBRcq0/vjkCpqX//uRUk7delKmdeBE0qJ1wBsYU
PoMLptKqeYXLD7zIifhblEVnC4I6Gocgg8l45lJYp4QmZbHZ2VAcyZzm/c5N
9RG9MjzXldcjAHH0e1bbAkISOlYjYWkOLeqcZkidhFSSM+uK5OoExCZexXLj
cv3KMFN6aksea62hfYlGokLdSvQLaykPSgsbUg2+MFf7S9VL28Kds5BpzYrA
1eqKdTQbpoTOdXx1N80Fk69KQm9lERcrBFdfDlxd3l1qkI0KTVPql3blZKP1
mEqjJXgpV6q3ASSmTHru53Jrc6WjCkq1LqWbjWR5mRXUNc8cOmtHK2SsnHjl
uVnbdys20jSfu1PdEavfn1WCxPqEo6BNx365dqZB6Ggj40WKGaJ9z9xWg2Tu
jUoI9/R1CATgv6KTt/ZXdHOuqhsZ1ahalfkcd+Ril+lneUwXOji/pA7LojIs
d6jCUsHsPrsQi3U/SAldSqXM/uVK1921rq+mdn01vesrKV5fT/O6q+r1tXSv
v7U/dRVBcxW95y4iZ6UobnyjBVEzf4F5mC0qcHKOQhUqMgcyc9jOO7ClSLpn
nT5QlgBVSEJIAhKTVAkY+7ZnderLa8aJkquV7RIr1l0gTkG5hl0Rjr5hlXWT
V9PIpQ6cpXLdz1Ddcq+RhyP+EE2dS8jlBZAXI+fqLCy+52WyFjnACoBACU94
JzExQ6tKi4lCpGSrQTDNGiLuExXDApPTeYOqi3pzqkYhL+qwre3qeloqOipd
iTylqjqJUy58LbxLxKtMGui88ZRidnvFKw/kXQBOYRS6tYG9ZkRNzd0Z+Tqi
5PHgrDPXejc1FypqPYIvIzB3JQLS3HiJj1ReV8aM5vkcQaxpn2o7n77agqrL
CuCDfrnuAarDNUbnXQVze4bVNzuqr8oS04VsD955RpbgFtEkxJwZ4CI6D4br
XCqyqbeIiirK2hdq6Tz/f6T2PGXZGpjsOOR60BODVmi9mMqbQziG2YSs/tMG
t9p5HNCMJsbIh7Hgh+8nrGDKfBhsZ103Dfwg8azwcS5I+vrFMWBskEjfPZ6e
65iBp69Dci+AlLfPmIK/bNoBxKLDMAbe7VH1bSx7SsVO9A2YKo2RisqoRfZK
rrq8252WPAG7cjXVq/L4+2pjACrOBAN9UWfCN0jzZRxEIhZdfPmt2EeuB33H
ehhZSBaUcrwyxFwW4iABVnGlfC28iiNJ6EJzIA4eIlw8SwlM/yx+V8IMpliG
DF4O8RgYbkFV+Mps4j6SCJdSXd9JoD7PdThDc1xLtz6cjCjZGMaxsQAv9A7S
0QRBYIgPr4qpIRcCAVYP34vmqgVDigkjl4PCNhxPMZtEOJxVYNdMR12Dmhpv
Pd0pC5wHV2ZdGOOmFdDlCA0+7mOscEuSJxEFhwwiBufruNpXg0hBzr76zTG/
YRVsU2fcONI9vhkOdh4LZmkSpS6G0deQKGuStqHJortFgmRuxDgPx2HkJbh7
iHKFm0yQqROGs1WYpGkVomGq/frw4TTkrG5yxGMJhBlaa/C6X9NOl/ySFljD
TkvKidt2IVU7me+Ocdl5S5xyB6yoMKJ7hVmroMOqbqc3IlIWW7dvm1P9wCve
zU353aSpIGEAPEouaUn2Lewe5YKQ2cnRu+EVHKKMKSrbEQAtWfjhm4Dl9xoi
GLTWsIKRMeVpImDdRoBTKNzEVJa24N5OrHDeuaA+da6Nb4FyRdcr8P3EDTvR
1Q/wnnGGI/JYtn0b+NL9FVX8NnXSgqtnq24+lLfhZJIMKJ5j7reXN9nL3CVp
Ere4UUoMyjnzKDBpgyAJhAEejGY8bPbpcjRbc8SQDr9pFfsf8+0Waa7mOd1n
fLz/ar8gRKOhH/UvrER8xvc+zqV5z5KU8TndxeMIFnRhozRO1guj1OVdjtu7
u58+aWM49OmJu1rRakKNigrtARt4egTT46PzpxjWBF/uiVfr+8RgyMQPFBP2
Bb5Hx39Cc9PWPJkVfqc5Tf9yM1oSNvcXmWGpNfRPm55rqRavsKLOivhs17vW
eJ0fLK2r+1Glcrfd7rYtBMf59EoNq7Y1+bPOAJtke0aHr1mWhJ42a9jbZM9m
+gVzmVbMRKdq3W0qSxD3zmBaMJaaqoyJuvs8q9D3C/bSHUjPcDr2F01PYfb5
8WETnSG1GlH0MLXOBvAvhd0yx77eAnpfZ++JQ6spwhnGEmd4a1sqyfXeFsYB
S2zGtwndgwfHBk2vqAfDIX18aL1Kw48w1W67ZlvbFpyCyvXtu3N1K8Lp6qOP
UZZFbqaui5CF+OHfWYqZ4SjtTJrSkKo/RsU3TXtz9QmM/dy79sh6qq9WQZuF
dhiAKjSa9dHyvZ7BTiVxuj6AaVlreqSEX3dO+qJDdYGmU3FEl0wNtfzIK8xL
vfJ2b/Qsky3RD8Z0QwzJHTKFl3a00+2KZ6B0gyaKYib6RljRvIylqRXVf86s
TXV9Xi07s8hhQ8+5AADUwhfe8MrL32vijEOlfEhJLcxtw8xNeCFf1pJxPjKI
qbhFfLmbLMIXDId0jauMxRcYiy8vP3WhfJd9u8IFOBsHuNRsNkUfpoZYZYrc
tsSRVdN2v+j0PdQ1qYolmP/ocdJ+4H8vcxI+0XVCzr6TJsvcJ286Ut7fkQdi
N6EQ3VvGd8w12FEw5vowVBLTZ4CjwW5MqwPE93xpx1PlS1Pr26gcaicvyptX
MAiuzC5+WbB5UAUV3PokgGlKl9wNXpzCIawyWZyKqkaBnBHdm84YPshmTmyC
9FizymCUK65JA8y9HI4vSwpJ5pi44geNYrFwvI4R9Jw4UWa/ZEhTB2wK9N0u
hTCVbndDU8WHPwB9V76G7+udVruubcPf199cPGnu1n94VHuoB08FdJik3y/3
HpsudfaymUGM1+0hEtdHT8NL2N/sCA/tJMg6D9fpsWlF5n76cC8EnS4cZksm
AI2a4ZBKJdZdH5/s3wvkxw7SsTfwH65jU+uLpC42U6LEj2bTh+vOA9MO1VG7
mf23aYVFBpp8peijbru72Wx3m+2Ni06n1+32NgHqu53v2u1eu/1w3W5qBggR
nn5w+whgo383r6ejedqURsVH7UGPxupt7PT8bRrUeW+6gfoc+I86bfXzcJ2f
WC2QMKHHIHWh+JAy+LHQxQxOJeVX5BcG399Viypp7Q4HoI0HWZClj3Y7Wzuw
Rv13od0MfRUAo+kVvN3bpLbOs0IPIO6eb963qUvuYaET3UWZ75R7WOiE6/QS
XzXXfxYa0hVdqpn8o2SlmH9GmWNZrBrnHrqdSLmWcNzb2N4AfDRPik0dsHXb
e9x8ATDxdRGaJU+L3YrwLHla7GZD1Pm72NTA1PrLoPJ6HpcRnJogWX+k0l1X
e6NrLFaVi7mRl2tbYgyXxo91biTbitiOKnKE0XHq9uemSnmoS5FwES7idLqh
VVlUhwTpMR3RXOe6rZiyIb/UWzKcU+GivLqFtUg3Bmf4ZWE7n0qD5PdVYHz+
2ySGWQNblzXm/N91IF9bzU672d5dEMx7jJf5UnSc7CYFKLXbKlDf93MF8e1b
IlG0cefZMo5vk1MbDq19cHKHS7fnq8UEm0p55M5w16EjcJWw4dg2c6G4NRNu
abnwnIxLfTFCasPREU7zeyphLGuvlYbQSGk9iWNd1j5IyrI1zbA1rgh2I5xH
ovDULXn8b/Uenxl6ZNd11E1oX/SPtOPOAcd1u1ar5XyTjlb5YfxhtVTQHOwV
JbHBjvSqIppRXeiI7s+RueSCwGptiIYwNlC+b+UfTrQXsAJnSPC2rfrs3OIo
DRsdvHwgfb46vr3rpdN7gLvki3opROs6rAJVkTWalna9uXI58JfpLPtvFaGd
k2+NtyoFV4yxHZ+dxTevfg+edtLHT/3ol4/HM6/789b+uXe5F432rz/On7ze
eva6PTl95X24OLt9MT7/ALz18HxbhRn99O75+Yvvtl750+TjT+9fDts/pc+y
/bA7vf3Ynx0+P5zvXb2P553nF9evvOfjk9unFy/98eZVNrv8/vs8I7Zne681
3GsN91qD3fBea/jraw0X1aUW6GaANHdx9ZIsIJ0QvqzSb6GkpHUjjSxFGI6l
8Sual9aXlD16tbsxNl0qcFW2li9jKAFr6o7miAJQpO5Wa2/z/cN1qw13KueC
dyjWx+MsY4Mf588fT68n04/H6xdhkvw+uNrf7+592P5pzNLbbGv75e770Zt3
70az9osngxejzofzsye33ZunZ+vz724vX4SXPz/7JRwc7Ayn6+396Nn5u7fh
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
eey87u5stddatf8HskxcnwslAQA=

-->

</rfc>
