<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-sacm-coswid-05" category="std">

  <front>
    <title abbrev="COSWID">Concise Software Identifiers</title>

    <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>
    <author initials="J." surname="Fitzgerald-McKay" fullname="Jessica Fitzgerald-McKay">
      <organization>Department of Defense</organization>
      <address>
        <postal>
          <street>9800 Savage Road</street>
          <city>Ft. Meade</city>
          <region>Maryland</region>
          <country>USA</country>
        </postal>
        <email>jmfitz2@nsa.gov</email>
      </address>
    </author>
    <author initials="C." surname="Schmidt" fullname="Charles Schmidt">
      <organization>The MITRE Corporation</organization>
      <address>
        <postal>
          <street>202 Burlington Road</street>
          <city>Bedford</city>
          <region>Maryland</region>
          <code>01730</code>
          <country>USA</country>
        </postal>
        <email>cmschmidt@mitre.org</email>
      </address>
    </author>
    <author initials="D." surname="Waltermire" fullname="David Waltermire">
      <organization abbrev="NIST">National Institute of Standards and Technology</organization>
      <address>
        <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>Maryland</region>
          <code>20877</code>
          <country>USA</country>
        </postal>
        <email>david.waltermire@nist.gov</email>
      </address>
    </author>

    <date year="2018" month="March" day="21"/>

    <area>Security</area>
    <workgroup>SACM Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines a concise representation of ISO/IEC 19770-2:2015 Software Identification (SWID) tags
that are interoperable with the XML schema definition of ISO/IEC 19770-2:2015 and augmented for
application in Constrained-Node Networks. Next to the inherent capability of SWID tags to express
arbitrary context information, Concise SWID (CoSWID) tags support the definition of additional semantics via
well-defined data definitions incorporated by extension points.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>SWID tags have several use-applications including but not limited to:</t>

<t><list style="symbols">
  <t>Software Inventory Management, a part of the Software Asset Management <xref target="SAM"/>
process, which requires an accurate list of discernible deployed software
components.</t>
  <t>Vulnerability Assessment, which requires a semantic link between standardized
vulnerability descriptions and software components installed on IT-assets <xref target="X.1520"/>.</t>
  <t>Remote Attestation, which requires a link between reference integrity
measurements (RIM) and security logs of measured software components
<xref target="I-D.birkholz-tuda"/>.</t>
</list></t>

<t>SWID tags, as defined in ISO-19770-2:2015 <xref target="SWID"/>, provide a standardized
XML-based record format that identifies and describes a specific release of a
software component. Different software components, and even different releases of a
particular software component, each have a different SWID tag record associated
with them. SWID tags are meant to be flexible and able to express a broad set of metadata
about a software component.</t>

<t>While there are very few required fields in SWID tags, there are many optional
fields that support different use scenarios. While a
SWID tag consisting of only required fields might be a few hundred bytes in
size, a tag containing many of the optional fields can be many orders of
magnitude larger. Thus, real-world instances of SWID tags can be fairly large, and the communication of
SWID tags in use-applications such as those described earlier can cause a large
amount of data to be transported. This can be larger than acceptable for
constrained devices and networks. Concise SWID (CoSWID) tags significantly reduce the amount of
data transported as compared to a typical SWID tag. This reduction is enabled
through the use of CBOR, which maps human-readable labels of that content to
more concise integer labels (indices). The use of CBOR to express SWID information in CoSWID tags allows both CoSWID and SWID tags to be part of an
enterprise security solution for a wider range of endpoints and environments.</t>

<section anchor="intro-lifecycle" title="The SWID Tag Lifecycle">

<t>In addition to defining the format of a SWID tag record, ISO/IEC 19770-2:2015
defines requirements concerning the SWID tag lifecycle. Specifically, when a
software component is installed on an endpoint, that product’s SWID tag is also
installed. Likewise, when the product is uninstalled or replaced, the SWID tag
is deleted or replaced, as appropriate. As a result, ISO/IEC 19770-2:2015 describes
a system wherein there is a correspondence between the set of installed software
components on an endpoint, and the presence of the correspondingsponding SWID tags
for these components on that endpoint. CoSWIDs share the same lifecycle requirements
as a SWID tag.</t>

<t>The following is an excerpt (with some modifications and reordering) from NIST Interagency Report (NISTIR) 8060: Guidelines for the Creation of Interoperable SWID Tags <xref target="SWID-GUIDANCE"/>, which describes the tag types used within the lifecycle defined in ISO-19770-2:2015.</t>

<t><list style='empty'>
  <t>The SWID specification defines four types of SWID tags: primary, patch, corpus, and supplemental.</t>
</list></t>

<t><list style="numbers">
  <t>Primary Tag - A SWID or CoSWID tag that identifies and describes a software component is installed on a computing device.</t>
  <t>Patch Tag - A SWID or CoSWID tag that identifies and describes an installed patch which has made incremental changes to a software component installed on a computing device.</t>
  <t>Corpus Tag - A SWID or CoSWID tag that identifies and describes an installable software component in its pre-installation state. A corpus tag can be used to represent metadata about an installation package or installer for a software component, a software update, or a patch.</t>
  <t>Supplemental Tag - A SWID or CoSWID tag that allows additional information to be associated with a referenced SWID tag. This helps to ensure that SWID Primary and Patch Tags provided by a software provider are not modified by software management tools, while allowing these tools to provide their own software metadata.</t>
</list></t>

<t><list style='empty'>
  <t>Corpus, primary, and patch tags have similar functions in that they describe the existence and/or presence of different types of software (e.g., software installers, software installations, software patches), and, potentially, different states of software components. In contrast, supplemental tags furnish additional information not contained in corpus, primary, or patch tags. All four tag types come into play at various points in the software lifecycle, and support software management processes that depend on the ability to accurately determine where each software component is in its lifecycle.</t>
</list></t>

<figure title="Use of Tag Types in the Software Lifecycle" anchor="fig-lifecycle"><artwork><![CDATA[
                                  +------------+
                                  v            |
Installation     Product       Product      Product       Product
  Media      -> Installed  ->  Patched   -> Upgraded   -> Removed
 Deployed

 Corpus         Primary        Primary      xPrimary      xPrimary
                Supplemental   Supplemental xSupplemental xSuplemental
                               Patch        xPatch
                                            Primary
                                            Supplemental

]]></artwork></figure>

<t><list style='empty'>
  <t><xref target="fig-lifecycle"/> illustrates the steps in the software lifecycle and the relationships among those lifecycle events supported by the four types of SWID and CoSWID tags, as follows:</t>
</list></t>

<t><list style='empty'>
  <t><list style="symbols">
    <t>Software Deployment. Before the software component is installed (i.e., pre-installation), and while the product is being deployed, a corpus tag provides information about the installation files and distribution media (e.g., CD/DVD, distribution package).</t>
    <t>Software Installation. A primary tag will be installed with the software component (or subsequently created) to uniquely identify and describe the software component. Supplemental tags are created to augment primary tags with additional site-specific or extended information. While not illustrated in the figure, patch tags may also be installed during software installation to provide information about software fixes deployed along with the base software installation.</t>
    <t>Software Patching. When a new patch is applied to the software component, a new patch tag is provided, supplying details about the patch and its dependencies. While not illustrated in the figure, a corpus tag can also provide information about the patch installer, and patching dependencies that need to be installed before the patch.</t>
    <t>Software Upgrading. As a software component is upgraded to a new version, new primary and supplemental tags replace existing tags, enabling timely and accurate tracking of updates to software inventory. While not illustrated in the figure, a corpus tag can also provide information about the upgrade installer, and dependencies that need to be installed before the upgrade.</t>
    <t>Software Removal. Upon removal of the software component, relevant SWID tags are removed. This removal event can trigger timely updates to software inventory reflecting the removal of the product and any associated patch or supplemental tags.</t>
  </list></t>
</list></t>

<t>Note: While not fully illustrated in the figure, supplemental tags can be associated with any corpus, primary, or patch tag to provide additional metadata about an installer, installed software, or installed patch respectively.</t>

<t>Each of the different SWID and CoSWID tag types provide different sets of
information. For example, a “corpus tag” is used to
describe a software component’s installation image on an installation media, while a
“patch tag” is meant to describe a patch that modifies some other software component.</t>

</section>
<section anchor="concise-swid-extensions" title="Concise SWID Extensions">

<t>This document defines the CoSWID format, a more concise representation of SWID information in the Concise
Binary Object Representation (CBOR) <xref target="RFC7049"/>. This is described via the Concise
Data Definition Language (CDDL) <xref target="I-D.ietf-cbor-cddl"/>. The resulting CoSWID data
definition is interoperable with the XML schema definition of ISO-19770-2:2015
<xref target="SWID"/>. The vocabulary, i.e., the CDDL names of the types and members used in
the CoSWID data definition, are mapped to more concise labels represented as
small integer values. The names used in the CDDL data definition and the mapping to
the CBOR representation using integer labels is based on the vocabulary of the
XML attribute and element names defined in ISO/IEC 19770-2:2015.</t>

<t>The corresponding CoSWID data definition includes two kinds of augmentation.</t>

<t><list style="symbols">
  <t>The explicit definition of types for attributes that are typically stored in
the “any attribute” of an ISO-19770-2:2015 in XML representation. These are
covered in <xref target="model-global-attributes"/> and <xref target="model-any-element"/> of this document.</t>
  <t>The inclusion of extension points in the CoSWID data definition that allow for
additional uses of CoSWID tags that go beyond the original scope of
ISO-19770-2:2015 tags. These are covered in <xref target="model-payload"/> and <xref target="model-evidence"/>.</t>
</list></t>

</section>
<section anchor="requirements-notation" title="Requirements Notation">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
“OPTIONAL” in this document are to be interpreted as described in RFC
2119, BCP 14 <xref target="RFC2119"/>.</t>

</section>
</section>
<section anchor="concise-swid-data-definition" title="Concise SWID Data Definition">

<t>The following is a CDDL representation for a CoSWID tag. This CDDL represetation is intended to be parallel to the XML schema definition in the ISO/IEC 19770-2:2015 <xref target="SWID"/> specification, allowing both SWID and CoSWID tags to represent a common set of SWID information and to support all SWID tag use
cases.  To achieve this end, the CDDL representation includes every SWID tag field and attribute. The CamelCase notation used in the XML schema definition is changed to a hyphen-separated
notation (e.g. ResourceCollection is named resource-collection in the CoSWID data definition).
This deviation from the original notation used in the XML representation reduces ambiguity when referencing
certain attributes in corresponding textual descriptions. An attribute referred by its name in CamelCase
notation explicitly relates to XML SWID tags, an attribute referred by its name in
hyphen-separated notation explicitly relates to CoSWID tags. This approach simplifies the
composition of further work that reference both XML SWID and CoSWID documents.</t>

<t>Human-readable names of members in the CDDL data definition are mapped to integer indices via a block of rules at the bottom
of the definition. The 67 character strings of the SWID vocabulary that would have to be
stored or transported in full if using the original vocabulary are replaced.</t>

<!-- The following is repetitive of information presented earlier in the document and in later sections. -->
<!--
CoSWIDs are tailored to be used in the domain of constrained-node networks. A
typical endpoint is capable of storing the SWID tag of installed software, a constrained-node
might lack that capability. CoSWID addresses these constraints and the corresponding specification is
augmented to retain the usefulness of the SWID information tagging approach in the thing-2-thing domain. Specific examples include, but are
not limited to using the hash algorithms in the IANA Named Information tables or
including firmware attributes addressing devices that do not necessarily provide a file-system for CoSWID tag storage.
-->

<t>In CBOR, an array is encoded using bytes that identify the array, and the array’s length or stop point (see <xref target="RFC7049"/>). To make items that support 1 or more values, the following CDDL notion is used.</t>

<figure><artwork type="CDDL"><![CDATA[
_name_ = (_label_: _data_ / [ 2* _data_ ])
]]></artwork></figure>

<t>The CDDL above allows for a more effecient CBOR encoding of the data when a single value is used by avoiding the need to first encode the array. An array is used for two or more values. This modeling pattern is used frequently in the CoSWID CDDL data definition in such cases.</t>

<t>The following subsections describe the different parts of the CoSWID model.</t>

<section anchor="model-concise-software-identity" title="The concise-software-identity Object">

<t>The CDDL for the main concise-software-identity object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
concise-software-identity = {
  global-attributes,
  tag-id,
  tag-version,
  ? corpus,
  ? patch,
  ? supplemental,
  swid-name,
  ? software-version,
  ? version-scheme,
  ? media,
  ? software-meta-entry,
  ? entity-entry,
  ? link-entry,
  ? ( payload-entry / evidence-entry ),
  ? any-element-entry,
}
tag-id = (0: text)
swid-name = (1: text)
entity-entry = (2: entity / [ 2* entity ])
evidence-entry = (3: evidence)
link-entry = (4: link / [ 2* link ])
software-meta-entry = (5: software-meta / [ 2* software-meta ])
payload-entry = (6: payload)
any-element-entry = (7: any-element-map / [ 2* any-element-map ])
corpus = (8: bool)
patch = (9: bool)
media = (10: text)
supplemental = (11: bool)
tag-version = (12: integer)
software-version = (13: text)
version-scheme = (14: text)
]]></artwork></figure>

<!-- The items are ordered ensure that tag metadata appears first, followed by general software metadata, entity information, link relations, and finally payload or evidence data. This ordering attempts to provide the most significant metadata that a parser may need first, followed by metadata that may support more specific use-applications.-->

<t>The following describes each child item of the concise-software-identity object model.</t>

<t><list style="symbols">
  <t>global-attributes: A list of items including an optional language definition to support the
processing of text-string values and an unbounded set of any-attribute items. Described in <xref target="model-global-attributes"/>.</t>
  <t>tag-id (label 0): An textual identifier uniquely referencing a (composite) software component. The tag
identifier MUST be globally unique. There are no strict guidelines on
how this identifier is structured, but examples include a 16 byte GUID (e.g.
class 4 UUID) <xref target="RFC4122"/>.</t>
  <t>tag-version (label 12): An integer value that indicates if a specific release of a software component has more than
one tag that can represent that specific release. Typically, the initial value of this field is set to 0, and the value is monotonically increased for subsequent tags produced for the same software component release. This item is used when a
CoSWID tag producer creates and releases an incorrect tag that they subsequently
want to fix, but no underlying changes have been made to the product the CoSWID tag
represents. This could happen if, for example, a patch is distributed that has a
link reference that does not cover all the various software releases it can
patch. A newer CoSWID tag for that patch can be generated and the tag-version
value incremented to indicate that the data is updated.</t>
  <t>corpus (label 8): A boolean value that indicates if the tag identifies and describes an installable software component in its pre-installation state. Installable software includes a installation package or installer for a software component, a software update, or a patch. If the CoSWID tag represents installable software, the corpus item MUST be set to “true”. If not provided the default value MUST be considered “false”.</t>
  <t>patch (label 9): A boolean value that indicates if the tag identifies and describes an installed patch which has made incremental changes to a software component installed on a computing device. Typically, an installed patch has made a set of file modifications to pre-installed software, and does not alter the version number or the descriptive metadata of an installed software
component. If a CoSWID tag is for a patch, it MUST contain the patch item
and its value MUST be set to “true”. If not provided the default value MUST be considered “false”.</t>
  <t>supplemental (label 11): A boolean value that indicates if the tag is providing additional information to be associated with another referenced SWID or CoSWID tag. Tags using this item help to ensure that primary and patch tags provided by a software provider are not modified by software management tools, while allowing these tools to provide their own software metadata for a software component. If a CoSWID tag is a supplemntal tag, it MUST contain the supplemental item and its value MUST be set to “true”. If not provided the default value MUST be considered “false”.</t>
  <t>swid-name (label 1): This textual item provides the software component name as it would typically be
