<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.22 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-sdf-mapping-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="SDF Mapping">Semantic Definition Format (SDF): Mapping files</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-sdf-mapping-05"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="J." surname="Romann" fullname="Jan Romann">
      <organization>Hochschule Emden/Leer</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>jan.romann@hs-emden-leer.de</email>
      </address>
    </author>
    <date year="2024" month="December" day="06"/>
    <area>Applications</area>
    <workgroup>ASDF</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 52?>

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models
that describe Things, i.e., physical objects that are available
for interaction over a network.
It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
models.  Tools convert this format to database formats and other
serializations as needed.</t>
      <t>An SDF specification often needs to be augmented by additional
information that is specific to its use in a particular ecosystem or
application.
SDF mapping files provide a mechanism to represent this
augmentation.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-asdf-sdf-mapping/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        A Semantic Definition Format for Data and Interactions of Things (asdf) Working Group mailing list (<eref target="mailto:asdf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/asdf/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/asdf/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/sdf-mapping"/>.</t>
    </note>
  </front>
  <middle>
    <?line 72?>

<section anchor="introduction">
      <name>Introduction</name>
      <!-- Just copying the abstract, for now... -->

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models
that describe Things, i.e., physical objects that are available
for interaction over a network.
It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
models.  Tools convert this format to database formats and other
serializations as needed.</t>
      <t>An SDF specification often needs to be augmented by additional
information that is specific to its use in a particular ecosystem or
application.
SDF mapping files provide a mechanism to represent this
augmentation.</t>
      <section anchor="terminology-and-conventions">
        <name>Terminology and Conventions</name>
        <t>The definitions of <xref target="I-D.ietf-asdf-sdf"/> apply.</t>
        <!-- XXX -->

<t>The term "byte" is used in its now-customary sense as a synonym for
"octet".</t>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>An SDF mapping file provides augmentation information for one or more
SDF models.
Its main contents is a map from SDF name references (<xref section="4.3" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>) to a set of qualities.</t>
      <t>When processing the mapping file together with one or more SDF
models, these qualities are added to the SDF model at the
referenced name, as in a merge-patch operation <xref target="RFC7396"/>.
Note that this is somewhat similar to the way <tt>sdfRef</tt> (<xref section="4.4" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>) works, but in a
mapping file the arrows point in the inverse direction (from the
augmenter to the augmented).</t>
      <section anchor="example1">
        <name>Example Model 1 (ecosystem: IPSO/OMA)</name>
        <t>An example for an SDF mapping file is given in <xref target="code-example1"/>.
This mapping file is meant to attach to an SDF specification published
by OneDM, and to add qualities relevant to the IPSO/OMA ecosystem.
<cref anchor="namespace-note"><br/>
Note that this example uses namespaces to identify elements of the
referenced specification(s), but has un-namespaced quality names.
These two kinds of namespaces are unrelated in SDF, and a more
robust example may need to make use of Quality Name Prefixes
as defined in <xref section="2.3.3-3" sectionFormat="of" target="I-D.ietf-asdf-sdf"/> (independent of a potential
feature to add namespace references to definitions that are not
intended to go into the default namespace — these are SDF
definition namespaces and not quality namespaces, which are one
meta-level higher).</cref></t>
        <ul spacing="normal">
          <li>
            <t>Start of a mapping file for certain OneDM playground models:</t>
          </li>
        </ul>
        <figure anchor="code-example1">
          <name>A simple example of an SDF mapping file</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "IPSO ID mapping"
  },
  "namespace": {
    "onedm": "https://onedm.org/models"
  },
  "defaultNamespace": "onedm",
  "map": {
    "#/sdfObject/Digital_Input": {
      "id": 3200
    },
    "#/sdfObject/Digital_Input/sdfProperty/Digital_Input_State": {
      "id": 5500
    },
    "#/sdfObject/Digital_Input/sdfProperty/Digital_Input_Counter": {
      "id": 5501
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="example2">
        <name>Example Model 2 (ecosystem: W3C WoT)</name>
        <t>This example shows a translation of a hypothetical W3C WoT Thing Model
into an SDF model plus a mapping file to catch Thing Model attributes
that don't currently have SDF qualities defined.
<cref anchor="td-note"><br/>
The example probably would be more useful with, say, protocol
bindings.
This is left for a future version of this example, and/or a
future specification that specifically addresses how to map Thing
Models into SDF.
<br/>
(There is also the separate requirement to transform a Thing Description
into the kind of information that can be represented in SDF plus
instance information, such as IP addresses or specific node
names.)
<br/>
Finally, namespaces are all wrong in this example.</cref></t>
        <ul spacing="normal">
          <li>
            <t>The input: WoT Thing Model</t>
          </li>
        </ul>
        <figure anchor="code-wot-input">
          <name>Input: WoT Thing Model</name>
          <sourcecode type="json"><![CDATA[
{
    "@context": ["http://www.w3.org/ns/td"],
    "@type" : "tm:ThingModel",
    "title": "Lamp Thing Model",
    "titles": {
      "en": "Lamp Thing Model",
      "de": "Thing Model für eine Lampe"
    },
    "properties": {
        "status": {
            "description": "Current status of the lamp",
            "descriptions": {
              "en": "Current status of the lamp",
              "de": "Aktueller Status der Lampe"
            },
            "type": "string",
            "readOnly": true
        }
    }
}
]]></sourcecode>
        </figure>
        <ul spacing="normal">
          <li>
            <t>The output: SDF model</t>
          </li>
        </ul>
        <figure anchor="code-wot-output1">
          <name>Output 1: SDF Model</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "Lamp Thing Model"
  },
  "namespaces": {
    "wot": "http://www.w3.org/ns/td"
  },
  "defaultNamespace": "wot",
  "sdfObject": {
    "LampThingModel": {
      "label": "Lamp Thing Model",
      "sdfProperty": {
        "status": {
          "description": "Current status of the lamp",
          "writable": false,
          "type": "string"
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <ul spacing="normal">
          <li>
            <t>The other output: SDF mapping file</t>
          </li>
        </ul>
        <figure anchor="code-wot-output2">
          <name>Output 2: SDF Mapping File</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "Lamp Thing Model: WoT TM mapping"
  },
  "namespace": {
    "wot": "http://www.w3.org/ns/td"
  },
  "defaultNamespace": "wot",
  "map": {
    "#/sdfObject/LampThingModel": {
      "titles": {
        "en": "Lamp Thing Model",
        "de": "Thing Model für eine Lampe"
      }
    },
    "#/sdfObject/LampThingModel/sdfProperty/status": {
      "descriptions": {
        "en": "Current status of the lamp",
        "de": "Aktueller Status der Lampe"
      }
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="syntax">
      <name>Formal Syntax of SDF mapping files</name>
      <t>An SDF mapping file has three optional components that are taken
unchanged from SDF: The info block, the namespace declaration, and the
default namespace.
The mandatory fourth component, the "map", contains the mappings from
an SDF name reference (usually a namespace and a JSON pointer) to a
nested map providing a set of qualities to be merged in at the site
identified in the name reference.</t>
      <t><xref target="mapping-cddl"/> describes the syntax of SDF mapping files using CDDL <xref target="RFC8610"/>.</t>
      <figure anchor="mapping-cddl">
        <name>CDDL definition of SDF mapping file</name>
        <sourcecode type="cddl"><![CDATA[
start = sdf-mapping

sdf-mapping = {
 ; info will be required in most process policies
 ? info: sdfinfo
 ? namespace: named<text>
 ? defaultNamespace: text
 map: { * global-sdf-pointer => additionalqualities}
}

; we can't really be much more specific here:
additionalqualities = named<any>

; --------------------------------- import from SDF-base:

sdfinfo = {
 ? title: text
 ? description: text
 ? version: text
 ? copyright: text
 ? license: text
 ? modified: modified-date-time
 ? features: [
               * (any .feature "feature-name") ; EXTENSION-POINT
             ]
 optional-comment
 EXTENSION-POINT<"info-ext">
}

; Shortcut for a map that gives names to instances of X
; (has keys of type text and values of type X)
named<X> = { * text => X }

; EXTENSION-POINT is only used in framework syntax
EXTENSION-POINT<f> = ( * (quality-name .feature f) => any )
quality-name = text .regexp "([a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*"

; rough CURIE or JSON Pointer syntax:
global-sdf-pointer = text .regexp ".*[:#].*"

optional-comment = (
 ? $comment: text       ; source code comments only, no semantics
)

modified-date-time = text .abnf modified-dt-abnf
modified-dt-abnf = "modified-dt" .det rfc3339z

; RFC 3339 sans time-numoffset, slightly condensed
rfc3339z = '
   date-fullyear   = 4DIGIT
   date-month      = 2DIGIT  ; 01-12
   date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
                             ; month/year
   time-hour       = 2DIGIT  ; 00-23
   time-minute     = 2DIGIT  ; 00-59
   time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap sec
                             ; rules
   time-secfrac    = "." 1*DIGIT
   DIGIT           =  %x30-39 ; 0-9

   partial-time    = time-hour ":" time-minute ":" time-second
                     [time-secfrac]
   full-date       = date-fullyear "-" date-month "-" date-mday

   modified-dt     = full-date ["T" partial-time "Z"]
'
]]></sourcecode>
      </figure>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add the following Media-Type to the "Media Types" registry.</t>
        <table align="left" anchor="new-media-types">
          <name>A media type for SDF mapping files</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">sdf-mapping+json</td>
              <td align="left">application/sdf-mapping+json</td>
              <td align="left">RFC XXXX, <xref target="media-type"/></td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="to-be-removed">RFC Editor: please replace RFC XXXX with this RFC number and remove this note.</cref></t>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>sdf-mapping+json</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (JSON is UTF-8-encoded text)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t><xref target="seccons"/> of RFC XXXX</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="media-type"/> of RFC XXXX</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Tools for data and interaction modeling that describes Things, i.e.,
 physical objects that are available for interaction over a network</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>A JSON Pointer fragment identifier may be used, as defined in
<xref section="6" sectionFormat="of" target="RFC6901"/>.</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>ASDF WG mailing list (asdf@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
      </section>
      <section anchor="registries">
        <name>Registries</name>
        <t>(TBD: After any future additions, check if we need any.)</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Some wider issues are discussed in <xref target="RFC8576"/>.</t>
      <t>(Specifics: TBD.)</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6901">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan"/>
            <author fullname="K. Zyp" initials="K." surname="Zyp"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6901"/>
          <seriesInfo name="DOI" value="10.17487/RFC6901"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (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 or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC7396">
          <front>
            <title>JSON Merge Patch</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This specification defines the JSON merge patch format and processing rules. The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7396"/>
          <seriesInfo name="DOI" value="10.17487/RFC7396"/>
        </reference>
        <reference anchor="I-D.ietf-asdf-sdf">
          <front>
            <title>Semantic Definition Format (SDF) for Data and Interactions of Things</title>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>KTC</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <date day="28" month="February" year="2024"/>
            <abstract>
              <t>   The Semantic Definition Format (SDF) is a format for domain experts
   to use in the creation and maintenance of data and interaction models
   that describe Things, i.e., physical objects that are available for
   interaction over a network.  An SDF specification describes
   definitions of SDF Objects/SDF Things and their associated
   interactions (Events, Actions, Properties), as well as the Data types
   for the information exchanged in those interactions.  Tools convert
   this format to database formats and other serializations as needed.


   // The present revision (-18) adds security considerations, a few
   // editorial cleanups, discusses JSON pointer encodings, and adds
   // sockets to the CDDL for easier future extension.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-18"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
            <front>
              <title>Key words for use in RFCs to Indicate Requirement Levels</title>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="March" year="1997"/>
              <abstract>
                <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
          </reference>
          <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
            <front>
              <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <date month="May" year="2017"/>
              <abstract>
                <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
          </reference>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8576">
          <front>
            <title>Internet of Things (IoT) Security: State of the Art and Challenges</title>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
            <author fullname="S. Kumar" initials="S." surname="Kumar"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>The Internet of Things (IoT) concept refers to the usage of standard Internet protocols to allow for human-to-thing and thing-to-thing communication. The security needs for IoT systems are well recognized, and many standardization steps to provide security have been taken -- for example, the specification of the Constrained Application Protocol (CoAP) secured with Datagram Transport Layer Security (DTLS). However, security challenges still exist, not only because there are some use cases that lack a suitable solution, but also because many IoT devices and systems have been designed and deployed with very limited security capabilities. In this document, we first discuss the various stages in the lifecycle of a thing. Next, we document the security threats to a thing and the challenges that one might face to protect against these threats. Lastly, we discuss the next steps needed to facilitate the deployment of secure IoT systems. This document can be used by implementers and authors of IoT specifications as a reference for details about security considerations while documenting their specific security challenges, threat models, and mitigations.</t>
              <t>This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8576"/>
          <seriesInfo name="DOI" value="10.17487/RFC8576"/>
        </reference>
      </references>
    </references>
    <?line 437?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This draft is based on discussions in the Thing-to-Thing Research
Group (T2TRG) and the SDF working group.  Input for <xref target="example1"/> was provided by <contact fullname="Ari Keränen"/>.</t>
      <!--  LocalWords:  SDF namespace defaultNamespace instantiation OMA
 -->
<!--  LocalWords:  affordances ZigBee LWM OCF sdfObject sdfThing
 -->
<!--  LocalWords:  idempotency Thingness sdfProperty sdfEvent sdfRef
 -->
<!--  LocalWords:  namespaces sdfRequired Optionality sdfAction
 -->
<!--  LocalWords:  sdfProduct dereferenced dereferencing atomicity
 -->
<!--  LocalWords:  interworking
 -->

</section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61a6XYbx5X+X09RaWViUmGDBCnLImwtFBeZHnEJCR0pVpik
0V0A2mx0I13VhGCYPvMQ8wh5jPnnN5knme/eqt4AaJmc8Bxb6Fpu3X2r8n1f
3PXkngizKE5HPVmYof9ECBObRPXkMyHltZoEqYlDeaSGcRqbOEvlSZZPAiM3
ro9ONnvyLJhOsVkO40RpEQwGuQJMzJUzIsrCNJgAYJQHQ+MPaHua+oGOhj79
N7Hr/CQwShshQvw7yvJ5T2oTCV0MJrHWONjMpwByetw/AcKpVqkudE+avFBC
BLkKevJgOk1ibMdiLWZZfjvKs2KKcaAjbtUcQxEgpEblqTL+EeGDvYUZZ3kP
1PrSInoY5NqoVL60qGJGyiwHg96k8Z3KdWx++6eRL3M1waL+j6e8QJtcKdOT
l5k2wyAcy729nUePdngujA3IsRvsQBbhnCN/98ne1/tupEgNEf1K0aFzHpyO
sxTr/vho33+02/V3u0/8x3v7u12ehGjipCfDYJC9MD/HHWDI43lG0lNRbLK8
QdQPQSqvsjY932fhWIfjIlHyeBKpdPu1UnkT+E9B2sl504ux9hWt8ROs6URq
PdbiTqWFImaWvP+UDg2zXB4FJpBBGlm5BCFLT2ZD2R9DK7TcIEXZBECLEX29
iJUZOnpHsRkXA8uG7YY6CZHyGRAYYXN1cvh4f6fbk9MspnPs0JPH3R1sjaLE
fn+zt/+4JycqHyl/GphwLB7w+N7+E4wXeUzfb/cOO+cX/WM/xIDyd3e6O93d
Lub52+3Y2dndIWTDOAboU/+oQzhXSg/djoYiTodLOD75+hsA0iokDRdCgW/Q
HGY1/V0fvz7pSe89Vvrv8HfjCeH7vgwG0D6wToj3fwV5eebfNH7a/f2x+qw5
y1jLQA5r4USQfZxK9WGqcqOlyRhUoZXEqAHEEIbHYEiCtBZ2E6ShIgFGpWTj
WrJyAs1PNIMxY5wSKR3m8UA5cW/JuKM6W9D8uYYpJzIb/KRCOpoWw8xlcAc9
CAaJVUBCsgk+g32CBJg32X+H15waOQu0RVVFEAoWhNlkguVJkI6KYKQYDsji
9Y60SN2pJJvCZA1RQ0MXqbL6ekZUyCQOYk2H5qMgjX+2jNjAoqOzTYZkie2A
+VmWAIMsBXoGoMBnx2WTMZ8GgVZuSDPPMpxnTVGrPA4SB14T+qlSkYo6gqcP
Uva2eqrCeOi8H/Al/0XrSGgS7A2KEVEC+gdzGUQRCz9IHMFOD7PU8hnolfBo
ewycnMwDOQ1yaFCRBLlUYabn8JQTmVlUg9oBW9YTZpNmhJDTPLuLI+ADMwvH
YJue0BG5muZKE6uJORaYxdhBYz2fxDBVuHsY2SnpdlSw1IX47neY/aHQBjye
zuk0EldpFlss3jSbdTod6fvPWmby4IHsw3nFaZZkoznz/pDklNowIvqsCqW5
sGdaLMiG7++Z3nnHHQ97tMBpBzRyIr3B3CiPuAnukRkwJ4EHXIc2MK18LimO
KauTep5m6XxCyAovC40yXsdCQ+ySFLy09M7eXPe9LfuvhBui31fHf3pzenV8
RL+vvz94/br6IdyK6+8v3rw+qn/VOw8vzs6Oz4/sZozK1pDwzg7+jBniindx
2T+9OD947VkLAVkI7QXbBxmm1TM2RsjSWpoozZupXyx+9/LwsvsInNtYLODE
drvd/fv7Tff1pPvNI/qajVVqj8zSZO4+Ic+5AL9VkLMeJglc/jQ2QQKfAfbp
cTZLJWxGgWcP3xN7bnryu0E47T565gaI6tZgybjWIDNudWRls+XkmqE1x1Qs
bY0vsbuN78GfW98l8xuD3z1PYjgkv/vk+TO2iQt4l7tYzYRwTqFpeqXl6ZZh
tWyfrAQJB6wZnitXgkFYFyZOobkcC+DE4FvwxbECJ8ghMgQ+jhINWPIQQkAI
0CTWa2X98qPOHixHWLvZJF2Bvit2rP8o4N1MrHCIeAtZE6LYrUsrbhFhspEi
zyhniPtNZAkBYZFlZYFRVYBt3IjgM+lggllRJskFj5WosI6YClYpdneNZEBm
iIKWU/AAjYn7+444z4yyzpMtgzxoNlEzGtDxJCZ36c6eBXP5d/DhSg3/3mbR
I2JHySKKXyBlUBhGRLTZQN4tz7OZtglNGbNiCjAgPYpzB3WDpUMklhGgQqQK
CZsddoPHH4LJFMBtcOvKjcq/I2m+vL7Yvjg72JSLB8qu696znrkvVp5gjdqB
EyMkOKl1AJT4+hUA8K1P3FreMFFByqExMIZSafq1LsxNi0ES67GKBIIax13r
N2h9FDUUIFeJunMwifSSnDqEdRATSPJ6GoTKTyFNTqGWhnryL3/h4LQk7pIJ
8PNaVns49sLkEEqGcwkUJmw4NpmwuXqtdi3KNvSmFf0YelikfgWyJGpuT+mU
qR1kjoxH3sZpxAc0cCDlL1JwgLOfmPlo2RRYM7dFw4CiZ0nHBDpK2QMRMAlu
mTAC+yd3+DlZ+iWwjz8oF621jZKlpy+1erez19nz92rNlhvAUU1VGrnECilF
Rh4ldtnIEGlaYeMJCbGipOlZKGtqxOQqOYSQXEZj6ADGf5TRZ+ZyumFQJKYB
9H//67+duwicE6H9NfAWJ8EznNAWAU9tIUrFUFSCAadkkz9lAhRLSCLlOB7B
Z5GZPZTXBgmUpbul9mQ/IbJD8rGsynKaBHOqoiizZsfWE+LXX3+VPyHnFAuc
4ZHz9npywed5XLfj0yPtlqdHJXwP0/dbtL5CuN4EbKMJbRobM9W97W0eoOJq
2x5a73bMO28Acdt5GqfVYB9QLXbBufv2UTyiOP2303RamGoJoR/ha293xxbJ
fMinttL4ZU5O2MzbM38DU41aAf311/8G0IdU4qp8HXBbh98Tg8Q9iUYsevJB
y8VJFspT74CiAFlWaWGkAKve0rtf44l3W54Y5ad8m/Ubjnj3Xlg3WsKmXIiC
M5LfVCdlRYCB8XxKdYXhysoBsoWXPUqwoZR48eHTpNDLqoo1IQfExlZy1Uj0
CgN/YAu7LP3KUE0MkzVI48bBnY27tVd2DoNcr4lqn1v+rpwtpcAlbUgOBqj+
KB8ukogyTo7+8E/DIuGsYEvqYL5FC00WZtanDOBzqLws/aWN0Ika2jIXNW/B
Poe7O5ZbTb/O7nKbFloPZRe3YxETXQ0lCVdZqGkoIkAe1pNOLcsYCrNNW98E
vljUHMUbfcpkOcVKtHVdWqHygpbDDf6jiLmVZMMZCZlyOFBh5XHEOfeUKyPn
DC0Iig5E2kq9F0LkA1UXYVWcYPE7INpwYd/YDE4X5PQ04mmDWvCpqh7TzHWK
bLjabBJ5EqfEp63lYEW5/SzPQElZZzgxsP/sc5oDy+ytaC+ZYOUcYacvOFf9
QD7nPfs3uLfZbNaZ7bF/S/W2ibwb5xteUH/Rk/BpZtJjqAzU21pyrq+BSvPU
1gLddBMq/cR69qc037Sh4W//g6qaknrapbyW85pa/xS3DsE45GKK9pgDX6kB
nXNoLVHa5WVHI8E5FUarG1fBVnR9MbyK0oNbU6gkQQJ6bfdE+NkgtPy7X8KH
BdMjQnOKZkuzuQqiC9SJnusFV1Ccc15yzLPM+Kw+pWc+XatL5IitrmWF4QWV
S2yr2cdi8IrYV4NwzVwPWJUxeJ2OfjIE016erGJbDZewaOhyQzmTYMADn9DP
Rkz8Ao37F/XNm+UItgNm2hDOTrUml0S/JNxayB8RtJVdFYQv+FN23f3Ekpy5
rGxJuxHz/jWhO7U6+6JM7N+iAx9Nwj6uCSuO6/Ou68udVyWiNRlYG6VWCrai
YR93Sv8fd/TFjuiL9Gp3Sa92W/deCG82nxMPbI89kdfz1AQfCLfVvujigebZ
+/XNG6oDzThX0NOp7dxSC3uK9DttNscNarVUFCl1VkeI4mVrpufC5jCTgyQL
b7lF0qiCIhUmQe6COlfQKFBXiqUONyMnmA9Mls+ROhW5GdeIWKisg1vcJ0It
o5s9HM0ICZdgtttFcqPQhc2bGojZMvWH64vz8ubGNo9EqjSlKZRS2cYWsWq1
p+S6ktys4aTG9nuQjRslXGke25mSIzVKyDcWi/J6km6JUL2WDU1Ll/6ERAvu
YB0eHb2mdpHd3rEVHN84aS4En8rWpVXjA1PQ8m+t1GYxkqJBlfwxwpMMFbtr
loE7SRzGVIw/5x18w0Q/aKDiZ49/Rt9RVvSMZpadCYIopgSRAiOTD+UoQb6d
8EWtE4B8+qxxgVBxmgxFfCtnirJJZP6IyyRMYj4liZylV2khZbc9sQYKiLYY
Bun8GcHzP/cnUVdlYGSp6j5dpfSYk8w55uJz6S61LXXPZcOd1IMu+68H6DIh
R+1u6iFwmTr29QByAlahXvXLh3ko38QTRfOunaGRgy6lReDuBsiUnbLj4bkf
3O7xNiH743f94/Pr04tz//Li9LzfBnAjKmfg030WlFks7/iOQ5VPSfAzK6Dr
MbgVFmXhQwbE7oOadK53xW0rl++zK32HfRvkgm7V3PpWxGXmABvoXZAUqh5/
tymsDN89I+6DTF4JtXknGYUlHKnM4U5/eUsyzLGd+p/OvsQyUUMCvEH8c60Y
5ljNyOEmKyl4uylaK55aVDq5GqkPU+ltvA/8n2/ofzv+/s3D3uZz+v37m/cH
/o/0g0c9wjnPitFYHr65Oj2mAoc90qUzCItlT6yzlaUDOw/f9x7cdAjmsuyI
JFKY37tvq2JO1t9KDWcLh0gxSLoVlm2onzL4PXuzq8WmEKuKWOERDNJhQ1GN
TwNieQDLvcaYJzsR/Go+DPf29vZ/JnZcnRxK+kCtTS4eR/hpMcmGQzhglIUJ
GQ0kiiAQkblEotwM0F+RGjNqKNmTOd3oSAw/Ojp9ddqv5iaIH2NL/FO5y3PE
hp2u392tF0XBXK5dtPtki//Z53/2duw/XUnegS6Wlm2x/fet5OO3CTlayQSO
IYF1h+34u3vVokmcFijS1yyyDz14kVbEmLWLCG1ay/883qnwlYmCpWLj5xDP
i8S2ZMuTYE2hPcnreLL7sGKzO7f6eyrlf3zY2/EhVeDi7/P9Ml/3QklZi3hR
zQuv57WIrr4tfesxfd/E64bWkBawqlZ4tJXD872mStSfED7j2FBVB6AG+d7r
e20ivB+9G/FVldQ143uZ0HHQbvSA18R3zuxOD84P6LZYI5PI3f384kEcpMG9
eLr6J8SZiuJA9uElRSOEOUCx5vBuExvX/aYkY5glSTbjRJu2+312vral49UQ
tYftoxilEl1J/2J79M2/X2RfTaZJzWi5NH1V5WKtcfHLatRdM/Ql04DVzHf+
SBUVDm68G9heM03Ohp67bCGRmjALKM4gGfuFJZiqmV8P67rlyoM2JlGwW0nR
PInQMEqfetQIJIG+/6vJ/IHyczXJ7lR0szrSY2SO+XFVT05hlJr7ZgklqyWe
9nKSO1c0BMc4oFcpsHgLxk5Rj5MyzB7lz0Fo7gULll9riV6TJ0JcFwPTnFxm
khBXZWJIXcKJQuzRtDCl2whxUdYM6yaPU/v+j5x1Q5FpwSBO6Y3CBkc7oPym
f+I/8RVtIBVFREG0uVb08MnM1+xfLNxTJsgKNlTyB/pOwZGvUwdxsn6vRe6y
vOFrd1st8JYutOA3XwLa9IYusJjttVIQEPswh586ffS1kr2IbrxV0u3HSuwm
P/9e6TNvlYQ4yQO+kJVVXZKv4ctBO/cYrtlEt3cD7olHW+2LOaBaX809djyj
h3FcmlxCLzD+B/v6r+zocrufirnQ5oxDKvpU3mwEM15kXm9f8TM94hjEZuzj
veq53iaxChDoDWfrsSbz/QoFg98nD32A2gFbc1PvtCrDV3qFDkYsO3o4cXFO
qk/tofLhYFovsCp0wO87tw+5JGZK8oyKf1rBr0nFJRWQ2lqIc6EVWWkGP48j
eJTqq6bb3ui/PALlQ8PmPS8vBsq6BgoSjlV4K+Mh1UV8oYplHVBTW81K+ChN
Zl0EsVHkOgOTZrQJRqkL1zaPYh0WWpcXsH5lepDsxrWzHpQhwJkxoNppEIS3
1KA4CG/TbJaoaGTvqMmvWreloqdemnG042sTfsRLvqBKTNy5jL0ro9k8fHhO
2x+CgBDHw7F4RW9C5UZ/t3/1arPsM7BfJgugpfxqtCMld2VZ3RaL+rkAv+Nz
71j4IdtisTjIY/mfKv/tn6lK75lYfo0lX2cwx7f0aKonq3ZD2e1oF72u2EGK
wHZxcXYg+CXXGkDBEDhFtjD6MR69VEq+fnsmLw5PZNXYol/umucjUID+hC+9
w7nlVUp21miA0e/jO+5n8UORj0JqXJ3wShcESocfW1AH9pncx4DYg+kxHXXC
6icJ9Qc3V0w2iekl88fJIo/kJGkXif8DSlAcm2QuAAA=

-->

</rfc>