referenced.  For example, what would be seen in the add/remove software dialog in an operating system,
or what is specified as the name of a packaged software component
or a patch identifier name.</t>
  <t>software-version (label 13): A textual value representing the specific underlying release or development version of the software component.</t>
  <t>version-scheme (label 14): An 8-bit integer or textual value representing the versioning scheme used for the software-version item. If an integer value is used it MUST be a value from the registry (see section <xref target="iana-version-scheme"/> or a value in the private use range: 32768-65,535.</t>
  <t>media (label 10): This text value is a hint to the tag consumer to understand what this tag
applies to. This item represents a
query as defined by the W3C Media Queries Recommendation (see
http://www.w3.org/TR/css3-mediaqueries/). A hint to the consumer of the link to
what the target item is applicable for.</t>
  <t>software-meta-entry (label 5): An open-ended collection of key/value data related to this CoSWID.
A number of predefined attributes can be used within this item providing for
common usage and semantics across the industry.  The data definition of this entry allows for any additional
attribute to be included, though it is recommended that industry
norms for new attributes are defined and followed to the degree possible. Described in <xref target="model-software-meta"/>.</t>
  <t>entity-entry (label 2): Specifies the organizations related to the software component referenced by this
CoSWID tag. Described in <xref target="model-entity"/>.</t>
  <t>link-entry (label 4): Provides a means to establish a relationship arc between the tag and another item. A link can be used to establish relationships between tags and to reference other resources that are related to the
CoSWID tag, e.g.
vulnerability database associations, ROLIE feeds, MUD files, software download location, etc).
This is modeled after the HTML “link” element.  Described in <xref target="model-link"/>.</t>
</list></t>

<!-- TODO: Review from here -->

<t><list style="symbols">
  <t>payload-entry (label 6): The items that may be installed on a system entity when the software component
is installed.  Note that payload may be a superset of the items installed and -
depending on optimization mechanisms in respect to that system entity - may or
may not include every item that could be created or executed on the
corresponding system entitiy when software components are installed.
In general, payload will be used to indicate the files that may be installed
with a software component. Therefore payload will often be a superset of those
files (i.e. if a particular optional sub-component is not installed, the files
associated with that software component may be included in payload, but not
installed in the system entity). Described in <xref target="model-payload"/>.</t>
  <t>evidence-entry (label 3): This item is used to provide results from a scan of a system where software that
does not have a CoSWID tag is discovered. This information is not provided by
the software-creator, and is instead created when a system is being scanned and
the evidence for why software is believed to be installed on the device is
provided in the evidence item. Described in <xref target="model-evidence"/>.</t>
  <t>any-element-entry (label 7): A default map that can contain arbitrary map members and even nested maps (which
would also be any-elements). In essence, the any-element allows items not
defined in this CDDL data definition to be included in a Concise Software
Identifier. Described in <xref target="model-any-element"/>.</t>
</list></t>

<section anchor="determining-the-tag-type" title="Determining the tag type">

<t>The operational model for SWID and CoSWID tags introduced in <xref target="intro-lifecycle"/>. The following rules can be used to determine the type of a CoSWID tag.</t>

<t><list style="symbols">
  <t>Corpus Tag: A CoSWID tag MUST be considered a corpus tag if the corpus item is “true”.</t>
  <t>Primary Tag: A CoSWID tag MUST be considered a primary tag if the corpus, patch, and supplemental items are “false”.</t>
  <t>Patch Tag: A CoSWID tag MUST be considered a patch tag if the patch item is “true” and the corpus item is “false”.</t>
  <t>Supplemental Tag: A CoSWID tag MUST be considered a supplemental tag if the supplemental item is set to “true”.</t>
</list></t>

<t>A tag that does not match one of the above rules MUST be considered an invalid, unsupported tag type.</t>

<!-- TODO: relocate the following requirement -->
<t>If a patch modifies the version number or the descriptive metadata of the software, then a new tag representing these details SHOULD be installed, and the old tag SHOULD be removed.</t>

</section>
<section anchor="concise-software-identity-co-constraints" title="concise-software-identity Co-constraints">

<t><list style="symbols">
  <t>Only one of the corpus, patch, and supplemental items MUST be set to “true”, or all of the corpus, patch, and supplemental items MUST be set to “false” or be omitted.</t>
  <t>If the patch item is set to “true”, the the tag SHOULD contain at least one link with the rel(ation) item value of “patches” and an href item specifying an association with the software that was patched.</t>
  <t>If the supplemental item is set to “true”, the the tag SHOULD contain at least one link with the rel(ation) item value of “supplements” and an href item specifying an association with the software that is supplemented.</t>
  <t>If all of the corpus, patch, and supplemental items are “false”, or if the corpus item is set to “true”, then a software-version item MUST be included with a value set to the version of the software component. This ensures that primary and corpus tags have an identifiable software version.</t>
</list></t>

</section>
</section>
<section anchor="model-global-attributes" title="The global-attributes Group">

<t>The global-attributes group provides a list of items including an optional
language definition to support the processing of text-string values and an
unbounded set of any-attribute items allowing for additional items to be
provided as a general point of extension in the model.</t>

<t>The CDDL for the global-attributes is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
global-attributes = (
  ? lang,
  * any-attribute,
)

label = text / int

any-attribute = (
  label => text / int / [ 2* text ] / [ 2* int ]
)

lang = (15: text)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>lang (index 15): A language tag or corresponding IANA index integer that
conforms with IANA Language Subtag Registry <xref target="RFC5646"/>. <!--TODO: there are no index values in the IANA Language Subtag Registry.--></t>
  <t>any-attribute: This sub-group provides a means to include arbitrary information
via label (key) item value pairs where both keys and values can be
either a single integer or text string, or an array of integers or text strings.</t>
</list></t>

</section>
<section anchor="model-any-element" title="The any-element-map Entry">

<t>The CDDL for the any-element-entry object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
any-element-map = {
  global-attributes,
  * label => any-element-map / [ 2* any-element-map ],
}
any-element-entry = (7: any-element-map / [ 2* any-element-map ])
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>label: a single or multiple <!--TODO: BROKEN: this map does not have a leaf that is a textual (or other value).--></t>
</list></t>

</section>
<section anchor="model-entity" title="The entity Object">

<t>The CDDL for the entity object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
entity = {
  global-attributes,
  entity-name,
  ? reg-id,
  role,
  ? thumbprint,
  extended-data,
}

any-uri = text

extended-data = (30: any-element-map / [ 2* any-element-map ])
entity-name = (31: text)
reg-id = (32: any-uri)
role = (33: text / [2* text]) 
thumbprint = (34: hash-entry)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>entity-name (index 32): The text-string name of the organization claiming a particular role in the CoSWID
tag.</t>
  <t>reg-id (index 32): The registration id is intended to uniquely identify a naming authority in a
given scope (e.g. global, organization, vendor, customer, administrative domain,
etc.) that is implied by the referenced naming authority. The value of an
registration ID MUST be a RFC 3986 URI. The scope SHOULD be the scope of an
organization. In a given scope, the registration id MUST be used consistently.</t>
  <t>role (index 33): The relationship(s) between this organization and this tag. The role of tag creator
is required for every CoSWID tag. The role of an entity may include any role
value, but the pre-defined roles include: “aggregator”, “distributor”,
“licensor”, “software-creator”, and “tag-creator”. These pre-defined role index and text values are defined in <xref target="indexed-entity-role"/>. Use of index values instead of text for these pre-defined roles allows a CoSWID to be more concise.</t>
  <t>thumbprint (index 34): The value of the thmbprint item provides an integer-based hash algorithm identifier (hash-alg-id) and a byte string string value (hash-value) that contains the corresponding hash value (i.e. the
thumbprint) of the signing entities certificate(s). If the hash-alg-id is not known, then the integer value “0” MUST be used. This ensures parity between the SWID tag specification <xref target="SWID"/>, which does not allow an algorithm to be identified for this field. See <xref target="model-hash-entry"/> for more details on the use of the hash-entry data structure.</t>
  <t>extended-data (index 30): An open-ended collection of elements that can be used to attach arbitrary
metadata to an entity item.</t>
</list></t>

</section>
<section anchor="model-link" title="The link Object">

<t>The CDDL for the link object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
link = {
  global-attributes,
  ? artifact,
  href,
  ? media
  ? ownership,
  rel,
  ? media-type,
  ? use,
}
artifact = (37: text)
href = (38: any-uri)
media = (10: any-uri)
ownership = (39: "shared" / "private" / "abandon")
rel = (40: text)
media-type = (41: text)
use = (42: "optional" / "required" / "recommended")
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>artifact (index: 37): For installation media (rel=”installation-media”), this item value indicates the path of the installer executable or script that can be run to launch the referenced installation. Items with the same artifact name should be considered mirrors of each other, allowing the installation media to be downloaded from any of the described sources.</t>
  <t>href (index 38): The link to the item being referenced. The “href” item’s value can point to several different things, and can be any of the following:
  <list style="symbols">
      <t>If no URI scheme is provided, then the URI is to be interpreted as being relative to the URI of the CoSWID tag. For example, “./folder/supplemental.coswid”.</t>
      <t>a physical resource location with any system-acceptable URI scheme (e.g., file:// http:// https:// ftp://)</t>
      <t>a URI with “coswid:” as the scheme, which refers to another CoSWID by tag-id. This
URI would need to be resolved in the context of the system by software
that can lookup other CoSWID tags. For example, “coswid:2df9de35-0aff-4a86-ace6-f7dddd1ade4c” references the tag with the tag-id value “2df9de35-0aff-4a86-ace6-f7dddd1ade4c”.</t>
      <t>a URI with “swidpath:” as the scheme, which refers to another CoSIWD via an
XPATH query. This URI would need to be resolved in the context of the system
entity via dedicated software components that can lookup other CoSWID tags and
select the appropriate tag based on an XPATH query. Examples include:</t>
      <t>swidpath://SoftwareIdentity[Entity/@regid=’http://contoso.com’] would retrieve all CoSWID tags that include an entity where the regid is “Contoso” or swidpath://SoftwareIdentity[Meta/@persistentId=’b0c55172-38e9-4e36-be86-92206ad8eddb’] would match CoSWID tags with the persistent-id value “b0c55172-38e9-4e36-be86-92206ad8eddb”.</t>
      <t>See XPATH query standard : http://www.w3.org/TR/xpath20/ <!--FIXME: Concise XPATH representation is covered in the YANG-CBOR I-D--></t>
    </list></t>
  <t>media (index 10): See media defined in <xref target="model-concise-software-identity"/>.</t>
  <t>ownership (index 39): Determines the relative strength of ownership of the software components. Valid
enumerations are: abandon, private, shared</t>
  <t>rel (index 40): The relationship between this CoSWID and the target file. Relationships can be
identified by referencing the IANA registration library: https://www.iana.org/assignments/link-relations/link-relations.xhtml.</t>
  <t>media-type (index 41): The IANA MediaType for the target file; this provides the consumer with
intelligence of what to expect. See
http://www.iana.org/assignments/media-types/media-types.xhtml for more details
on link type.</t>
  <t>use (index 42): Determines if the target software is a hard requirement or not. Valid
enumerations are: required, recommended, optional.</t>
</list></t>

</section>
<section anchor="model-software-meta" title="The software-meta Object">

<t>The CDDL for the software-meta object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
software-meta = {
  global-attributes,
  ? activation-status,
  ? channel-type,
  ? colloquial-version,
  ? description,
  ? edition,
  ? entitlement-data-required,
  ? entitlement-key,
  ? generator,
  ? persistent-id,
  ? product,
  ? product-family,
  ? revision,
  ? summary,
  ? unspsc-code,
  ? unspsc-version,
}
activation-status = (43: text)
channel-type = (44: text)
colloquial-version = (45: text)
description = (46: text)
edition = (47: text)
entitlement-data-required = (48: bool)
entitlement-key = (49: text)
generator = (50: text)
persistent-id = (51: text)
product = (52: text)
product-family = (53: text)
revision = (54: text)
summary = (55: text)
unspsc-code = (56: text)
unspsc-version = (57: text)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>activation-status (index 43): Identification of the activation status of this software title (e.g. Trial,
Serialized, Licensed, Unlicensed, etc).  Typically, this is used in supplemental
tags.</t>
  <t>channel-type (index 44): Provides information on which channel this particular software was targeted for
(e.g. Volume, Retail, OEM, Academic, etc). Typically used in supplemental tags.</t>
  <t>colloquial-version (index 45): The informal or colloquial version of the product (i.e. 2013). Note that this
version may be the same through multiple releases of a software component where
the version specified in entity is much more specific and will change for each
software release.
Note that this representation of version is typically used to identify a group
of specific software releases that are part of the same release/support
infrastructure (i.e. Fabrikam Office 2013).  This version is used for string
comparisons only and is not compared to be an earlier or later
release (that is done via the entity version). <!--FIXME: consistency --></t>
  <t>description (index 46): A longer, detailed description of the software.  This description can be
multiple sentences (differentiated from summary, which is a very short,
one-sentence description).</t>
  <t>edition (index 47): The variation of the product (Extended, Enterprise, Professional, Standard etc).</t>
  <t>entitlement-data-required (index 48): An indicator to determine if there should be accompanying proof of entitlement
when a software license reconciliation is completed.</t>
  <t>entitlement-key (index 49): A vendor-specific textual key that can be used to reconcile the validity of an
entitlement. (e.g. serial number, product or license key).</t>
  <t>generator (index 50): The name of the software tool that created a CoSWID tag.  This item is typically
used if tags are created on the fly or via a catalog-based analysis for data
found on a computing device.</t>
  <t>persistent-id (index 51): A GUID used to represent products installed where the products are related, but may be different versions.</t>
  <t>product (index 52): The base name of the product (e.g. <!--FIXME: what are appropriate examples?-->).</t>
  <t>product-family (index 53): The overall product family this software belongs to.  Product family is not used
to identify that a product is part of a suite, but is instead used when a set of
products that are all related may be installed on multiple different devices.
For example, an enterprise backup system may consist of a backup services,
multiple different backup services that support mail services, databases and ERP
systems, as well as individual software components that backup client system
entities. In such an usage scenario, all software components that are part of
the backup system would have the same product-family name so they can be grouped
together in respect to reporting systems.</t>
  <t>revision (index 54): The informal or colloquial representation of the sub-version of the given
product (ie, SP1, R2, RC1, Beta 2, etc).  Note that the version
will provide very exact version details,
the revision is intended for use in environments where reporting on the informal
or colloquial representation of the software is important (for example, if for a
certain business process, an organization recognizes that it must have, for
example “ServicePack 1” or later of a specific product installed on all devices,
they can use the revision data value to quickly identify any devices that do not
meet this requirement).
Depending on how a software organizations distributes revisions, this value
could be specified in a primary (if distributed as an upgrade) or supplemental
(if distributed as a patch) CoSWID tag.</t>
  <t>summary (index 55): A short (one-sentence) description of the software.</t>
  <t>unspsc-code (index 56): An 8 digit code that provides UNSPSC classification of the software component this SWID tag identifies.  For more information see, http://www.unspsc.org/.</t>
  <t>unspsc-version (index 57): The version of the UNSPSC code used to define the UNSPSC code value. For more information see, http://www.unspsc.org/.</t>
</list></t>

</section>
<section anchor="the-resource-collection-definition" title="The Resource Collection Definition">

<section anchor="model-hash-entry" title="The hash-entry Array">

<t>CoSWID add explicit support for the representation of hash entries using algorithms that are
registered at the Named Information Hash Algorithm Registry via the hash-entry member (label 58).</t>

<figure><artwork type="CDDL"><![CDATA[
hash-entry = (58: [ hash-alg-id: int, hash-value: bstr ] )
]]></artwork></figure>

<t>The number used as a value for hash-alg-id MUST refer an ID in the Named Information Hash Algorithm
Registry; other hash algorithms MUST NOT be used. The hash-value MUST represent the raw hash value of the hashed resource generated using the hash algorithm indicated by the hash-alg-id.</t>

</section>
<section anchor="model-resource-collection" title="The resource-collection Group">

<t>A list of items both used in evidence (discovered by an inventory process) and
payload (installed in a system entity) content of a CoSWID tag document to
structure and differentiate the content of specific CoSWID tag types. Potential
content includes directories, files, processes, resources or firmwares.</t>

<t>The CDDL for the resource-collection group is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
resource-collection = (
  ? directory-entry,
  ? file-entry,
  ? process-entry,
  ? resource-entry
)

directory = {
  filesystem-item,
  path-elements,
}

file = {
  filesystem-item,
  ? size,
  ? file-version,
  ? hash-entry,
}

process = {
  global-attributes,
  process-name,
  ? pid,
}

resource = {
  global-attributes,
  type,
}

filesystem-item = (
  global-attributes,
  ? key,
  ? location,
  fs-name,
  ? root,
)

directory-entry = (16: directory / [ 2* directory ])
file-entry = (17: file / [ 2* file ])
process-entry = (18: process / [ 2* process ])
resource-entry = (19: resource / [ 2* resource ])
size = (20: integer)
file-version = (21: text)
key = (22: bool)
location = (23: text)
fs-name = (24: text)
root = (25: text)
path-elements = (26: { * file-entry,
                       * directory-entry,
                     }
                )
process-name = (27: text)
pid = (28: integer)
type = (29: text)
]]></artwork></figure>

<t>The following describes each child item or group for these groups.</t>

<t><list style="symbols">
  <t>filesystem-item: A list of items both used in representing the nodes of a file-system hierarchy,
i.e. directory items that allow one or more directories to be defined in the
file structure, and file items that allow one or more files to be specified for
a given location.</t>
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>directory-entry (index 16): A directory item allows one or more directories to be defined in the file
structure.</t>
  <t>file-entry (index 17): A file element that allows one or more files to be specified for a given
location.</t>
  <t>process-entry (index 18): Provides process (software component in execution) information for data that
will show up in a devices process table.</t>
  <t>resource-entry (index 19): A set of items that can be used to provide arbitrary resource information about
an application installed on a system entity, or evidence collected from a
system entity.</t>
  <t>size (index 20): The file size in bytes of the file.</t>
  <t>file-version (index 21): The version of the file.</t>
  <t>key (index 22): Files that are considered important or required for the use of a software
component.  Typical key files would be those which, if not available on a system
entity, would cause the software component not to execute or function properly.
Key files will typically be used to validate that a software component
referenced by the CoSWID tag document is actually installed on a specific system
entity.</t>
  <t>location (index 23): The directory or location where a file was found or can expected to be located.
This text-string is intended to include the filename itself.  This SHOULD be the
relative path from the location represented by the root item.</t>
  <t>fs-name (index 24): The file name or directory name without any path characters.</t>
  <t>root (index 25): A system-specific root folder that the location item is an offset from. If this
is not specified the assumption is the root is the same folder as the location
of the CoSWID tag. The text-string value represents a path expression relative
to the CoSWID tag document location in the (composite) file-system hierarchy.</t>
  <t>path-elements (index 26): Provides the ability to apply a directory structure to the path expressions for
files defined in a payload or evidence item.</t>
  <t>process-name (index 27): The process name as it will be found in the system entity’s process table.</t>
  <t>pid (index 28): The process ID for the process in execution that can be included in the process
item as part of an evidence tag.</t>
  <t>type (index 29): The type of resource represented via a text-string  (typically, registry-key,
port or root-uri).</t>
</list></t>

</section>
<section anchor="model-payload" title="The payload Object">

<t>The CDDL for the payload object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
payload = {
  global-attributes,
  resource-collection,
  * $$payload-extension
}
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>resource-collection: The resource-collection group described in <xref target="model-resource-collection"/>.</t>
  <t>$$payload-extension: This CDDL socket (see <xref target="I-D.ietf-cbor-cddl"/> section 3.9) can be used to extend the payload model, allowing well-formed extensions to be defined in additional CDDL descriptions.</t>
</list></t>

</section>
<section anchor="model-evidence" title="The evidence Object">

<t>The CDDL for the evidence object is as follows:</t>

<figure><artwork type="CDDL"><![CDATA[
evidence = {
  global-attributes,
  resource-collection,
  ? date,
  ? device-id,
  * $$evidence-extension
}
date = (35: time)
device-id = (36: text)
]]></artwork></figure>

<t>The following describes each child item of this object.</t>

<t><list style="symbols">
  <t>global-attributes: The global-attributes group described in <xref target="model-global-attributes"/>.</t>
  <t>resource-collection: The resource-collection group described in <xref target="model-resource-collection"/>.</t>
  <t>date (index 35): The date and time evidence represented by an evidence item was gathered.</t>
  <t>device-id (index 36): A text-string identifier for a device evidence was gathered from.</t>
  <t>$$evidence-extension:  This CDDL socket (see <xref target="I-D.ietf-cbor-cddl"/> section 3.9) can be used to extend the evidence model, allowing well-formed extensions to be defined in additional CDDL descriptions.</t>
</list></t>

</section>
</section>
<section anchor="full-cddl-definition" title="Full CDDL Definition">

<t>In order to create a valid CoSWID document the structure of the corresponding CBOR message MUST
adhere to the following CDDL data definition.</t>

<figure><artwork type="CDDL"><![CDATA[
concise-software-identity = {
  global-attributes,
  tag-id,
  tag-version,
  ? corpus,
  ? patch,
  ? supplemental,
  swid-name,
  ? software-version,
  ? version-scheme,
  ? media,
  ? software-meta-entry,
  ? entity-entry,
  ? link-entry,
  ? ( payload-entry / evidence-entry ),
  ? any-element-entry,
}

any-uri = text
label = text / int

any-attribute = (
  label => text / int / [ 2* text ] / [ 2* int ]
)

any-element-map = {
  global-attributes,
  * label => any-element-map / [ 2* any-element-map ],
} 

global-attributes = (
  ? lang,
  * any-attribute,
)

resource-collection = (
  ? directory-entry,
  ? file-entry,
  ? process-entry,
  ? resource-entry
)

file = {
  filesystem-item,
  ? size,
  ? file-version,
  ? hash-entry,
}

filesystem-item = (
  global-attributes,
  ? key,
  ? location,
  fs-name,
  ? root,
)

directory = {
  filesystem-item,
  path-elements,
}

process = {
  global-attributes,
  process-name,
  ? pid,
}

resource = {
  global-attributes,
  type,
}

entity = {
  global-attributes,
  entity-name,
  ? reg-id,
  role,
  ? thumbprint,
  extended-data,
}

evidence = {
  global-attributes,
  resource-collection,
  ? date,
  ? device-id,
  * $$evidence-extension 
}

link = {
  global-attributes,
  ? artifact,
  href,
  ? media
  ? ownership,
  rel,
  ? media-type,
  ? use,
}

software-meta = {
  global-attributes,
  ? activation-status,
  ? channel-type,
  ? colloquial-version,
  ? description,
  ? edition,
  ? entitlement-data-required,
  ? entitlement-key,
  ? generator,
  ? persistent-id,
  ? product,
  ? product-family,
  ? revision,
  ? summary,
  ? unspsc-code,
  ? unspsc-version,
}

payload = {
  global-attributes,
  resource-collection,
  * $$payload-extension 
}

tag-id = (0: text)
swid-name = (1: text)
entity-entry = (2: entity / [ 2* entity ])
evidence-entry = (3: evidence)
link-entry = (4: link / [ 2* link ])
software-meta-entry = (5: software-meta / [ 2* software-meta ])
payload-entry = (6: payload)
any-element-entry = (7: any-element-map / [ 2* any-element-map ])
corpus = (8: bool)
patch = (9: bool)
media = (10: text)
supplemental = (11: bool)
tag-version = (12: integer)
software-version = (13: text)
version-scheme = (14: text / int)
lang = (15: text)
directory-entry = (16: directory / [ 2* directory ])
file-entry = (17: file / [ 2* file ])
process-entry = (18: process / [ 2* process ])
resource-entry = (19: resource / [ 2* resource ])
size = (20: integer)
file-version = (21: text)
key = (22: bool)
location = (23: text)
fs-name = (24: text)
root = (25: text)
path-elements = (26: { * file-entry,
                       * directory-entry,
                     }
                )
process-name = (27: text)
pid = (28: integer)
type = (29: text)
extended-data = (30: any-element-map / [ 2* any-element-map ])
entity-name = (31: text)
reg-id = (32: any-uri)
role = (33: text / [2* text]) 
thumbprint = (34: hash-entry)
date = (35: time)
device-id = (36: text)
artifact = (37: text)
href = (38: any-uri)
ownership = (39: "shared" / "private" / "abandon")
rel = (40: text)
media-type = (41: text)
use = (42: "optional" / "required" / "recommended")
activation-status = (43: text)
channel-type = (44: text)
colloquial-version = (45: text)
description = (46: text)
edition = (47: text)
entitlement-data-required = (48: bool)
entitlement-key = (49: text)
generator = (50: text)
persistent-id = (51: text)
product = (52: text)
product-family = (53: text)
revision = (54: text)
summary = (55: text)
unspsc-code = (56: text)
unspsc-version = (57: text)
hash-entry = (58: [ hash-alg-id: int,
                   hash-value: bstr,
                 ]
            )
]]></artwork></figure>

</section>
</section>
<section anchor="coswid-indexed-label-values" title="CoSWID Indexed Label Values">

<section anchor="indexed-version-scheme" title="Version Scheme">

<t>The following are an initial set of values for use in the version-scheme item for the version schemes defined in the ISO/IEC 19770-2:2015 <xref target="SWID"/> specification. Index value in parens indicates the index value to use in the version-scheme item.</t>

<t><list style="symbols">
  <t>multipartnumeric (index 1): Numbers separated by dots, where the numbers are interpreted as integers (e.g.,1.2.3, 1.4.5, 1.2.3.4.5.6.7)</t>
  <t>multipartnumeric+suffix (index 2): Numbers separated by dots, where the numbers are interpreted as integers with an additional string suffix(e.g., 1.2.3a)</t>
  <t>alphanumeric (index 3): Strictly a string, sorting is done alphanumerically</t>
  <t>decimal (index 4): A floating point number (e.g., 1.25 is less than 1.3)</t>
  <t>semver (index 16384): Follows the <xref target="SEMVER"/> specification</t>
</list></t>

<t>The values above are registered in the “SWID/CoSWID Version Schema Values” registry defined in section <xref target="iana-version-scheme"/>. Additional valid values will likely be registered over time in this registry.</t>

</section>
<section anchor="indexed-entity-role" title="Entity Role Values">

<t>The following table indicates the index value to use for the entity roles defined in the ISO/IEC 19770-2:2015 <xref target="SWID"/> specification.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Role Name</ttcol>
      <c>0</c>
      <c>Reserved</c>
      <c>1</c>
      <c>tagCreator</c>
      <c>2</c>
      <c>softwareCreator</c>
      <c>3</c>
      <c>aggregator</c>
      <c>4</c>
      <c>distributor</c>
      <c>5</c>
      <c>licensor</c>
</texttable>

<t>The values above are registered in the “SWID/CoSWID Entity Role Values” registry defined in section <xref target="iana-entity-role"/>. Additional valid values will likely be registered over time. Additionally, the index values 226 through 255 have been reserved for private use.</t>

</section>
</section>
<section anchor="iana" title="IANA Considerations">

<t>This document will include requests to IANA:</t>

<t><list style="symbols">
  <t>Integer indices for SWID content attributes and information elements.</t>
  <t>Content-Type for CoAP to be used in COSE.</t>
</list></t>

<t>This document has a number of IANA considerations, as described in
the following subsections.</t>

<section anchor="iana-version-scheme" title="SWID/CoSWID Version Schema Values Registry">

<t>This document uses unsigned 16-bit index values to version-scheme item values. The
initial set of version-scheme values are derived from the textual version scheme names
defined in the ISO/IEC 19770-2:2015 specification <xref target="SWID"/>.</t>

<t>This document defines a new a new registry entitled
“SWID/CoSWID Version Schema Values”. Future registrations for this
registry are to be made based on <xref target="RFC8126"/> as follows:</t>

<texttable>
      <ttcol align='left'>Range</ttcol>
      <ttcol align='left'>Registration Procedures</ttcol>
      <c>0-16383</c>
      <c>Standards Action</c>
      <c>16384-32767</c>
      <c>Specification Required</c>
      <c>32768-65535</c>
      <c>Reserved for Private Use</c>
</texttable>

<t>Initial registrations for the SWID/CoSWID Version Schema Values registry
are provided below.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Role Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0</c>
      <c>Reserved</c>
      <c>&#160;</c>
      <c>1</c>
      <c>multipartnumeric</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>2</c>
      <c>multipartnumeric+suffix</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>3</c>
      <c>alphanumeric</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>4</c>
      <c>decimal</c>
      <c>See <xref target="indexed-version-scheme"/></c>
      <c>5-16383</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>16384</c>
      <c>semver</c>
      <c><xref target="SEMVER"/></c>
      <c>16385-32767</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>32768-65535</c>
      <c>Reserved for Private Use</c>
      <c>&#160;</c>
</texttable>

</section>
<section anchor="iana-entity-role" title="SWID/CoSWID Entity Role Values Registry">

<t>This document uses unsigned 8-bit index values to represent entity-role values. The
initial set of Entity roles are derived from the textual role names
defined in the ISO/IEC 19770-2:2015 specification <xref target="SWID"/>.</t>

<t>This document defines a new a new registry entitled
“SWID/CoSWID Entity Role Values”. Future registrations for this
registry are to be made based on <xref target="RFC8126"/> as follows:</t>

<texttable>
      <ttcol align='left'>Range</ttcol>
      <ttcol align='left'>Registration Procedures</ttcol>
      <c>0-31</c>
      <c>Standards Action</c>
      <c>32-127</c>
      <c>Specification Required</c>
      <c>128-255</c>
      <c>Reserved for Private Use</c>
</texttable>

<t>Initial registrations for the SWID/CoSWID Entity Role Values registry
are provided below.</t>

<texttable>
      <ttcol align='left'>Index</ttcol>
      <ttcol align='left'>Role Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0</c>
      <c>Reserved</c>
      <c>&#160;</c>
      <c>1</c>
      <c>tagCreator</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>2</c>
      <c>softwareCreator</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>3</c>
      <c>aggregator</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>4</c>
      <c>distributor</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>5</c>
      <c>licensor</c>
      <c>See <xref target="indexed-entity-role"/></c>
      <c>6-49</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>50-225</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>225-255</c>
      <c>Reserved for Private Use</c>
      <c>&#160;</c>
</texttable>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>SWID and CoSWID tags contain public information about software components and, as
such, do not need to be protected against disclosure on an endpoint.
Similarly, SWID tags are intended to be easily discoverable by
applications and users on an endpoint in order to make it easy to
identify and collect all of an endpoint’s SWID tags.  As such, any
security considerations regarding SWID tags focus on the application
of SWID tags to address security challenges, and the possible
disclosure of the results of those applications.</t>

<t>A signed SWID tag whose signature has been validated can be relied upon to be
unchanged since it was signed.  If the SWID tag was created by the
software provider, is signed, and the software provider can be authenticated as the originator of the signature, then the tag can be considered authoritative.
In this way, an authoritative SWID tag contains information about a software product provided by the maintainer of the product, who is expected to be an expert in their own product. Thus, authoritative SWID tags can be trusted to represent authoritative information about the software product.  Having an authoritative SWID tag can be useful when the information in the
tag needs to be trusted, such as when the tag is being used to convey
reference integrity measurements for software components.  By contrast, the data contained in unsigned
tags cannot be trusted to be unmodified.</t>

<t>SWID tags are designed to be easily added and removed from an
endpoint along with the installation or removal of software components.
On endpoints where addition or removal of software components is
tightly controlled, the addition or removal of SWID tags can be
similarly controlled.  On more open systems, where many users can
manage the software inventory, SWID tags may be easier to add or
remove.  On such systems, it may be possible to add or remove SWID
tags in a way that does not reflect the actual presence or absence of
corresponding software components.  Similarly, not all software
products automatically install SWID tags, so products may be present
on an endpoint without providing a corresponding SWID tag.  As such,
any collection of SWID tags cannot automatically be assumed to
represent either a complete or fully accurate representation of the
software inventory of the endpoint.  However, especially on devices
that more strictly control the ability to add or remove applications,
SWID tags are an easy way to provide an preliminary understanding of
that endpoint’s software inventory.</t>

<t>Any report of an endpoint’s SWID tag collection provides
information about the software inventory of that endpoint.  If such a
report is exposed to an attacker, this can tell them which software
products and versions thereof are present on the endpoint.  By
examining this list, the attacker might learn of the presence of
applications that are vulnerable to certain types of attacks.  As
noted earlier, SWID tags are designed to be easily discoverable by an
endpoint, but this does not present a significant risk since an
attacker would already need to have access to the endpoint to view
that information.  However, when the endpoint transmits its software
inventory to another party, or that inventory is stored on a server
for later analysis, this can potentially expose this information to
attackers who do not yet have access to the endpoint.  As such, it is
important to protect the confidentiality of SWID tag information that
has been collected from an endpoint, not because those tags
individually contain sensitive information, but because the
collection of SWID tags and their association with an endpoint
reveals information about that endpoint’s attack surface.</t>

<t>Finally, both the ISO-19770-2:2015 XML schema definition and the
Concise SWID data definition allow for the construction of “infinite”
SWID tags or SWID tags that contain malicious content with the intent
if creating non-deterministic states during validation or processing of SWID tags. While software
product vendors are unlikely to do this, SWID tags can be created by any party and the SWID tags
collected from an endpoint could contain a mixture of vendor and non-vendor created tags. For this
reason, tools that consume SWID tags ought to treat the tag contents as potentially malicious and
should employ input sanitizing on the tags they ingest.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

</section>
<section anchor="change-log" title="Change Log">

<t>Changes from version 04 to version 05:</t>

<t><list style="symbols">
  <t>Clarified language around SWID and CoSWID to make more consistant use of these terms.</t>
  <t>Added language describing CBOR optimizations for single vs. arrays in the model front matter.</t>
  <t>Fixed a number of gramatical, spelling, and wording issues.</t>
  <t>Documented extension points that use CDDL sockets.</t>
  <t>Converted IANA registration tables to markdown tables, reserving the 0 value for use when a value is not known.</t>
  <t>Updated a number of references to their current versions.</t>
</list></t>

<t>Changes from version 03 to version 04:</t>

<t><list style="symbols">
  <t>Re-index label values in the CDDL.</t>
  <t>Added a section describing the CoSWID model in detail.</t>
  <t>Created IANA registries for entity-role and version-scheme</t>
</list></t>

<t>Changes from version 02 to version 03:</t>

<t><list style="symbols">
  <t>Updated CDDL to allow for a choice between a payload or evidence</t>
  <t>Re-index label values in the CDDL.</t>
  <t>Added item definitions</t>
  <t>Updated references for COSE, CBOR Web Token, and CDDL.</t>
</list></t>

<t>Changes from version 01 to version 02:</t>

<t><list style="symbols">
  <t>Added extensions for Firmware and CoSWID use as Reference Integrity Measurements (CoSWID RIM)</t>
  <t>Changes meta handling in CDDL from use of an explicit use of items to a more flexible unconstrained collection of items.</t>
  <t>Added sections discussing use of COSE Signatures and CBOR Web Tokens</t>
</list></t>

<t>Changes from version 00 to version 01:</t>

<t><list style="symbols">
  <t>Added CWT usage for absolute SWID paths on a device</t>
  <t>Fixed cardinality of type-choices including arrays</t>
  <t>Included first iteration of firmware resource-collection</t>
</list></t>

<t>Changes since adopted as a WG I-D -00:</t>

<t><list style="symbols">
  <t>Removed redundant any-attributes originating from the ISO-19770-2:2015 XML schema definition</t>
  <t>Fixed broken multi-map members</t>
  <t>Introduced a more restrictive item (any-element-map) to represent custom maps, increased restriction on types for the any-attribute, accordingly</t>
  <t>Fixed X.1520 reference</t>
  <t>Minor type changes of some attributes (e.g. NMTOKENS)</t>
  <t>Added semantic differentiation of various name types (e,g. fs-name)</t>
</list></t>

<t>Changes from version 00 to version 01:</t>

<t><list style="symbols">
  <t>Ambiguity between evidence and payload eliminated by introducing explicit members (while still</t>
  <t>allowing for “empty” SWID tags)</t>
  <t>Added a relatively restrictive COSE envelope using cose_sign1 to define signed CoSWID (single signer only, at the moment)</t>
  <t>Added a definition how to encode hashes that can be stored in the any-member using existing IANA tables to reference hash-algorithms</t>
</list></t>

<t>Changes from version 01 to version 02:</t>

<t><list style="symbols">
  <t>Enforced a more strict separation between the core CoSWID definition and additional usage by
moving content to corresponding appendices.</t>
  <t>Removed artifacts inherited from the reference schema provided by ISO (e.g. NMTOKEN(S))</t>
  <t>Simplified the core data definition by removing group and type choices where possible</t>
  <t>Minor reordering of map members</t>
  <t>Added a first extension point to address requested flexibility for extensions beyond the
any-element</t>
</list></t>

</section>
<section anchor="contributors" title="Contributors">

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC4108" target='https://www.rfc-editor.org/info/rfc4108'>
<front>
<title>Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages</title>
<author initials='R.' surname='Housley' fullname='R. Housley'><organization /></author>
<date year='2005' month='August' />
<abstract><t>This document describes the use of the Cryptographic Message Syntax (CMS) to protect firmware packages, which provide object code for one or more hardware module components.  CMS is specified in RFC 3852.  A digital signature is used to protect the firmware package from undetected modification and to provide data origin authentication. Encryption is optionally used to protect the firmware package from disclosure, and compression is optionally used to reduce the size of the protected firmware package.  A firmware package loading receipt can optionally be generated to acknowledge the successful loading of a firmware package.  Similarly, a firmware package load error report can optionally be generated to convey the failure to load a firmware package.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4108'/>
<seriesInfo name='DOI' value='10.17487/RFC4108'/>
</reference>



<reference  anchor="RFC5646" target='https://www.rfc-editor.org/info/rfc5646'>
<front>
<title>Tags for Identifying Languages</title>
<author initials='A.' surname='Phillips' fullname='A. Phillips' role='editor'><organization /></author>
<author initials='M.' surname='Davis' fullname='M. Davis' role='editor'><organization /></author>
<date year='2009' month='September' />
<abstract><t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object.  It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange.  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='47'/>
<seriesInfo name='RFC' value='5646'/>
<seriesInfo name='DOI' value='10.17487/RFC5646'/>
</reference>



<reference  anchor="RFC7049" target='https://www.rfc-editor.org/info/rfc7049'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2013' month='October' />
<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></abstract>
</front>
<seriesInfo name='RFC' value='7049'/>
<seriesInfo name='DOI' value='10.17487/RFC7049'/>
</reference>



<reference  anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></author>
<date year='2017' month='June' />
<abstract><t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t><t>This is the third edition of this document; it obsoletes RFC 5226.</t></abstract>
</front>
<seriesInfo name='BCP' value='26'/>
<seriesInfo name='RFC' value='8126'/>
<seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>


<reference anchor="X.1520" >
  <front>
    <title>Recommendation ITU-T X.1520 (2014), Common vulnerabilities and exposures</title>
    <author >
      <organization></organization>
    </author>
    <date year="2011" month="April" day="20"/>
  </front>
</reference>
<reference anchor="SAM" >
  <front>
    <title>Information technology - Software asset management - Part 5: Overview and vocabulary</title>
    <author >
      <organization></organization>
    </author>
    <date year="2013" month="November" day="15"/>
  </front>
  <seriesInfo name="ISO/IEC" value="19770-5:2013"/>
</reference>
<reference anchor="SWID" >
  <front>
    <title>Information technology - Software asset management - Part 2: Software identification tag</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015" month="October" day="01"/>
  </front>
  <seriesInfo name="ISO/IEC" value="19770-2:2015"/>
</reference>
<reference anchor="SWID-GUIDANCE" target="https://doi.org/10.6028/NIST.IR.8060">
  <front>
    <title>Guidelines for the Creation of Interoperable Software Identification (SWID) Tags</title>
    <author initials="D." surname="Waltermire" fullname="David Waltermire">
      <organization>National Institute for Standards and Technology</organization>
    </author>
    <author initials="B.A." surname="Cheikes" fullname="Brant A. Cheikes">
      <organization>The MITRE Corporation</organization>
    </author>
    <author initials="L." surname="Feldman" fullname="Larry Feldman">
      <organization>G2, Inc</organization>
    </author>
    <author initials="G." surname="Witte" fullname="Greg Witte">
      <organization>G2, Inc</organization>
    </author>
    <date year="2016" month="April"/>
  </front>
  <seriesInfo name="NISTIR" value="8060"/>
</reference>
<reference anchor="SEMVER" target="https://semver.org/spec/v2.0.0.html">
  <front>
    <title>Semantic Versioning 2.0.0</title>
    <author initials="T." surname="Preston-Werner" fullname="Tom Preston-Werner">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>




<reference  anchor="RFC8152" target='https://www.rfc-editor.org/info/rfc8152'>
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>
<author initials='J.' surname='Schaad' fullname='J. Schaad'><organization /></author>
<date year='2017' month='July' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined 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></abstract>
</front>
<seriesInfo name='RFC' value='8152'/>
<seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>



<reference anchor="I-D.ietf-ace-cbor-web-token">
<front>
<title>CBOR Web Token (CWT)</title>

<author initials='M' surname='Jones' fullname='Michael Jones'>
    <organization />
</author>

<author initials='E' surname='Wahlstroem' fullname='Erik Wahlstroem'>
    <organization />
</author>

<author initials='S' surname='Erdtman' fullname='Samuel Erdtman'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<date month='March' day='19' year='2018' />

<abstract><t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR) and CBOR Object Signing and Encryption (COSE) is used for added application layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-ace-cbor-web-token-15' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-ace-cbor-web-token-15.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC4122" target='https://www.rfc-editor.org/info/rfc4122'>
<front>
<title>A Universally Unique IDentifier (UUID) URN Namespace</title>
<author initials='P.' surname='Leach' fullname='P. Leach'><organization /></author>
<author initials='M.' surname='Mealling' fullname='M. Mealling'><organization /></author>
<author initials='R.' surname='Salz' fullname='R. Salz'><organization /></author>
<date year='2005' month='July' />
<abstract><t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier).  A UUID is 128 bits long, and can guarantee uniqueness across space and time.  UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t><t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group).  Information from earlier versions of the DCE specification have been incorporated into this document.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4122'/>
<seriesInfo name='DOI' value='10.17487/RFC4122'/>
</reference>



<reference  anchor="RFC4949" target='https://www.rfc-editor.org/info/rfc4949'>
<front>
<title>Internet Security Glossary, Version 2</title>
<author initials='R.' surname='Shirey' fullname='R. Shirey'><organization /></author>
<date year='2007' month='August' />
<abstract><t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='FYI' value='36'/>
<seriesInfo name='RFC' value='4949'/>
<seriesInfo name='DOI' value='10.17487/RFC4949'/>
</reference>



<reference  anchor="RFC7228" target='https://www.rfc-editor.org/info/rfc7228'>
<front>
<title>Terminology for Constrained-Node Networks</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='M.' surname='Ersue' fullname='M. Ersue'><organization /></author>
<author initials='A.' surname='Keranen' fullname='A. Keranen'><organization /></author>
<date year='2014' month='May' />
<abstract><t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks.  This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t></abstract>
</front>
<seriesInfo name='RFC' value='7228'/>
<seriesInfo name='DOI' value='10.17487/RFC7228'/>
</reference>



<reference anchor="I-D.ietf-cbor-cddl">
<front>
<title>Concise data definition language (CDDL): a notational convention to express CBOR data structures</title>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='C' surname='Vigano' fullname='Christoph Vigano'>
    <organization />
</author>

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<date month='February' day='26' year='2018' />

<abstract><t>This document proposes a notational convention to express CBOR data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-cbor-cddl-02' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-cbor-cddl-02.txt' />
</reference>



<reference anchor="I-D.birkholz-tuda">
<front>
<title>Time-Based Uni-Directional Attestation</title>

<author initials='A' surname='Fuchs' fullname='Andreas Fuchs'>
    <organization />
</author>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='I' surname='McDonald' fullname='Ira McDonald'>
    <organization />
</author>

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<date month='March' day='13' year='2017' />

<abstract><t>This memo documents the method and bindings used to conduct time- based uni-directional attestation between distinguishable endpoints over the network.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-birkholz-tuda-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-birkholz-tuda-04.txt' />
</reference>



<reference anchor="I-D.ietf-sacm-rolie-softwaredescriptor">
<front>
<title>Definition of the ROLIE Software Descriptor Extension</title>

<author initials='D' surname='Waltermire' fullname='David Waltermire'>
    <organization />
</author>

<author initials='S' surname='Banghart' fullname='Stephen Banghart'>
    <organization />
</author>

<date month='March' day='5' year='2018' />

<abstract><t>This document extends the Resource-Oriented Lightweight Information Exchange (ROLIE) core to add the information type category and related requirements needed to support Software Record and Software Inventory use cases.  The 'software-descriptor' information type is defined as a ROLIE extension.  Additional supporting requirements are also defined that describe the use of specific formats and link relations pertaining to the new information type.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-sacm-rolie-softwaredescriptor-01' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-sacm-rolie-softwaredescriptor-01.txt' />
</reference>



<reference anchor="I-D.ietf-sacm-terminology">
<front>
<title>Security Automation and Continuous Monitoring (SACM) Terminology</title>

<author initials='H' surname='Birkholz' fullname='Henk Birkholz'>
    <organization />
</author>

<author initials='J' surname='Lu' fullname='Jarrett Lu'>
    <organization />
</author>

<author initials='J' surname='Strassner' fullname='John Strassner'>
    <organization />
</author>

<author initials='N' surname='Cam-Winget' fullname='Nancy Cam-Winget'>
    <organization />
</author>

<author initials='A' surname='Montville' fullname='Adam Montville'>
    <organization />
</author>

<date month='December' day='10' year='2017' />

<abstract><t>This memo documents terminology used in the documents produced by SACM (Security Automation and Continuous Monitoring).</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-sacm-terminology-14' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-sacm-terminology-14.txt' />
</reference>




    </references>


<section anchor="coswid-attributes-for-firmware-label-60" title="CoSWID Attributes for Firmware (label 60)">

<t>The ISO-19770-2:2015 specification of SWID tags assumes the existence of a file system a software
component is installed and stored in. In the case of constrained-node networks
<xref target="RFC7228"/> or network equipment this assumption might not apply. Concise software instances in the
form of (modular) firmware are often stored directly on a block device that is a hardware component
of the constrained-node or network equipment. Multiple differentiable block devices or segmented
block devices that contain parts of modular firmware components (potentially each with their own
instance version) are already common at the time of this writing.</t>

<t>The optional attributes that annotate a firmware package address specific characteristics of pieces
of firmware stored directly on a block-device in contrast to software deployed in a file-system.
In essence, trees of relative path-elements expressed by the directory and file structure in CoSWID
tags are typically unable to represent the location of a firmware on a constrained-node (small
thing). The composite nature of firmware and also the actual composition of small things require a
set of attributes to address the identification of the correct component in a composite thing for
each individual piece of firmware. A single component also potentially requires a number of distinct
firmware parts that might depend on each other (versions). These dependencies can be limited to the
scope of the component itself or extend to the scope of a larger composite device. In addition, it
might not be possible (or feasible) to store a CoSWID tag document (permanently) on a small thing
along with the corresponding piece of firmware.</t>

<t>To address the specific characteristics of firmware, the extension points <spanx style="verb">$$payload-extension</spanx> and <spanx style="verb">$$evidence-extension</spanx> are
used to allow for an additional type of resource description—firmware-entry—thereby increasing
the self-descriptiveness and flexibility of CoSWID. The optional use of the extension points
<spanx style="verb">$$payload-extension</spanx> and <spanx style="verb">$$evidence-extension</spanx> in respect to firmware MUST adhere to the following CDDL data definition.</t>

<figure><artwork type="CDDL"><![CDATA[
<CODE BEGINS>
$$payload-extension  //= (firmware-entry,)
$$evidence-extension  //= (firmware-entry,)

firmware = {
  firmware-name,                  ; inherited from RFC4108
  ? firmware-version,
  ? firmware-package-identifier,  ; inherited from RFC4108
  ? dependency,                   ; inherited from RFC4108
  ? component-index,              ; equivalent to RFC4108 fwPkgType
  ? block-device-identifier,
  ? target-hardware-identifier,   ; an RFC4108 alternative to model-label
  model-label,
  ? hash-entry,                   ; a hash for a single, incl. NI hash-algo index
  ? cms-firmware-package,         ; RCF4108, experimental, this is an actual firmware blob!
}

firmware-entry = (60: firmware / [ 2* firmware ])
firmware-name = (61 : text)
firmware-version = (62 : text / int)
component-index = (63 : int)
model-label = (64 text / int)
block-device-identifier = (65 : text / int)
cms-firmware-package = (66: bstr)
firmware-package-identifier = (67: text)
target-hardware-identifier = (68: text)
dependency = (69: { ? firmware-name,
                    ? firmware-version,
                    ? firmware-package-identifier,
                  }
             )
<CODE ENDS>
]]></artwork></figure>

<t>The members of the firmware group that constitutes the content of the firmware-entry is
based on the metadata about firmware Described in <xref target="RFC4108"/>. As with every semantic
differentiation that is supported by the resource-collection type, the use of firmware-entry is
optional. It is REQUIRED not to instantiate more than one firmware-entry, as the firmware group is
used in a map and therefore only allows for unique labels.</t>

<t>The optional cms-firmware-package member allows to include the actual firmware in the CoSWID tag
that also expresses its metadata as a byte-string. This option enables a CoSWID tag to be used as a
container or wrapper that composes both firmware and its metadata in a single document (which again
can be signed, encrypted and/or compressed). In consequence, a CoSWID tag about firmware can be
conveyed as an identifying document across endpoints or used as a reference integrity
measurement as usual. Alternatively, it can also convey an actual piece of firmware, serve its
intended purpose as a SWID tag and then - due to the lack of a location to store it - be discarded.</t>

</section>
<section anchor="signed-concise-swid-tags-using-cose" title="Signed Concise SWID Tags using COSE">

<t>SWID tags, as defined in the ISO-19770-2:2015 XML schema, can include cryptographic signatures to
protect the integrity of the SWID tag. In general, tags are signed by the tag creator (typically,
although not exclusively, the vendor of the software component that the SWID tag identifies).
Cryptographic signatures can make any modification of the tag detectable, which is especially
important if the integrity of the tag is important, such as when the tag is providing reference
integrity measurements for files.</t>

<t>The ISO-19770-2:2015 XML schema uses XML DSIG to support cryptographic signatures. CoSWID tags
require a different signature scheme than this. COSE (CBOR Object Signing and Encryption) provides the required mechanism <xref target="RFC8152"/>. Concise SWID can be wrapped in a COSE Single Signer Data Object
(cose-sign1) that contains a single signature. The following CDDL defines a more restrictive subset
of header attributes allowed by COSE tailored to suit the requirements of Concise SWID.</t>

<figure><artwork type="CDDL"><![CDATA[
<CODE BEGINS>
signed-coswid = #6.997(COSE-Sign1-coswid) ; see TBS7 in current COSE I-D

label = int / tstr  ; see COSE I-D 1.4.
values = any        ; see COSE I-D 1.4.

unprotected-signed-coswid-header = {
    1 => int,                   ; algorithm identifier
    3 => "application/coswid",  ; request for CoAP IANA registry to become an int
    * label => values,
}

protected-signed-coswid-header = {
    4 => bstr,                  ; key identifier
    * label => values,
}

COSE-Sign1-coswid = [
    protected: bstr .cbor protected-signed-coswid-header,
    unprotected: unprotected-signed-coswid-header,
    payload: bstr .cbor concise-software-identity,
    signature: bstr,
]
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="coswid-used-as-reference-integrity-measurements-coswid-rim" title="CoSWID used as Reference Integrity Measurements (CoSWID RIM)">

<t>A vendor supplied signed CoSWID tag that includes hash-values for the files that compose a software
component can be used as a RIM (reference integrity measurement). A RIM is a type of declarative
guidance that can be used to assert the compliance of an endpoint by assessing the installed
software. In the context of remote attestation based on an attestation via hardware rooted trust,
a verifier can appraise the integrity of the conveyed measurements
of software components using a CoSWID RIM provided by a source, such as <xref target="I-D.ietf-sacm-rolie-softwaredescriptor"/>.</t>

<t><list style="hanging">
  <t hangText='RIM Manifests (RIMM):'>
  A group of SWID tags about the same (sub-)system, system entity, or (sub-)component (compare
<xref target="RFC4949"/>). A RIMM manifest is a distinct document that is typically conveyed en-block and
constitutes declarative guidance in respect to a specific (target) endpoint (compare
<xref target="I-D.ietf-sacm-terminology"/>).</t>
</list></t>

<t>If multiple CoSWID compose a RIMM, the following CDDL data definition SHOULD be used.</t>

<figure><artwork type="CDDL"><![CDATA[
RIMM = [ + concise-software-identity / signed-coswid ]
]]></artwork></figure>

</section>
<section anchor="cbor-web-token-for-concise-swid-tags" title="CBOR Web Token for Concise SWID Tags">

<t>A typical requirement regarding specific instantiations of endpoints – and, as a result, specific
instantiations of software components - is a representation of the absolute path of a CoSWID tag
document in a file system in order to derive absolute paths of files represented in the
corresponding CoSWID tag. The absolute path of an evidence CoSWID tag can be included as a claim in
the header of a CBOR Web Token <xref target="I-D.ietf-ace-cbor-web-token"/>. Depending on the source of the token, the claim can be in
the protected or unprotected header portion.</t>

<figure><artwork type="CDDL"><![CDATA[
<CODE BEGINS>
 CDDL TBD
<CODE ENDS>
]]></artwork></figure>
<!--  LocalWords:  SWID verifier TPM filesystem discoverable
 -->

</section>


  </back>

<!-- ##markdown-source:
H4sIAMKnsloAA+19a3PkxpHgd/wKHLURYtuNJtl8zAx3ZXuGpCTuzmuHM5I3
vAob3Y0msYMGegE0ObQ0G/4P9+ki7v6cf8nlsyoLjSY5luTw3nk21mIDhXpk
ZeU7s5Ikidq8LbLj+KQqp3mTxRfVvL1J6yw+n2Vlm8/zrG6idDKps2to9Ori
2/PTaFZNy3QBH83qdN4medbOkyadLpJp1dzks2T3MGratJz9Pi2qEpq19SqL
8mVNfzXteHf3ye44gkHS4/gim67qvL2Nbi7hx9OTF/G3Vf0+Ly/jr+pqtYze
3xzH52Wb1WXWJqc4XjRN2+O4aWfRMj+O4ritpsfxbdbAn01Vt3U2b9zv24X/
GaWr9qqqj6Mkzkt49vUofpbX76+q4o/QlBf0dVa+t0+rGmb1ZZ2uyqtqntXx
xflbeKrgWHuRLdK8OI6voJfRRHr5TZO3o7lrOZplODGYZgareHOVwVzaOm0A
9I8O4c20msE8Pj86GD85/Bx/A2yO49O0XgBIZy21WJVtDQ+/yupFWt7qev55
FH+Zt3+8zOq0mCUvpv+S3rp1/XPWNPk07WtASzzNlmndLmDH42oOv+ZZ2WR+
Qf+xmMOH49+UTTq6rK7NAp483t2NL9Lr9DKL31TpzM34y3YUv8hSWm2dXeZV
eRy/SOvbAvDCLuLdxVNdwMkovpheLXJaJc/75Cqti6wxz2m6b6+y+MX52zdn
gLb1sqrTFvr3050uGm7/m0UO8xzBN2bK491x/GxVF4BjbVWGs36WzeZVPds0
Z9qa3b1H+7ufb1jD6Sj+Ni0AXRd5nbllnKbX+Sx8Qet4SRNPC8DwBs7hqs0Q
/Bd4dtJ61sTw3/htNr0qq6K6vDWY9/L8wuDbDLsf3bjuf1PmTdvZqD3YJ1h1
lq7i0zq/ztySv0rz9goO+WRFUNq87vHu40eP1tYdlRVgYQs94ll88+XJeG/v
ifx5sLf7mHYjmd8ky/eXDT8+PDo4khaPdg+eQItJVfPvx3tjevXb0d7heBf/
gvPNBGrrTTatFoCiMwJafP72XfJWGsbb4929g8EQ0GGxgHfXq6IELJ/kRd7m
GcMx+7CsGgBAs0W9Qi8Z4sLeXrJ7kIx34eHF0xfBiL+iHzFszpzXCD23bjfi
xNNKPL5tDIcRjgEdoiR+DecpPjyOX11n9XWe3dAcrqtpOlkVANpwDvsJTGPv
kB42WQ1TzmHMYx3/4tXO+dkJ7OGTR492k8Nj/ALnC7T4J57w+Ni3yYUBTKWj
9DKc9GGyt5vs7j1s0mOc9KFMOvnq3fnp05cnZzL7tL5EFL1q22VzvLMzq3I8
sjt7u6Oj3fHjHUT20fmb0ePdo1273K9WMEU4xrDBsN4YsDg+AQSn2cIxIq5R
LREPih6+JsvaxgkN4rcpYSecMGESvIpE/hv3n27+t/GM879NJx3nfMdR7xn+
2Sh+OgKamOXvs6Yz/LM6hW3seX0nwewZ5DmwkayYAW50Rnie1vXt2jvq/qvx
EBY27e/wKwBa3rZdeH0FlKbzYq0vh2tHcEg3IBpix/mb41iw4+LsxTdnb/oR
q8kWcBoJt5plNt25Ho924f+u2kVh8eoCyCqgyDT+BsgiwAmFEWp5P4K8HcWv
gcQAX0m+RZGl7iz6bbVYb0B07xCOHohPWbJo8JydJ6cjkqvSaZYgfUxusknS
Vu8zoM3TmzaKcj3kjvIe7I3H+ueTAyXCj8bjx8e2R+ptOpsho4T/lVcqriTt
agZiGf6v/YjEu7oq8ixp5CTNsmZa58sW0DgGeewmwQdr39BpEAIErfRRFCVJ
AuwMZZ8prObtVd7EIFeuiBrNsjkd6xRAwmJpnS0BbPDOH28mMAF9ue+Ut3jK
26u0jYnABQTiBtgg0ZDfvngeg/wASMDzyO8cEc9turrEaWczPNNRulwWOm5e
omCNi4T1zJKXwEnjl1l7AyJuM4K/PrQgvtKoeQlMGNc+TZfMuG5JFoB507Sx
HbAwAAKI4/UE5BrgIgieFjvJPcUfelEev90+qfza42a1hNPf0ojh4tLZLBcS
1Qj+N/F1nkY3WVEkvCEzPJAWKg0MPBWCAm8ntzDFFkRH7HNZAXybEW80CGOz
Iouiz5Aq19VsNSUCFPnlXaXXGYx8jcJpvIJzYMBIwxSrGR7EyaqNy6qNixxk
OxizBUIQGc52Xl4DFCuAzQvH3YaASCjf4jpx5a7xU2KDvmH8/fcgBHz8CFi8
rKspwHoY31zl0yvAv/9cAVFHOh2nU1BZYMEwh4b6nOXNFA5zjmg0y5ZFdQsT
02NCAtNiCYqQgCP+xkgntzSHpuFpdsdyWwFDgWIyAczJsjJuhGvkf8xQPrsO
+tNjSXBD7NSJmGkgsWrTooBpkiSVkDzQwPJZnvr4kSb6JltUsMynQKObVpBr
bYrBzEDbQiye8uG6JMUujhdZipLXgobefnP+YsATE9UvBuLQIBylXe+UoZvv
vyfiRJNziAN728SKnnDc4JAmwQGFLYW2Hz8OcUuBRWcIVgtAOO/JJG3g8xok
zJoOMRylmOiECkEiRDJwJ7w3wEKQwsBnBUycRPc0Wp/6KD7N53M+3D0LG7J0
ClgLeKTtpMuG+0TczacoN/Z0MIyzFHaEzk9qulAI6apgi6tpjuc0UlK3GBn6
gp3CBpREkSYgnhTZB8JoonD4h6dAMNCkBr0pxuNDGwe6KZCGKJ1UcD7TnmnC
nn17lWMvSOdoNDjrt/EcRGPBJoB8DtIFYmds9td/gNpuXC2ZTEXSmLZJ6Zpf
PpAQoOJZmdZ5BaSWx04d3iDlbOD4IkmBBVRlcbs2jUV+edUiKFKa5dWqnNVE
5eA4wByjBtAHSYt01wKNx+54lkxpdLLa5RTIx0QXUs9AvoCW0SK9BHq6AtQs
UGKpRyCvrWDlIMwWCfCKYsYHFs5VEzIF6W+e5jUsgL5mfMLBUV1alcqKYBz/
HUB4jcY2K0CjFAEKYojDdEBNUMHzrKaxpinCNeWRonSBmiBRQOQLjDfAmMoG
NyOb4TpyN0leG+4XkdBs2RJWIcuceh4JA1/nUzlupWOVd/G0HKCHnL5saROB
uRCWxW56EU/PTwyXiZiJUgxOG17eLqGHwoFWpk69MSdvYkAmmPAMBIi6Wl2y
sLDic3/y7NUbpY2LdAnsbAV7nMAGzmiRRTrJioaxAtCV2DadtGhR0Snh1RHR
BBhJ8+28nCEsBiMS4M1Y9izSlI0AwEKHOdhFUd008aSCQy/PEbaBZAHbowwS
ZHuUZepljTNyNLqpihX1jmpLCtISIG8MEL2kOYFWzvyeiVl5nddVuRCO99ln
NH0aEPSs+Hk+z6a3UwAL0PTPchQIkkKffYyi89JJIzg3FjfgYCG8hTbjPLsU
btgroEUqS8rpZiaEAEeOLb26ntw0gDIKeQfw3eLWAn3uo+6IGAE3BexWaAx5
t5cs8Hze+HFy3JamityXI4DK++wGQC5j4bTkQ2wN59gPUqM4XIBmMBsG049Q
hgbO0XYbAbrDUQdZt0YGAFokUnBAnlXR9kPNM7oIiPlt02YLnFad5aXQ45yl
8xp6AUDMiOerFIBzEs7gZ+3kISOGdMGllItl/WmmZNSPAzum//UYHIn63wQy
DmIPgl+7Hwn2A8W4wi2kWYJW5jc9wJEIgebpAaooiH54mHDwnETB7AOg0bKN
t4mlNhX0tqhmTu/g41BnROrhq0E8r0EDRJWVzRMgd5bTWxC0iHttsy47IF32
U+0bcroaEXicjQUlHyZMXnjBrhANgerBrxXKPrgA3lwDjzvkKgDIr/yxVlmI
J6dHbl6tahnDcq1j2N98AeoLiGRpO70a4v4uVyIJISsvaAvSAgbZQ42aWhPt
SOKn3BEAxBO5+2W1B5xberciiYB50Cgaw+A4wx8xdGlGodXKZlwBei3SGdL8
aS3LjadXSFAbZkl9c75nwnG0PyILz6r5KaZMiNU7jTiHAwanNNGWtO+oJCB1
kf1kwYiZP+EYLMvp8U5mjEVm9KNSX8t0+h6dCjBzXXUtvKdPBjZPV0s0Gw1j
aksgH0UHQM8NXt0LHOGZRim2DJYZpheo2XaQeu1n1pUjrrJiySp8iRoOD0Jt
FLlxDxyuNaqrkE5t1iaPaxKHUQ1masPtXCtj122rqmAlFsVfJV5MK+kdTkoV
I3ic13F1U5quZJfouJ/IMXXHFyfNSG10eFDMUVOZr8qpKu+8Xuj+1uEZURrQ
MIC1IKGHnnZgHyzh97K8IyFuWtvZ6HI09L8dijTrD5kSm+c0Y5CqaP6wmgpl
sZz5vB+UkDkc1ejxQH1JiqvTBrDP0iwGxXwF0kVztQmDcOtEZWDyOu2CFoHh
IAtnqiiEnDqyPUVuA3wN9q9IAUva+BqVHTh3IooJOXfTd3TdE1rkOn1oI9aP
TNSrWbYELsocFfZKLA1IpcQUUuDGsqkvY0GBtdJNdJfohxe2oui//uu/nKl0
879fJubfLx/wwbX98UN0bikM/nstEla8/qv3FQz5IpvlqRh/fxWfO4qMv/gE
4w/89W55Wacz/YXGlGu015yKhSiKlFTHbhCmBX0/P/T+WgNBQOU6Pz+s/dIf
90GSCVOsY+OvBwDffL9htnf9s5Nl/Pj+OP5snl96XYEN9l9svWPFCIn6Wzoa
gvnOzuc0jq2PSMe+/z7o5uPHOC+KFWqgrQhHQJWWdxwgJ6jWmZCXqxzag8JJ
xBX1Z98WTTutM70yqWZVZk06wm6N6kaCO4uczTFO3Ng5GYsWZF96ls0rFWjv
EXS281E2Gq6xbqaFwiY6qsckYwmDsXbIYr+yd2EdTUDdmKOzVdscuHleqLAB
ZB+YACuUCzpQQtFPTndOvzkdhi1EFhiMQhDY04xSh9BOmtcN7Cgyab9yZ9/v
AdE2UNtmNWlA/M/IijBFOTubDZDGgeoFj+GhSEy3gby0ocuOvOEsbNIx0U72
GthpNyJJGFt83maJszTCNMnAPiOm4QCu5i3kKh6TZ4q/gOwgcwwtp14gwwAF
NATRbIVKSj8DtXLC+l67T+b5h6zxRnAMALr0oEcza3/3na0lEgNzwZWh4h2X
2Y3MPyddtsgZiP3QHwZfiMKtIpWw61vGamDBIAR5jOVPcIeRRTHjA4kExOQH
QjntSr8E582g84M6IcYIVnL03CSYH5cZrz7YvYmnAiL1BiBlbkQwfbpZJVop
zyIVBGF4zU7QIQPUSKvrQo8YHFisIzmTiBjZzehnvsBzRAZl9aGg/++9WGFZ
cieR1CCJ+HN+RvDLorsb8Olwl446kCfOD8osbEGFLhL6paaNPuRF6/91amz4
TDtqliCcaZL7IfZCKwWCeUkWVgbzndBEXaXIpq1awDqzUvJPW1XeWl2HcZUI
Zmf/QYx7WaHD3m/UfFUg4dy8XetIJArjmnZV3t4tJFsCZQjoRjUTd3ndOjW0
CqcuFm1PCKtrACss8gwlWwFUx98SMnDh7joro1ugs62aRwEN/5Koe7pYkoAe
b3k83qKTyRp05BhP3xH+vAmJNsAJdehyTb0mpuv0wmjLgZHGcn4gM5i0wGMg
SmfDBq8KDYL9Hp/PPgsN92fqHW42efzJyMUAZNAgKAIb+XokQJ8BnPuhL6Jn
eYk069XkP2AT0dZmv99Gc/oAfYsYF/Hxo5wusqSqB+Qa5BPb4Sni06l3nz9P
y8sVAnr75PT0OXc2mxXcWSaGVjxpsjJylRn3O0lonxyLEJjjInVz8pA+0AyQ
nCQ+mj/MjgJRGkVfRlDE2kW2mKA7itAsLyOzER2n/1B8ccslE8Ngd8Rz4TaJ
fC1RswDEc94NoDMrZKc4UZ6NDOon2RnSyds4KpGsiieIrpAOQqwaMs+GnhQU
Y8nFKyqsh49AAr3AoEKzzMnyfcZ0SaYYmkLXDOZiHw4M1RvgJ8EMiOw3VQy8
b8ZuXhYHRRqKEgJP9gEddHnb2X3eNrKG6ZSFQ5Fhm31ZQHgbIPW8nTEte4to
uX6yxe6edZc5rBHBEQKW9qshRyyFNIBcwOD4/nugB1mRXBbVJC0SPyPQqxCO
+h7GTgSm8IbAbiiAWzJBp5GFdsNJ/NHuhay33ZFbMbaMYCXudOsao/aXyM9v
K8GwCphoTpL3FI4jEul4HUBsk3Hw6IPGMr0tqnTWgUGGjKCcZhTDANTxjXVK
AfPkuDxCpffZbXxTYWjg1ot3F2+3hvzf+OUr+vvN2b++O39zdop/X3z99Plz
9we3iODHq3fP5T3+5b88efXixdnLU/4YnsadRy+e/tsWiUDR1qvXb89fvXz6
fIshb0k2oZrIQuQvzMSz6gknfPPmy5MIQ4KH8bOT1/HeAYBCgoQZBiGD6FDW
PqcLE4jOoWfDsN9aoeK2qbQUWlvOnCS3TGtk9oWqE/00VxCv11mmtDd0gwy9
vZV8r30afmgSJ4s+xi+L82yNsREZrJzlDomqkzUAv6MpxoyM4vgtWuauchAN
ec+ycmY4QAd2jhxlFJDhOqSQBZYA9UgzzT4BglicoCpXVo7oegK+AX6NeDdE
tbi6XYJmlzSYeEBBKa4vsgTAyWiqVT3NTmDzM+eCR1qMDjV+l0zNy7sIw2Ak
4gacP0EY9MMF533jWjrg4gADNPZMQIZFOyj5a9X2D9sdTbMaLbuWOLOJ1/AG
DNtbwbA2XAs0M/MRd8kRJ6SM4uLJua/w9zBTPkEBEIWK/Th7a0x6QOdRd1/i
e8YwyCyHjjzNZPzNQZZlQRE5LAmGjeNh81VNgiMGeDAh9sFjdF7c7M2ZUeKD
usbXYYiFk2tUkrlTnggkGBUWJNyC5L00nhTV9D12WK/IbsW6IkytrRaRiv+u
Sz4aR48QyzGkFUXiFs0pTtaiBRjBg9Z8U63gkJHjhKhRJCwb/b0mXgXWgqpU
nM9FvglQ13TKeiL7/QFG//Q/EuaqAQ2FBlmboz7DLnpPYLzUplE/AkVP9Uua
De5/jdEhgrhJ8isaLFIfO3GHNC+q2hFae7Bm1QJPCAxvYn+SEuNjfdDP00jD
ctSHT2QEA2QLmjoCay2GozfqgA0D4UgRB3gBrAQBfejtyEXKzGa1OkI4vkD6
kFCXteiEjis8byIfHUzEniiDhA7NMXKzCTEkcDSml5fYpztS8im66i+TcdKy
fYhg6SNWVIvUsFlYPEbNouAWRs4aXLpK0VlVXAI826uFOzznT18+jV8S0Q2S
SnADYNp15ANz53m94NwST/UEet5Drf6kiqwDZYZOprTOgaT44Ew0EycSczIP
fbO436BnjSJEN4wT4rgrJGx1nd5ykBamK81kaRyrZ/3dbHun5j7ehH6C7lxk
5WXLxo22WrLMGW83Web1Q4zFAp0nfQ/UEmbYiT/cw29JIWIlZyiWfj18rIFV
ys7wRLDzi95Ev0ci9vv4i3j796S4/P44/j2Srt/HO/Hv4vEv9Nd3A3KIkHRE
XaaT6jpTrzULQzSLbD4HnMBzS6oSAUeMbXQKkSxyaFOM8Cpk3s7egN7n6yqf
KZqoAQw2u2kF1h6CzL90J6gDClwBNScEi3AKkomx6yXgTFaX/qvaWeJDvt5L
zKEJxS6y9NOVGcmuL57owGjvzTEY+uYOoYxEc/PBa6LfuuSHhNGpdWYFDGVj
GX9j049mwzSgh6jg5s4r7hy5qvUEOYTZ/OUX8feguazpZEPUBNNLaKd/qX0X
fv5aLWz0N8fm0J/WSodPKMsXcVVe6+hBX/IjIVlQWrLZKfwILXRJhhmF/IIX
YJ9giLn9vR2LdsUP4XCoXiUPBtzOaJz6+ceIV49nbPeYpLBB5JaDT/f0qZ0H
vhgfy9T0MMovOIyd4aHx/rGb0yDy88dXB8ccMy+90N/QRw88sPXhcQgp/Sx8
CN+HIIEvj44VTINoDRLY4NFxACGQh7Tz7mPoXqyR8NnjYxCCqgJHRIsgPHmi
T9iVh0D0sLUGXnyzp40N8tELgK8IYgYYtsG+9hliFr070HdEF53YwyQauRKF
4KFcYwJwkKV4+zBIgymIjUTahnLYmAReZiWlpaxFxQwVB4L8G9pR5xlmLjNH
QQ3ZHO8IefIEP4ieCUXUQEFkotli2XbDc4AsAd01Ec9+/mz7QFrWgGSGDj4i
1j3LCT/Blsq+iEQ7b2M3QnxEXDekrj5sjOI9QOnEYHVk3S508x7apoQ2WSdW
x/FTl2PDO+nFDeD5Lri+UPurNQVVNtkpkoAW5X2AKgmL58KRxNMRr8pJtSLj
gOjgeBS81kSzGMWn1sJxh/2LliUEZ5s4erw7OEYuqeqfi8KrvZ/ZqJKwoduq
N2WDXj/zW47ljExPZCcCLsczQlcQdU1tJZWirEg9Afhf+ijTCtS/6oZNBqY7
+AVtV9MWc3NYluxKmDDPvSOStmKMO2UdPpoWKQi3B/G7dxisT4YfzFE0cNHj
LcDZGzN0AkuxiG+om5HSmc83Jd/0+TQpzpL9c2kZwTMf5IeeJm98YTmu0+0I
A0o0BpwDGnIMFZOZqRGTTSUIp4zcJrtetHTy1KICua8qxTJLUZ+pSkg+9oCt
Qux+U/FJ45R7VuenSXuG505lKIlYN9Kz9FpLEIIGJ0umEXmISJWZth5GFLNn
QyOiG3ENzfMPQ8nGi/HE1OxR1xBWUmknGA1OUa5iW1O/ohG0EHfdLqhkOBW1
GGgyTGs+JEAY55gLBXBxIiiX4oRxv9NISLDaE0TpgGlx4N01RlCCOs0bxEFz
DroOIjmhCLM5jC8ps5ssUEd4dzDCn6YjnkvmFmQLFRwwmB4JPmjQrxogGLkd
zFnGJX88OnFndGCEBctZeYxHhVhpBuNuOika6f3zRfue933tbIrpzxjVG5/P
O4jkj3PTu6qh6usIRzotSirl4G5hqZot6hkxxUXhiq0nXRWtgFo/pDwyFi22
5mnRwNe4V4wRslVPfuqt+qvEkhvK1zOyGzNVTol6eyf7gYQXhzahOQaXpieS
iibwaRSGUK7QiBcL+XNG0msve4nz6q4EE9pH6xbAEzX3GDTEI04bKbG4NhgH
sCPSMKBwy39qXAlEZOWEe5+GMxplQDLDJ0Wtl+y/78auB4aXEQelq7lIWQ1G
tXeD2m2EkAk4+1uLZ99IdHpxJtU90jCVfswJNpIg9FdCIKe/KvYMjpmPOjET
J+NiNTdEQVIPKfE9Nkt7R/IkizyCjOIwVuXGG7JpcZnzxgAm7nDUkh8PNMSi
Qgc9i/DIKslMQwa/YQQdU38oTLEwxk7FVoIFWNATPtKXKR75822FWPyWgdVV
LRVm+3TiFGIMeMdP1ADmlSMv8jgRtEbamRXVklBV+98Y6EXT6eiyOpkDFoQf
J5O8deIwUsO7p3ftK5ZIh94KZ+bg1o54wRjfFbpVjFQ8pxggfuV8Z1grqkFj
AplIxcoGcn4O5zUJF4Ye/9r1oJS2zq9R6sHEVkolPY73x4+OHidHh8PD/UOC
j0QHC1h2LWL7mabxVV66Uhqa3r1aIFMR6ZRS/hm1iICh2MlxpEgyrABtZIg0
AqkXiZmP/5Dg7W/3TyQT4F9XVJIm7pSnQpBEWHjmeGfn5uZmdLNPdWfevtmZ
Ns1+Qsv6T/50Z4DSpV2Bm73gDomzbRXdqHjIlW2cwC9auqRTh2huzEkCxUPG
LTh7ZcKOcONHhRHfZ7c7DFqilOzsk2hbdKoTaRxFTx2TniOXVwAZ87/N/XL5
hQpmz684A5wc36sGpUMuDqFFSNJpXTWNaF8zDCS8RRe3CsmdyBh2d+NqrTUc
w14cV4y8Pq/xCyStko+cMrvzlt1ksqOqW+jwVPOMe8agWOvwqH3SJJl91Owi
GzvLLms4KqDPN1hbYYMlIdg70ZYDa6RsJGrL4vQRqg4olpb5H0X8CnZug/7o
uD4hdt5Eluv3zk6M2TwtY9qUSSHleq2cJqVQQs58a9BrRDlRQdoEwGwaZA7j
8WVrDEsmTKOe8iHopBP6TsNMDNcfxc6W4npTdVAlHo4iMJFTIcAMKIYxGTQ6
lVYA/SiiXWUqNve9efX8/CyeZ9kMfrx4d8p5Dyb/bAYSCRkBi0ojRbJ2qjEK
6hdBDJqrWPz12xfP4y2EwJbGpcEZ6N0ebESbw0bQV6evjoE2UQk6ItxkAiJL
XtIxo8sGHg2Oje3U2QiDmGdSGcRHJ+Y8l7Xew5JtCgrMG6OEVXFmc6gMQHIW
0OrMlepRs58OjHuZRByZTcY8NgMuBOcB3VDvyRt2YUrgLu8nmneCGSc0LBAf
MpZiWLkYszgQhqiUlGsQ2UazN0j6yaZkdeCIwqjjBDYD5QKbvjo8NncRlPzz
Um3NQwcazWRRlDe2gkxSanr3KJKk1A02w5qj1oNRoGVW9u1D1WQRD0X5Q2yC
M1VpnCW2WU2SIJ+AwSpTGvo5R109hPdnnUK5ZTGJxl2VOav1qfVVFFzGlt3n
wQY65iL0mL6GLhw5C/sqbwSmNaNicGxvw0cLwIb0iU2RpmiCXxeuMnJqr9Ts
CXUNLCbF4YQqlNjI5iZUFSa3USDXEYJWkr8gpy6D7VXEVV8vT84ld+G0hWVR
f841MSdx3Khi9EmBkWXriRASW8v2A4x8cNOUbXHdMknv5y42QjJZd+Hpzjwi
aV3VJHRSOZuuqmS+TBq+1rAgV22pBOaRzbhcyzYZUiJWYjQxyoyNJVjgcGIk
CMyN8di8VlmDqRWipAkXbl0k4lq4atVF7XStDnPk6zBvgFgQV0se68+gISfj
ql6gyQjsvhGti/MjsA+uRdkXn5hLuTYdslutReLNvUOIg6U6bNrnBrcSdM6H
xMgauNm+cgHurTkWPfpvkOeTuzIhzrAHMBf9Gjo2FSQe0rNNJAy6dgUr1vKf
vKPRKeaJz+d/0KA+V23esUP5xdiYo2CpftBunYOHjN3NwtEprBs0vI9DoQt6
gPMWOMq24CSh0lVw4QAVRo6+KaD6CTpHDlR9VfpUWcXbUJwBMa3yLNCjng+m
JgHnfO7A6jJWPt3GaOkrHXxNRwzszd4KpSmFEnRtKaT3ClUFr803csldfIDv
8JueVImJQsNz8wqrlxlgPwxZe61RbGAvih/XFWMjdgUPqwUWeWUXxnkfancm
wAFumYWPo+htjKaWlhZL+oDLlAGc2OZUZu7XOei2pNzDlrp4r0D04TZszLkV
d7KR4nuShTlaM22kekSwnPuPyU+/Kj/mT7KyvDGr8Kv7ZEwwFJBT6Xop8zps
SiOpBtYph1uOTYpcy6CQnuyx3mxvY3mKrdXNurnaMxRxXyJVEu4burdkKB8e
tub759sLTFTYenQA8+L1Ly/py6VXoR8QAhHdHwIRPzAEInpICIQ3vZN5xTgc
WGmkUGYn/lElLQ2i4aDKILdHxEONBFkLkluH0caAuPWmX8TbHEQGEMKwsF+E
6xlGgyhikfILtiruoNATReGquRdp9yvTUEOm6Ml3+gtffMc9A4wwQOkwCFD6
pCAajAuiWBm2uGCPWBkw+xDvkSnPx79Q+HPdCUimGF5uryZeUkOA/MzJjkUH
ilq5RMaL1QT7eqMGXordwLr9KPAhJ2ZG3Np4Eh5CcMnGD2/qdSRWiADSom+h
Irl2EJwtyUWdOAnfKEkRhu/zTm2/z24DyrlMc1ABWCmjJANowIgv82bBNcro
TgQfFduxwEtoPzNLDXmluHNq1nTamSKI3ci6M9JpPJmwwnzPSVhXh+6LEO0O
eEdc6C88fj80LhADKn98bOGPPRI9gWN3kdbZg6O3EobIsUcEjGPGZF7ge+Yc
PHvz6l/OXh7zxHBRXRUf+PvcMdrUeXGw7ggbIwn9BnwiBFU2xRdvDiZ+YNDw
/RHCYmz2Eb51piHDdVXIs/YK5Gfgn2VLn0hdkoTiIgEtCC9WdS5kNYqCFhQj
u/spSGLmRB+7OF2eGz0bc4cwKjyGidJDCRvFroVOfzeIIz97anRwTCkQjMB/
wxjpPQHs72Wiuz8Wm63l6uot7foF4mmR5gsOLjQ2PIJXEG0fqV4uEO4OJu4/
sUzNuqmVPXVzcE40MN2hwIGzcRpd5miP4YRbzv7jtQ+DeQ9B7CpnaNyarpq2
WlCZjhkaOXgS15pVNIyydjoauPNGaWjedWd8Ht3pSPK8CtkgDAVrBBXa+0KB
Icb7Tx4fxe/enPN3vACv0rXuGfdlF0PmJBCK/MqH1qXqYKrjkSVFalZTHB5v
DO6Zbsu+2xbvCdluBsa3QgHGBhFYG2VnqJQqqDixilyobEuMclc7lx3JbB0P
c239l1TPlegLWm4doy5vqQWHv7HllmXSzN0tgO9dQOlxvJVeXgI0cAqYk+wC
/fBntFXkUxAe+VXX+sm5y6BdpJfukWZrdwcUqYUg4VzKoR9P7F7QLJsJ8cWb
MMj2JZXHOqIP21xFyFbq3DO4q83sLWFkEbQVFThU1hMr3e0D2W0TiIoYp83C
gA/v3ZdK92G6l42T2CYyCK/gxHOZ/pTjeoWqWJVBGjPvUlcJ6bSNan1GDqUx
5TvyIqDbxK9s4BQ3jG6H9uw8QZksq+Uqj2ybDLHczkxU7eLvy+qmFH2S/cU2
pGFrdys4Tx19EGghoq11RfrEsyCpz18pIIV1fRwblh6gokMKWrHxKoA1FkOD
hkfxBWWXMcn3LOjjR2pImKAWpcrlDSqofHu2LbswbWYUAcNVxNm9x/uvFm9v
TzeGXGBGyPyc3B35XILKHH2y7ztBhkwaa2IM+Sl7hBhqfZ8IQ43uEGB+HSNj
m6dTkk3QLmLyj+gvQBQQ1IFEklCTFeZ9ghZH/g3rJhFXOiNR4ZEKHmRuwSeP
jdgRpMC4p240av8EqBvVoJ5tgVSyJWEw9Hc6gSNXlVso1lC+zIHLpPFzo+dO
/kF8wAcg/GypPYD6UqotP1www9bftnzjgM0Yexzvo6/nSx8ybCoYxdsApi+2
7AsOrdkaDE2siUYdaeSk2CBdFScfi8xuXc4vrmO2CAcnoV6RYaVIV+X0qitP
BBXt4nOyhXiDG4XX6eJIOmuunGfZ28IXeV1XdDEE7wQpCMMg2LEPEkxoNLaA
kijRJenvovCbIHEPBG1CYqUNj4WpSLyR88CLm9CGAGKzLfx4i1p8rjGOCCY2
8aD5Se7zMaV8MWNZcqK00pefosNGvLAq4cBIlK80mC2o4ueoPDbIG+dNC2qR
6MQLFhBlTfhFmO5JckwQ1bg12oHpwJbsBBXJ+YrTrRFNEAToq9uGMtQ1msQF
dfiyZextTcydF2ZJUvcSneLHOzuxRIy5K8viOf0eyHD4IfW7xfM43tLYSMmy
dPfzzNEMQUSZFUxZ5+RW8pGY+UG31CWhoaluh6sprr3nVu+ZUhbN/mMTo0sF
huSUFFX1Hg59MC7XhwgBLEsYz+ZPZtn+YbKbzufJQfr4CC89O0rmj2bwbw9w
+WC65XHPV693J0syrITLP6i/0RpAcS5IEz4JpOffnnK1CKyw9NvXT99+HVPE
oIgWfzlsnRJO3QO+E+Xqv8zpXsDHfI9nkxWZ5N6Y2yAIlK44FvQSLOOsk+jF
B9PBamdH/dTn4p7699+d0X93foOqzOyLzwWjcZVVU8H5WXz+798JVOCY1lSl
Bv0Ma4WZvPJgYoyk0iJ1Tp7PE+6YvE13zusFiCo7v8GwFtahzmFyk93p4eHe
o3Gy/zh7khxk+0fJJAOEeTIe7x6ls8fZbDbx02Wvpp2nQ0HfrcHEh/QumIhS
oAG8u6EqPo57g0g/4DLHuztkhPry/LcvzvwVztxPt8pPY6tU4ZT/7enLrxIq
C3CenIopVpiqWJdRVMSJ8dNAH7ov1Z1ZuRd7lMNgKowGJ8hRdsQZr6rl+gtz
8+VGdw7Qk2/QYxxlJcbK6oUbNeiOIkUNNcJ4yFd+zNiYUehsDnZ7VOZQXzYX
5rQ+7hapNZYosiGHYjk2kv4kTOV09vBAxy/yCQrS/pJK3GcMoKadThvUhkge
36FQSzfTzs/RB7zF0kdMs5yo69yTddLwFLaMdbKdyG1W9Y+87CBVwEUjI7ZH
yGCLIr/UMv0ck0zXEaF0iAhj4557l+KnGPzNi1hTfCICE0okHAmQkAqkaxuH
GOWSYmhJNm4pBXWpngVRAhjAW7Wb8Ugl6KGNBR46r5tXccJs/DVdJwzo7VF6
wu/v037C1nerQVi2lOVizNfT2g4YJFnCxLymg0pgBauFPoIqDqY+lZRnYF+f
qdUgdlpUAxMHsbXX7zOp3iD5kVUtZSYs5ZRHnCUa/Ejm6SIvbtUcfZ37KQJy
UjlY1tjKZtlMEyxMEjxwiwJtrgsTUp9cdQELG3rjagusw4jeO9eegRW9OHKl
JOQ2K3z4KKgv0Qc7auaqLHRgSC+faB8OllQqwqmKITfCV05b1AxcfDjuPBQY
07t9b15nWNPTA1/WgWBOD936DezpxVHnhQHa4aOfyh/6s6qia5iiVAeNrZ07
ZjXSyX0Tyzc6aR9xgRsqlu63IIQVw+giw//ifZTD+DnZNvGvd2Xh/qYQ8TjM
R+dwca2rZfWUSAoyJ8FRd9MPgvRtgCnqLSTuymfCDnouoMRYGKaybNSKeD3f
VMUKheY3RLuH8auzF8P46RSk7kU+1VW4RfTOPfZzXz9wuoJDjVLnyRfs99bm
3WAQxXo2POL96TALH4ZOiQ/6iUQcO5Vdr/tzfr/gcs6+mGUSUyMbk+JT2XJv
JGugS4pNs0U3KEsJg7E5f5ct7nAK/NVzmvMfhfPvKYzs4mgak8rn4si9V4ZO
Bpa0c7NYT4Z3ORL2Il2CjzTZkVgTLGqNt+KIJVJA/mU6qfP36SJ+NZ9jdLBs
AatJZp4uXY3tzBHf0pg3yJLpkk4JbOY8fn+D44TVBClaV9VcoC7S1Lxt9QXN
MMZK6zmrhsXDD0ZWmHa+lumtZktY8q5oeMQBGBVsVT0UgSWbBU07Aqwu2jYR
2dFhGNXgI11325lOOFaejDrK8OSokmxDTpnmCjZgiFUuEu3CjjNgs7AwI13C
I+dJqPOAkrlDcyaG5CGGK8jNkEOkH3OMJ0JJaOhuspdUFvVT9vI3HfmxVvsg
7baqw1BhluRqayVLp7TnJQW2wfRQUZjbgaKbMJQsFvpJ8huI4UVutCFUbDXW
rctldYqcus+OR38Ph/rvsWWfmVxHYypCca1ynzffrqlDjYQJNET9JSB16ACP
aCzzx0AWZneO48sUD1WJsf5ez2pAhpApSgpAWCY3zG5wVCJiujxfv7hEnBBz
jDitpVImbB7m9IpvCQT+4raRTHsqdT7HeLJNd+xhGlIgrui6OAOeysms3x4n
ILKpQd444F6anC72OQpt9/ZIOfvMbjyX4Bmoo5uSvCx4XUPaPUM1bpRKWgOL
Fsv5NdCRgR1I5S0dTz24FVlNCzeMNAuFiEmGVIeTV91lVdJSCCSCLbKkXmtE
+ct93K2vQFTyVjyzJnHElJKRcMDIQdexBJyrps71pYo5uubhLuUgR1F46wEx
R717dpJO0ZwlxkbsWIgyT1hfZzV1NYx6hum0iYNijQug1f5zl87H8WBnb15H
PDJfw3QDSi8lxwOxArFpZcuBdW1xMuq0oMqLYtBTdyZ5/vmuZc131Xuqyci/
uVvDfUm4COFjK8kqa+7gGfscyAR+66rVIO8nNAFJ7ooLvpq0uZpuJvUpbY0E
hIhOoJh7cLc0ti6a0BRXk6Qjp1E8ROTPIeDExes9kCbH8P8n8Mcz1HjHThq2
IpCTtiKSnzRDixgjYNjUZ+SLXWEYsflJ1mLDV5B0rehC5uAyY6ExHiiV+pl5
2dGDlm1sEvkCe8KKSttBhSOgvBRY60pJT7D2BpaKlSheOitBMAfynEv45eqd
AoKvGo5Ao/pJkfQe//lP//uCsf41lr7d+/Of/o+TmIQWKKNzlCLI/CwKPb8E
QsYlBFcAT3ILS+GSKgaITN+Hl2jd9hWFjRZZ5gRaZ6kBsnlqcz6xTJnh8mHa
s68J1bjZNKIu0Xwil9AZyOU+8Wc7nweVpVIKoZDbfQbdy2+ivuYcJz/opjip
3qwHhwN4SW6Lt63cNrhThiQjmNG2tbsjKRsB07nE8lVcnjVtvUHv3cuL1xcn
MZVmW9Nde3QZgprPT3S1iaQICCkvVoFsMsA2Y//jWZIF0M66o84dOiE0pAc6
W1yHTyabayaZfU07O/pLJiU2PK04H5uS8/Yqgs+knQm6eEqBv97OZ+I3Is0e
T2czf42Hsh61+61TCIqSwS7yTAvumLLMygckLo1zp5j4rVdp/hq7euoiUVww
t6o/ZiGcHOkKRDwecFVisTeahmi6eXwc/85G31DdzmHsY4GO4wkMFH8Xk3VH
zDuSbUW7SAdEiokAJGwkDwXokNmcriY5VW/FfcuLdHn/KP6vbkVrvTzDRv9k
ZtI6sq8HiEVJbmzYkom6yfwtBKbg26Z62i70wAUhmiWPPGr1XWzQTSTpafMR
k/DCLBEKblfjisu73fbJxVSIibLuMr4QTBgLxXxpMVk8nia1upPyP2DXZdl2
kzl9tfi2irwlgG9+NOqsd39yH47tdK/QGsWv9ZLeSNu7EnOzHEsWVnhghlpr
wd1fOzRlHgDTtEi5lokOjPB90Gej4UZLfN8nmnCi8wpKGVNxc/NbJmofuT7p
GSaRuJ7E1k+L5KCCnIomxRTN4pKVKfyayrFtbP/ruAFRwcwpMPr7A09dySTv
8jToOnzI+BKt+fCxOyZ3VaQmN4RM2sxUYLnBt+E8Cq6OBq7VzqGuqnYYQNCT
sb2jY79FGnfuH3w3iPxeUftHx1ziTprS398NomAHqeHjYwWHttWf3w2icHep
/ZNjT0vkA/cbC0PDRlH96V1TINnuGb10Bn7xEYzH6kBwASn41Jn1BU700Fn1
EV70xJn0A7yiVwC27+NfdBC5998v+o5Az7+Pa489VN0cnb9gyR6N8WMDDXXV
jJ/8ZV6FWs65D9Wl36zsdHByvShxQGvXSnLhTRNiKrY3G1zlwDPq6RUAhQyk
HvNM3RWOJ6XMXnWJemKnEV+20gCX6fBxoFp8usju7lbqiFShTIxKg8aoKxb9
7D6X7lHVYAS2tIZg0vjpT4EQrTUKI2XNSdfhuL4EQU6LPHjYNQ8Dngb4RwHw
QoKh4z22HhmlF9v95Vg5SJGzgo1ApPY2migrwQ0qSsjAkHmrtqW9Uyya6PMB
UdI5sfFTskAN/nSsne7qDpeN58jX2n2rEQZH+5rid5YUGgZV0oXDusDGKGjL
yhVSSpn8WM2ifCDwDarRdB+IRhvmhdn+jkYy3uvXSNxHxko8RkPhl74UD2+Y
C+j0Sn5Vh6kUJpzba7O2fql6ymg0xjNXaJHvGScXABkMKAD9Os255K0BZ6Tg
5E+nqarqfTUgKwnmoOpGJDKtyqncDYR1QzDz5F/8ZBDJbJlIhxRk9HYljfvc
ZFG3+FjWK0Ki7DVFaztVzQ6xxbmr7Do5S1aZnm6R2lY9AUGTh4vV5ERWRpYb
kvXIZF0TrnNoi3M0cfGJmdTrsilXnQwoDWBTvOE7ttomK+ZqeQ+yhSIXCkXB
ya7OopumvVZTs5mQZUu8faLSj1v1gT0EbMGuDQjoCUb18NW4tzyuu8FKjH04
gnYo9gpmh75aOjbhaFlvjXOzdlUK8RDNkZzgyiSPI28isVZ70klu9KZZLZbq
rPErbbx1UwaUaE0dTq/m6iYorSW8B4UeeeWw0TW7tFxUWiQhw32o6VfInMWW
6u/l9Voa2ohUCtgjS/8JAFJlDgNO8bpyJOBu47xSpYXVw+mT80VKdhn2l/be
P+GwJxC6dGJqmVGuYavESmkyPix9tbf+/Kf/1cdvlt7NM37c6Z9v/lU3Cz2y
LC/gQLZ0kvkgYtnAeDeMDqyWOBsPMX6i+ZNSmsgxMHvi2Nll8Sjebn04hlZD
5UgnMvMgvQespRwQo+brJqzFiWlJsh7l1G3cPbFh2u4ObatHaeX073/4B1cQ
UGszgFL2txyg07OU442WlDv67zOq8Ag9MDk2l4s21fR9Zu4Io2ufXSnc/dGT
wVrJSnKmB3tKczAZHuhrSlBwyma+SkaPNGvqbnB9seAuySj6/jj+rFNVzeGg
Ow+MhH3Z5Nri3nxybfjpOPfrmKr6S6QhiqcSBIjI6EvyGWwkmQKTqFBFzRcZ
Rt3Jd/T46L9DXNnPj7YEJg261lgpekihzAA4v78dqcISSwIOykOXKcVicLCE
h7iOcORqZztRyKeUsiYkZQFd17ZXFgj4uK3v+nH8Ux04N/jPcuLIk/AlXtNJ
76zv4Lzkq52wR46kYAN4vnazKfNQx9598SV7rzgG7S/w6sRLNltH6YyDH1gY
6Nw32Ck7OPr7/XE/5v64bl2Ln6920M9eugVYxF9WL+mvY/b+CS3YP7td+VMs
8389c/r9Zzn7KSq9/PUEgBiH+ysnf/893eLHpVv81CoJ4cDfb/H8f/gWT+aO
g57ieX/34/1/5sf771Q07MGq6SeUE/lbKxzy99y5v6XcuQcFZvUd1m6sVk+j
74JHYk/5TNXVc66HFT8nteMbqnxF+u83Ms8Lpupo29TaWZ0bobrWGYokR1s6
37AqbkcpqmUCck2kr/IOkunVbuVyruhd03X/nl+82jk/O4n3njx6tJuMj8e7
e4euolNY6GnEy/SXVmG6Udl0CsmY4l9U9u7OWXKGNgWqAxWghON86hyug+P4
5YqvKWgyaKARY7OqpUvvNMGhlEZ8fUhQ8MSVIOXCInuj8Wh/GO+NDkaH+B/4
hX+OjkaPBj0z+WWzms/zD84u/lNOSOqhWBuK1hSjQaUSCs0xxcmlxRLISQgi
dONd0MXF5BHROqyNxGNrhpf9lPJZ0Gg1zTEyXTN72L8PghV9yCVrJEbRz+QQ
eyzIeQH9wZN9nFiTLfAGWReZsP/4gCoUcWgAwgPw6ezFN2dvuhjFOK9F5qgm
PueouGhOQZ0txMcdOWzBmUrltG3569cMht9zCdsofuqhz/YnmQz5cor8fcZu
XDMjui2XLIZ6mYUODMiMR/6MJeg3yDt5bsGxz0zJvO6Z53I4956nToFTrp33
I851FP0gR/sHnjZGl0Y/JEkCL3aJ4P2A8cBZfZ3N4NGePAJh90SqIv4Qj+Wh
Srn+zb688RUM4eGBPDSFDOHpoTzVeoZ/GYKs78CDsMPuzI9DDfuxvyrbFEUc
j49cIu348NBcD10LmGmTzY2AaE6NuWLFicRSSHw/IRfMn7CJTryYTmmi6nRH
iSBrWjLiYi/HVNJeCgISxglbIQhqVKm9y418mj5+RaXnEd1UQs0TV0bjpHr6
WszFGgl28uribNSdIl1PbS7Oo/VNg/UN+bpBb+6PQpsu3cY9NSbne0mFD/1W
0PXxYjvNFaZBgeSRXyLm7B3JNZRmQzHEo4cJ81vyuEddTh42DyptwrZrYE8r
vvqVyeKWT1CMb6KHnPv+eo1ru8FdNXKhB/+vOzciPM6iB9DiUfzliuz1trZL
42o9Rq5TzsmkIp94ebKru0QF1h/vjY+AVgVeNqBDlAcu/37QveSVvUb1aobl
Kx31SpAf7WtrTctt4qeEMkjMkF8leNHmI2oRgOqNyNFIxeQqzsP9Q0sOaVGv
5Zy+azJ0bvA+9609ewB2KnAicyPwjPIbbwyldutXet0VWDtLCcm5h56sYu1r
R+a16ZqUZgYi59MGufaj4w2belIp6yE97Qc9BSJRZ/H39XQQNFdxaB0Q9/d0
aHDsh/hdyaV91oD6gyKb61kEp75BvcQkXx0Kit4zgMXSzUgKTbuUskdqWSeT
XdllM4183EsifTqJ6ekuInlmJZw7aSP19LdAEXuEj78GOXwAJdzfE4ReJ4L7
42RvfDf92xs/TlBU+WlIXw+6PZTu/eU074H0zgq291CDQGQ0hG5NDH54F/uu
nZeXP3EWnsIY6frTujh07VQUXwfZPV0cJQdPuN2dFOsQzuT48N5m0OYe9COi
FsOkpquaLwazYmQU9V7op5dOLVcTWOh6gHb/NaUl3l3WRJi2PpREXVvSEpC3
5QjZ9BKrf7d0i2VRNRTCUHJe/4x07FF0kS/yIq1RTTAVKsVwoKGz0GmWNmhQ
05Q10hQnt5GJHmcZHehw3XRGQVLoAi4W6XuUTrFDDKfUEn166RM5nPSmK9PH
5z7vFbNdnzYxLz8tb6NGYR6K7nikgc6glO6XNgfa6op3m9ljoKqpeFmhYQTD
N2Pf+RUGOwO5a/zNcXp1dGQhPNf8NbqLVK9stYM1dFGfIJuLZL2hZvg0JXJ9
RRVzQSnT6G1XpLfO6AqF1bKSaysjrH+MpHiGV6NQqBCF9PAQAC+p0u7Hgpda
RIRjl31JIyF+9ZAuB6Me/IrXWrnCwSt4jXeEp2JqwtZVnV/mJdEQU08+5WSY
9srcMS292FsI5R4ICvyl23jJ3HGT3lK6ffDaL8yVvF8/S2kwebIdm6tbaSZ4
YQV+7i97V3cs7g7CoxN9LvHodSvsPq/Rna1foVCBt7T1z9VdzNnWq6bt1lQJ
v1lfTXczeLz46/Ra75nbACAXjzVfFf6e6OBeW05ewtZIVjTySqY5lHoZjf9Y
Lsvl8s4a6QU7cZ3d+rwCtj3SUVrA4V/V4v6i+lJ99UTjZ3SiW6xfxUYMcjvJ
DrOEpRJfpPBEWhiCFBdbypWTGDEXkjlQ7fkYBmQODn/G11vLTZBavztyNC3F
gi++5GxQA5wyS+C7lKhY3+KiV560aSELNcXe/zle59vml1dodiUIVf5C5w29
dJEuapTwmx4A5jAvSqPCGwliV3KFJ7jApAQm8NBJBD/pmrOgioZmMFt2IlVo
ELbMAzALv8J6YAhbHpRwyo2Xu+JASmH9Z7IlsV6K03AsPdAFrVwh9z8A5vkS
y5S0EvPhmlLiRTqRP+fd68J7kdEwSrlcwucI+RJHIOrgIZraBBkPCTSN+3pI
ukI+8FGHZ2oiCJMoviAonKepG6XsEIMSOjdIBBtPMw/mOJHkDjoBkdGQ9M41
rczF2Uf4SToFjohST29FlWgdF5SWOqkDyFR1g9XohzEVt8lpKlQLhpLiIr5D
nUrxqXtBsHQtGyPACctjh52TThXpQOYgRDF5ckitgZ8ugE/BVPGuxZrqPfPV
jDwVI4WsLw+ZOd6ok3GWwSaxxe6LFgCJ7qHrHRCamTBPZ0ocydDMniq9HaTk
C0LeI5iJdeLJx3LBOMZCytX14DDevyeFuGKKCMYl1Q5RVXgyM3l2S+Vs9IZr
9NLkSrN1DvECCRbevVabmnaZO4OBJOkS965XRSnSJrIUqb9DZQgI0tQ5C4QR
IDcGDHPVwa4420/nO+KsJfB6LRLp45ne9C68ma/FQUUPftV5817ELvjerVev
Lwcpa3br5HO+gm7KKThVAEiy4ubZTST11h1m2PPieK7/qk7LZpEjV2g9ekYe
dUyRfDR7cSanjKFtUNKDP1wuH6o4dTR3hYi0jJzBpKUWgShuBe34nUVpICkK
j4YkKNFWbrP2LkhYAR/tOHBOXNYmH91WCTvem8kqRFpIVT9fH8fOBLNwnUTd
TV/1B5ap+yTTvExaFiBR5EuNCTFKyYUD8kdXQGPM8V1k0SaKLEJ1Xq9fCmym
hIELWVr0ibRd4sTABsjV85TK+X2Ziw+I0uLFHpUEtqjfvnjOJn0blq5Ti7SM
PYfFh7HrkrquBha+B3vl1rkF88WW2ZahxOri8RcLKCwXKVblqVaNc/8Y4Qp/
R/mcdRa6T68qE61OCbQG005bclrOVppUiDqTCELhbbtGkfz2KjdXCbuYEi4x
yZRjVYq3rSX0RRwfrsvwRpni1E04aE5pcq2jzYgXcxksdw010MsPmnTA06Hu
cN3yU4f0t3mIOS9tEAmx2KQHMbJ4M2t0/fFdzdiJ18IY8pRbZM+33xusRyMl
QDMQDCqUcpZoqEgRJ/5oyrDJDmfYApTmll2IT6d4LRjImpck/dOzEy6u+7y6
jCL+u2HwqMdp98B4uOLdQ/IenoA0xhmq7sbdtKbcxzVTi1gd9CY3jChK2WYs
nAjPKaASeROfkuxvrnAm35/L9MDYrIWrbkbKC19Geg2bQHfPuvt2Ka8FV1Ki
ONvCCNj/l/kHKvzp3Y6XdSoC2RAtw0VBURRUe7hi+0UOIlpGszsV27BNjYlF
jaC9xkWZ3Bx1kALw8Jv1Kw/I6d8wjOr3eGORPBqKM1hLZ+yaGlErynWnOpQS
jmOufMMR3y1nUt/UL9NeGlMJ3QNJslv5sx8D9gMMOCAMeJMlbOLndIvwsmOE
gd/O1HnbzX6aTGLeqlyrERLQ5HhZkOXipbb+AyMviVtm0xrGwRr2aQ0KKNoy
5NSOpILofVVhkpZegdGbL/xpYCCvsCfgjZmA2R1yob+6OBsyxn+bTeK31fus
ZJzkHjcscS9Y4piWyEObRC7s/0up/WTPKWJVio4ftRicO4vBC2sx2Jb2b85f
YACQzoSituHvWUFHppQESpyflnUoffE3eeSuSE+lfEiRfSB9c1UyP2NTQ8jB
c669qUvTAAASJ1fMZqR7BCOojmLzYo4fArXZBMrdAJR7BpQn376VWqVz1mOr
AjObCCYYWsz2V1GmHMWZki3USUkoQyeMYcE19kTBKDhDsrnnOehDuOTaqXla
uKsvU8AvR0TiGVBMrTL37Vd4vU2c7O7KAWbjCsidQLeRJAfZTY2zH9Ld9upz
e5gE49Y9qRHM7PalSGQur8drbInhE4Gg7YcFkcJJIh0elu1OHPMgtNLx5bd4
yzRaLUpkyQ1Xo+NuKiriz/qKvTbcZ3BRGW2i8hQYx3P+7WjvcLzrzyS8eJGX
+D2GuEwFwGQcWmQ2TIZrIL988RavwL4YGBRdpGicDUq+yW5iqXFk7RSXzVPd
zobQjUSzDz4JQxeT/HJlr+50+UiI+0rBROEWiSmXfaCLRvWAyjbF2zcso7V5
UVAcokTeIDi3QAZpb7e8YDMwFF+LRhS3wbbSkcyAIRZ4GTAXCZyCmP971On2
TE1LURiF2GwLm6enNZW/H2q1x0VFZVHN2EZIxqI/mPhaUjQxlSsMK/eI4iUE
G7FDCkDy3IAeNXQAiBF5du0NqxpkLMUVP4U2n6FKYfCfwaThpdjQ3sA6xSaa
IhvqCiaOlEnT5DaCw83AZXGebMLWgAUqf8ahXyNDDDQeH6kS6Ky5E5bZq6KL
lgNvLfhAGMIDsH0xwE25oDunXTETWkVXlaHroWTCnONNwjsfNyaSbAR1Lh89
knVGvi3RLUICo+jANLQjsFkvk8TH4VKJAbF9i6sQO745yW4rUcsMVeI48FId
rbD9SZJQOWoTIf7Uk4iA+0qN0aPdAcc6rtHWMFIh1F7JbsiOHkJSvYRKKvdI
7ZG+Wkpa1JzLByGk3SGgity0TSmzUMOGEyzfFpeAkVX9vokoLuHRePz440e6
PIqfxxg0sJTs7byxtWvYBEVGUCziMnKXtBmDG6oGUyc/oQmEChJsg4SIV64M
PPOjWsfzFu3kPHlOzGFLZhpPChDANdFeb7zga686pZdcWnlnoX1rGsUv1gqr
52y+MuORnt1kl6wpROGrQOtGRZU4iazPL8+4G7YDWw9Wa1DVnP1dkYLN3d4h
lejZ9oUpKwgS0TNzLd2P3jw433BypACo5r1YjsamQLRcc56+m98SMJyUPnXU
av0jVzGJ7AK0uGWeoVnZii6b9yyRPctL536i61MVR2YZ6r1aw8eUFiInJRY6
BUgMUbNmHh3UkfJpX1IfyDsffZqcKxPoSw+gOFt5lweF6vhbZEq1kIYVc12S
mhxKWXrFdz90sG27AS2/iOhO2AFXaXIVlGJxSVsAEtUvuIC9+lf0AxmTeoz5
llmttYa14ji6ym6yp4Rk7+m9y4mYx7QNq++lZpI0EBdXRxw1lwPQ/tvZj7Bu
FjN03x2txqK6TDkMEp4RO562kcHEWrVvpjAzqo6OcPZ3BsfbquMycJtMmuGF
hJmzI6FcJI5LcqZMq6WpO+EWTmXLYmUP2jx2zVNQBmuMrfbQkSs+kLwqs0br
auSJonW3baO7B63k8INkXjovGwoLby+zGuRL+LO4HYgF2W991HGVhkLA+tYA
LQjR4a6TrV8NhQ11TCJ/6ElZ/gOh7h/6Mtr/QOW83f3qXhcPEmXW6lKZdDng
vTolzgWDB+REITGX9AMECS0LtjBxn15ndKMAHX0jAqAOSRDnE+kopLl3vrvo
6JMXHd4y4fCaanB/ejETqWbyTyevTs/iZ2dfnb+8+FXUlzoe7+x8EW+H4BoO
ot5SAxva+kOoJR+kAdVQWAsai/+xK1SCBHGwt/tYClfIx0ERAPdUGE7ii+kM
7+nQHfDbnqnc/ak762zbGXY/Rcp0nRYiV8uX8fzm9ftLTIOgPiw3s7PmMhJ0
W1yi4ki4KhgAUF57TQs4cqW7s5urHZHgCD2ZX2vFPnoXnXI5djZxMQ0m1bkA
sf3c6zIcvcuwWDRJdxeGpsc3J1/iPIccipNLZZtYb+TDw8vsySELQGbyP7gU
iUUoSvHfPfbtXFa6/Kb8dYNh9MFe7NK/OwhEr8dxmEff2Vlqsx8f80sDTXpx
EHy6YUOp5WF3mB6gUcMjTjI1s11HbGroEls3owq1e+yzhhXd6fkTzGn/dedI
9iar9x+9O9v1HMaeTzpJ8AMhSmcvT4Ek+dsQ1NTgqsrKdrMi6Fwobd6uNC/O
FMq3nwge5U3koqfJQJC1KdFKdtu5AU7DOmIJbdpNsnx/2VAOmORpZnyfnNhw
oq4NR5ULuc/CS5R9lYGo6gm9FRayPnV3o258Tv2+OfvXd+dvzk61Hi1L+3xp
AFkNKB0TMz079FnDADsAhSE0LSslhVn8ZKDcU+gR3SzI6ZvkbChzUI7Zut10
NYVeNBf7ifTRqf3apQVqKHdyTSSlpZvKyejsW/e7iBIhVi+W+mpywTxPKs5K
ttEEspLJRsOvI41io+sRb2o0hdSKaSixZVLJPBC3g0nwFRAsw3pJjKM6KPA3
UvuShHDCwaxv2RZbznYqlg1ZBRmQWIg4jnYIUl+C2XfQVkLIOMIv0xt5NJKX
ivvphNJpDSKliXWr7K0jPcGBkQkOxEarZoWY+NTzIDS85Ww9o03iaRgyvyZS
DjmgAeEXubjm5aqmoAWaiF8po2IZJ/Fs5cSeAr3qLFarSuVEYphKwtfYNWhi
pxjDz8jmT8ZD4z5/i5obG/XQCGlCESXLsJs4ssnMPaTFK1LTrlaXgENX6Ab3
zoa2imyohI+/rMJoYNp8LsCAbFP1S7F/Ci0h97BkE5hCqyDcY5za5RURh+wD
TKmRPWop6Z5c1XfdaCRmgZ5bjQaj6GTT2hAA5NRFbztHd4baIikoGS4eT6O5
ndNHnJmoErmofA1EEtnqGm4OfvVxet5qf0fEK9UmG20wuhmHBuU14e/Ti/Ov
COnk0qJNuz6yCQaRU7rNNXw+wlwyOYl8o7Q0YuP4NnmopB4uIjJHFM/iM6Yg
ZOAJLqV3BT8WGTon8mZB3AyOV7JoLpGVBQdBCBOTPeED4ikjcnbBNvbT1F3f
Hm1TZ2SiHwQWrMZTQbcw1pW6uopLplrz9FASL9nhrrKUqlibxGPshI8BTRHd
w5Xcc4u3NNr18/aSyuZXe4dSxCcM4XRD1U0+Oxo9efJoG8dJEAZ78moAQi6W
2Hz77OIRmaXEa04TOk9OI1f3kOsYtnjhk3yjbajqRCTO4S/o2DgBer1dtCpd
GkkSTDMRELG+Fcd7WOaQAqd6hX1/6ZIT1OizffxsywT97XD3W6RTiTncJ3Nb
J/wtM9Mpub5KqvGIPZqqi7xKLe/3kFUc4GdUe6VvFVitpjP//tHWdg4G+B21
d/OQ67hG0wnHJd0xO5ZozU4cx/dtC38iqnYw1MbiovyJOztagua7Hln5M+Op
n326qz7Su3u5BGlO2SrWx0aCEgcmynVSvjSO95/O/d0OIiv1+xhs5Vli8jCJ
ePuefIQBWgaxIRnr1dIzy6YFOcSus+hylc/I1t13+0YK0lStkYnodUrVJ2Ii
vTBGDIVKdz+Zc4W44GnvBUE940PL5qYFXrCJgUSNhFw7JYODfd1zLI7uHA1Y
fwxnhykRwK/RRs/K25Sv/6jTXK6gWGN/TsKz/CvakJQg9+PFfssD7xzuESoj
noUCi2huyAJGua/4wQtgHnMqFLENP18MjqMIK8Ow3hB6n3y0NBXIx/tLB2yH
H/bcXMLvPXJsy33l7EQ6eHLw5ONH3fsXmOlA02AsUIuvLQvMGpc3wTtIZWXC
7haMlLNao8Gh2OFQaHkzl2hss9I98FhjZpw06XSRYMQaTjqKzuf+Vl+Bvj8Z
uKDhA4x35vYLupHPsi0CCpCy+Jeb6QjwnZCffeepRhDxIlS9IxgjdRBwWnZq
kvgcbLz+SW5RunRc1Ys//+l/aoIk6ReYhDd0n0brn/ZhcsL73n9jrIu3oVse
OpftRf6mFHUOKTLaJEjOIw+7EnN2QbnIvga4+CE7Nac712msz8nEXRji2r2p
gYAEaJkvtLKJ8EVeVrhtKNHdtCjMBbe/smBPdnAVmjlYjAgI9e2GjSSlTvJT
Sbn3P2Vsus73TmMy4+/bZ6frPAqv/47j56ClFd8CuJvjmFHMEb23r1+YwsBB
BkAUJ8mvIvr3fwF80JftjAUBAA==

-->

</rfc>

