<?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.6.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ecrit-lost-planned-changes-08" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title abbrev="LoST Planned Changes">Validation of Locations Around a Planned Change</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ecrit-lost-planned-changes-07"/>
    <author initials="B." surname="Rosen" fullname="Brian Rosen">
      <organization/>
      <address>
        <email>br@brianrosen.net</email>
      </address>
    </author>
    <date year="2023" />
    <area>ART</area>
    <workgroup>ecrit</workgroup>
    <abstract>
      <t>This document defines an extension to the Location to Service Translation (LoST) protocol (RFC5222) that allows  a LoSR server ti notify a client of planned changes to the data.  This extension is only useful with the validation function of LoST.  It is beneficial for LoST validation clients to be aware of planned changes, as records that previously were valid may become invalid at a known future date, and new locations may become valid after the date.  This extension adds an element to the &lt;findService&gt; request: a date that allows the LoST client to request that the server perform validation as of the date specified.  It adds an optional Time-To-Live element to the response, which informs clients of the current expected lifetime of a validation.  It also adds a separate interface to the LoST server that allows a client to poll for planned changes.  Additionally, this document provides a conventional XML schema for LoST, as a backwards compatible alternative to the RelaxNG schema in RFC5222.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Validation of civic locations involves dealing with data that may change over time.  A typical example is when a portion of a county or district that was not part of a municipality is "annexed" to a municipality.  Prior to the change, a Presence Information Data Format Location Object (PIDF-LO) <xref target="RFC4119"/> specifying a civic location in the affected area would have a blank A3 element, or would contain some other value; after the change, a PIDF-LO specifying the same location would contain an A3 element set to the name of the municipality that annexed that part of the county/district.  This kind of annexation has an effective date and time (typically 00:00 on the first or last day of a month), known in advance.  Other kinds of changes may also occur, and these will almost always also have an effective date that is known in advance.</t>
      <t>Records in a LIS must change around these kinds of events.  The old record must be discarded, and a new, validated record must be loaded into the LIS.  It is often difficult for the LIS operator to know that records must be changed around such events.  There are other circumstances where locations that were previously valid become invalid, such as a street renaming or renumbering event.  Using <xref target="RFC5222"/> validation, the only way for a LIS to discover such changes is to periodically revalidate its entire database.  Of course, this does not facilitate timely changes, is not coordinated with the actual change event, and also adds significant load to the LoST server as well as the LIS.  Even if re-validation is contemplated, the server has no mechanism to control, or even suggest the time period for revalidation.</t>
      <t>This extension allows a LoST client to obtain from the LoST server sets of locations which may change.  It makes use of "partial location information" which is a set of location elements and values that, when compared against the client's location records, identify which of the clients records may change as a result of the planned change.  A set of such partial locations is termed a "ChangeSet". ChangeSets have an ID, and a date when the change is effective.  IDs are ordered.  The planned change interface is a REST/JSON interface that allows the client to poll the server using the last ID that it obtained from that server.  The response to the poll is a list of all the newer planned changes the server knows about beyond the ChangeSet whose ID was included in the poll.  The ID for the last ChangeSet in the returned list will be used by the client for the next poll.</t>
      <t>When a LIS receives a new ChangeSet, it may prepare one or more new records so that, at the precise planned event date and time, it may insert the new records into in its active database and delete the old records.  As part of preparing the new records in advance of the change, the LIS may use the "asOf" date component of this extension to perform a LoST validation of the new record as of the effective date.  In its response, the LoST server may include a new "expires" element that expressly states when the location should be re-validated, rather than blindly revalidating every address on a schedule chosen by the client.</t>
      <t>The "asOf" date component of this extension in a &lt;FindService&gt; request allow a LIS to be prepared for and smoothly transition to planned changes.  The polling mechanism allows a LIS to be alerted to planned changes, while the "asOf" date allows the LIS to verify the validity of locations before they become active.</t>
      <t>Unplanned changes will occur, and periodic revalidation can still be used to maintain the data in the LIS.  However, the LoST server should be able to influence the rate of such revalidation.  For this purpose, this extension adds a  "expires" element to the &lt;findServiceResponse&gt; which provides advice from the server to the LIS of when validation is suggested.</t>
      <t>There are quite a few implementations of LoST.  Experience with these implementations indicates that the RelaxNG schema is very difficult to deal with, both because many commonly used development tools don't support it, and development staff is often unfamiliar with it.  Informal alternative schemas have been circulated, which is undesirable as they may not be in conformance with the RelaxNG schema in <xref target="RFC5222"/>.  This document provides an XML schema that replaces the RelaxNG schema.  It can be used by any implementation interchangeably with the RelaxNG schema.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions used in this document</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>"Server" in this document refers to the LoST server and "Client" is the LoST client, even when the server is performing an operation on the client.</t>
    </section>
    <section anchor="planned-change-poll-interface">
      <name>Planned Change Poll Interface</name>
      <t>This document defines a new interface to the LoST server.  The interface has three entry points.  Entry point one, Versions, returns the current version(s) the interface supports.  This allows the interface to evolve over time.  Entry point two, PlannedChangePoll, is a poll.  The poll returns a list of changeSetIds which identify ChangeSet objects.  The third, GetChangeSet, accepts a changeSetId and returns the ChangeSet object which contains the identifier (changeSetId), a date (changeSetEffective) and an array of partial locations.  A partial location is an array of location information element name and value pairs.  The client compares the location elements with its records.  For each of the clients records where all of the location elements provided in the partial location have the same values as those in the partial location, that client record may be affected by the planned change.  The client's records may have other location elements, but those are not considered in the comparison.  So, for example, a partial location may have a Country, A1, A2, A3 and A4 location elements, which means that any address with that Country, A1, A2, A3 and A4 values may be affected by the planned change regardless of street name and number.  As another example, a partial location with Country, A1, A2, A3, A4, RD and POD but not HN means any address number on the specified street.</t>
      <t>The changeSetId is string, which the server maintains as an ordered list of changeSetIds.  The id itself may not show the ordering.  For example, it could be a hashed timestamp, or a hashed sequence number.  Given a changeSetId returned by it in a prior poll, the server can identify which ChangeSets it has that come after, in order, after the one with the proffered changeSetId.  A new client does not know any ids, or a client may lose the id that it had.  The client would poll omitting the changeSetId in the poll query, and in the response, the server returns all the ChangeSets it knows about.  The effective date of a ChangeSet returned by the server need not always be in the future.  Tardy clients may not keep up.  On the other hand, the server is not obligated to keep change sets whose changeSetEffective date has passed for more than some arbitrary time.  A 12 month time period may be appropriate for a server whose service area doesn't have many changes, where a 3 month time period may be needed in a fast changing service area where many changes occur regularly. A tardy client in a fast changing environment may receive a large number of ChangeSets in response to a poll.</t>
      <t>Polls are expected every few minutes.  A new client omits the ID in its first poll, and the server responds with all the changeSetsIds that it knows about.  Thereafter, the client retains the last changeSetId in its most recent poll and uses that in the next poll.  If the response to that poll is no changeSetIds, it means the changeSetId the client has is the latest change the server knows about, and that same changeSetId will be used in subsequent polls until the server returns a new one.</t>
      <t>The version mechanism returns a list of versions of the web service it supports.  This document describes version 1.0. Versions are described as a major version and a minor version, where major and minor versions are integers.  A backwards compatible change within a major version <bcp14>MAY</bcp14> increment only the minor version number.  A non-backwards compatible change <bcp14>MUST</bcp14> increment the major version number.  To achieve backwards compatibility, implementations <bcp14>MUST</bcp14> ignore any object members they do not implement.  Minor version definitions <bcp14>SHALL</bcp14> only add objects, non-required members of existing objects, and non-mandatory-to-use functions and <bcp14>SHALL NOT</bcp14> delete any objects, members of objects or functions.  This means an implementation of a specific major version and minor version is backwards compatible with all minor versions of the major version.  The versions mechanism returns an array of supported versions, one for each major version supported, with the minor version listed being the highest supported minor version.  When versions are written or used as a string, the major version is first and separated from the minor version with a period.  For example major version 3, minor version 2 would be written as "3.2"</t>
    </section>
    <section anchor="ltplannedchangegt-element">
      <name>&lt;plannedChange&gt; element</name>
      <t>This document defines a new element in the &lt;findService&gt; request called "zHxogxRv8SoYre6p1feA7odJF7a0SlwKhPwv".  This element contains an attribute: 'asOf' which contains a date and time in dateTime format with a required timezone.  The server validates the location in the request as of the date and time specified, taking into account planned changes.  This allows a client to verify that it can make changes in the LIS commensurate with changes in the LoST server by validating locations in advance of a change.</t>
    </section>
    <section anchor="expires-in-response">
      <name>"expires" in Response</name>
      <t>This extension adds the 'expires' element to the &lt;findServiceResponse&gt;.  The 'expires' element
contains a date and time after which the client may wish to revalidate the location
at the server.  A server <bcp14>MAY</bcp14> add this attribute to the response if validation is requested.  This element takes the form of the 'expires' attribute pattern of <xref target="RFC5222"/>, which allows
the values "NO-CACHE" or "NO-EXPIRATION" to be returned instead of a dateTime value.  However, for the 'expires'; attribute "NO-CACHE" has no
meaning and <bcp14>MUST NOT</bcp14> be returned.  "NO-EXPIRATION" means the server does
not have a suggested revalidation period.</t>
      <t>Selecting a revalidation interval is a complex balancing of timeliness, server load, stability of the underlying data, and policy of the LoST server.  Too short, and load on the server may overwhelm it.  Too long and invalid data may persist in the client for unacceptable lengths of time.  The polling mechanism provides timely notice to coordinate changes, but even with it, it is often advisable to revalidate data eventually.
In areas that have little change in data, such as fully built out, stable communities already part of a municipality, it may be reasonable to set revalidation periods of 6 months or longer, especially if the URI mechanism is widely deployed at both the server and the clients.  In areas that are quickly growing, 20-30 day revalidation may be more appropriate even though such revalidation would be the majority of the traffic on the LoST server.</t>
      <t>When a planned change is made, typically the expires value for the affected records is lowered, so that revalidation is forced soon after the change is implemented.   It is not advisable to set the expiration precisely at the planned change time if a large number of records will be changed, since that would cause a large spike in traffic at the change time.  Rather, the expiration time should have a random additional time added to it to spread out the load.</t>
    </section>
    <section anchor="schema">
      <name>Replacement XML schema</name>
      <t>This schema is an alternative to The Relax NG schema in <xref target="RFC5222"/>.  Future extensions to LoST are expected to use this schema as the base for the extensions, rather than the Relax NG schema.  Existing extensions described using the Relax NG schema continue to be valid.</t>
      <sourcecode type="XML"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="urn:ietf:params:xml:ns:lost1"
           targetNamespace="urn:ietf:params:xml:ns:lost1"
           elementFormDefault="qualified">

  <xs:element name="findService">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="requestLocation"/>
        <xs:group ref="commonRequestPattern"/>
      </xs:sequence>
      <xs:attribute name="validateLocation" type="xs:boolean"/>
      <xs:attribute name="serviceBoundary">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="reference"/>
            <xs:enumeration value="value"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="recursive" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServices">
    <xs:complexType>
      <xs:group ref="commonRequestPattern"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServicesByLocation">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="requestLocation"/>
        <xs:group ref="commonRequestPattern"/>
      </xs:sequence>
      <xs:attribute name="recursive" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="getServiceBoundary">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attributeGroup ref="serviceBoundaryKey"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="findServiceResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="mapping" maxOccurs="unbounded"/>
        <xs:element ref="locationValidation" minOccurs="0"/>
        <xs:group ref="commonResponsePattern"/>
        <xs:group ref="locationUsed"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServicesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="serviceList"/>
        <xs:group ref="commonResponsePattern"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="listServicesByLocationResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="serviceList"/>
        <xs:group ref="commonResponsePattern"/>
        <xs:group ref="locationUsed"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="getServiceBoundaryResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="serviceBoundary"/>
        <xs:group ref="commonResponsePattern"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:group name="commonRequestPattern">
    <xs:sequence>
      <xs:group ref="service"/>
      <xs:element ref="path" minOccurs="0"/>
      <xs:group ref="extensionPoint"/>
    </xs:sequence>
  </xs:group>

  <xs:group name="commonResponsePattern">
    <xs:sequence>
      <xs:element ref="warnings" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="path"/>
      <xs:group ref="extensionPoint"/>
    </xs:sequence>
  </xs:group>

  <xs:group name="requestLocation">
    <xs:sequence>
      <xs:element ref="location" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="location">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="locationInformation">
          <xs:attribute name="id" type="xs:token" use="required"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="locationInformation">
    <xs:group ref="extensionPoint" maxOccurs="unbounded"/>
    <xs:attribute name="profile" type="xs:NMTOKEN"/>
  </xs:complexType>

  <xs:group name="serviceBoundary">
    <xs:sequence>
      <xs:element ref="serviceBoundary" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="serviceBoundary" type="locationInformation"/>

  <xs:element name="serviceBoundaryReference">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attributeGroup ref="source"/>
      <xs:attributeGroup ref="serviceBoundaryKey"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="serviceBoundaryKey">
    <xs:attribute name="key" type="xs:token" use="required"/>
  </xs:attributeGroup>

  <xs:element name="path">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="via" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="via">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attributeGroup ref="source"/>
    </xs:complexType>
  </xs:element>

  <xs:group name="locationUsed">
    <xs:sequence>
      <xs:element ref="locationUsed" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="locationUsed">
    <xs:complexType>
      <xs:attribute name="id" type="xs:token" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="expires">
    <xs:attribute name="expires" use="required">
      <xs:simpleType>
        <xs:union memberTypes="xs:dateTime">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="NO-CACHE"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="NO-EXPIRATION"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:simpleType name="qnameList">
    <xs:list itemType="xs:QName"/>
  </xs:simpleType>

  <xs:element name="mapping">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="displayName"
             minOccurs="0" maxOccurs="unbounded"/>
        <xs:group ref="service"/>
        <xs:choice minOccurs="0">
          <xs:group ref="serviceBoundary"/>
          <xs:element ref="serviceBoundaryReference"/>
        </xs:choice>
        <xs:element ref="uri"
             minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="serviceNumber" minOccurs="0"/>
        <xs:group ref="extensionPoint"/>
      </xs:sequence>
      <xs:attributeGroup ref="expires"/>
      <xs:attribute name="lastUpdated" type="xs:dateTime"
            use="required"/>
      <xs:attributeGroup ref="source"/>
      <xs:attribute name="sourceId" type="xs:token"
            use="required"/>
      <xs:attributeGroup ref="message"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="displayName">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute ref="xml:lang" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="uri" type="xs:anyURI"/>

  <xs:element name="serviceNumber">
    <xs:simpleType>
      <xs:restriction base="xs:token">
        <xs:pattern value="[0-9*#]+"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="locationValidation">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="valid" minOccurs="0"/>
        <xs:element ref="invalid" minOccurs="0"/>
        <xs:element ref="unchecked" minOccurs="0"/>
        <xs:group ref="extensionPoint"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="valid" type="qnameList"/>

  <xs:element name="invalid" type="qnameList"/>

  <xs:element name="unchecked" type="qnameList"/>

  <xs:complexType name="exceptionContainer">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="badRequest"/>
        <xs:element ref="internalError"/>
        <xs:element ref="serviceSubstitution"/>
        <xs:element ref="defaultMappingReturned"/>
        <xs:element ref="forbidden"/>
        <xs:element ref="notFound"/>
        <xs:element ref="loop"/>
        <xs:element ref="serviceNotImplemented"/>
        <xs:element ref="serverTimeout"/>
        <xs:element ref="serverError"/>
        <xs:element ref="locationInvalid"/>
        <xs:element ref="locationProfileUnrecognized"/>
      </xs:choice>
      <xs:group ref="extensionPoint"/>
    </xs:sequence>
    <xs:attributeGroup ref="source"/>
  </xs:complexType>

  <xs:element name="errors" type="exceptionContainer"/>

  <xs:element name="warnings" type="exceptionContainer"/>

  <xs:complexType name="basicException">
    <xs:annotation>
      <xs:documentation>
        Exception pattern.
      </xs:documentation>
    </xs:annotation>
    <xs:group ref="extensionPoint"/>
    <xs:attributeGroup ref="message"/>
  </xs:complexType>

  <xs:element name="badRequest" type="basicException"/>

  <xs:element name="internalError" type="basicException"/>

  <xs:element name="serviceSubstitution" type="basicException"/>

  <xs:element name="defaultMappingReturned" type="basicException"/>

  <xs:element name="forbidden" type="basicException"/>

  <xs:element name="notFound" type="basicException"/>

  <xs:element name="loop" type="basicException"/>

  <xs:element name="serviceNotImplemented" type="basicException"/>

  <xs:element name="serverTimeout" type="basicException"/>

  <xs:element name="serverError" type="basicException"/>

  <xs:element name="SRSinvalid" type="basicException"/>

  <xs:element name="locationInvalid" type="basicException"/>

  <xs:element name="locationValidationUnavailable"
          type="basicException"/>

  <xs:element name="locationProfileUnrecognized">
          type="basicException"/>

  <xs:element name="redirect">
    <xs:complexType>
      <xs:group ref="extensionPoint"/>
      <xs:attribute name="target" type="appUniqueString"
          use="required"/>
      <xs:attributeGroup ref="source"/>
      <xs:attributeGroup ref="message"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="message">
    <xs:attribute name="message" type="xs:token"/>
    <xs:attribute ref="xml:lang"/>
  </xs:attributeGroup>

  <xs:group name="service">
    <xs:sequence>
      <xs:element ref="service" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="service" type="xs:anyURI"/>

  <xs:simpleType name="appUniqueString">
    <xs:restriction base="xs:token">
      <xs:pattern value="([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]+"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:attributeGroup name="source">
    <xs:attribute name="source" type="appUniqueString" use="required"/>
  </xs:attributeGroup>

  <xs:element name="serviceList">
    <xs:simpleType>
      <xs:list itemType="xs:anyURI"/>
    </xs:simpleType>
  </xs:element>

  <xs:group name="notLost">
    <xs:annotation>
      <xs:documentation>
        Any element not in the LoST namespace.
      </xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:any namespace="##other" processContents="skip"/>
      <xs:any namespace="##local" processContents="skip"/>
    </xs:choice>
  </xs:group>

  <xs:group name="anyElement">
    <xs:annotation>
      <xs:documentation>
        A wildcard pattern for including any element
        from any other namespace.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:any processContents="skip"
          minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:attributeGroup name="anyElement">
    <xs:annotation>
      <xs:documentation>
        A wildcard pattern for including any element
        from any other namespace.
      </xs:documentation>
    </xs:annotation>
    <xs:anyAttribute processContents="skip"/>
  </xs:attributeGroup>

  <xs:group name="extensionPoint">
    <xs:annotation>
      <xs:documentation>
        A point where future extensions
        (elements from other namespaces)
        can be added.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="notLost"
           minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

</xs:schema>
]]></sourcecode>
    </section>
    <section anchor="extSchema">
      <name>Extension XML Schema</name>
      <t>This schema provides the extension to the prior section schema for planned changes:</t>
      <sourcecode type="XML"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="urn:ietf:params:xml:ns:lostPlannedChange1"
           targetNamespace="urn:ietf:params:xml:ns:lostPlannedChange1"
           elementFormDefault="qualified">
     <!-- Import base Lost -->
     <xs:import namespace="urn:ietf:params:xml:ns:lost1"/>
<!-- extend the extensionPoint of commonRequestPattern of findService
                                    to include:  -->
      <xs:element ref="asOf" type="xs:dateTime" minOccurs="1"/>

<!-- extend the extensionPoint of commonResponsePattern in
                 findServiceResponse to include: -->
      <xs:element ref="expires" type="xs:dateTime" minOccurs="0" />





</xs:schema>

]]></sourcecode>
    </section>
    <section anchor="plannedchangepoll-interface-description">
      <name>plannedChangePoll Interface Description</name>
      <sourcecode type="json"><![CDATA[
      openapi: 3.0.1
        info:
          title: LoST plannedChange
          version: "1.0"
        servers:
          - url: http://localhost/LoST/v1
        paths:
          /PlannedChangePoll:
            get:
              summary: Get a list of planned changeSetIds
              operationId: getPlannedChangeIds
              responses:
                '200':
                  description: Planned Changes
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/PlannedChangeIdList'
          /GetChangeSet:
            get:
              summary: Get a ChangeSet
              operationId: getChangeSet
              parameters:
                - in: query
                  name: changeSetId
                  schema:
                    type: string
                  description: Id of a ChangeSet
              responses:
                '200':
                  description: return ChangeSet object
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/ChangeSet'
          /Versions:
            servers:
              - url: https://api.example.com/rum
                description: Override base path for Versions query
            get:
              summary: Retrieves all supported versions
              operationId: RetrieveVersions
              responses:
                '200':
                  description: Versions supported
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/VersionsArray'
        components:
          schemas:
            PlannedChangeIdList:
              type: array
              items:
                type: string
            ChangeSet:
              type: object
              properties:
                changeSetId:
                  type: string
                  description: Id of the ChangeSet
                changeSetEffective:
                  type: string
                  format: datetime
                  description: date and time change will come into
                     effect in dateTime format with a required timezone
                partialLocationList:
                  type: array
                  items:
                    type: object
                    properties:
                      caType:
                        type: string
                        description: CAtype name from IANA registry
                      value:
                        type: string
                        description: value for this caType
            VersionsArray:
              type: object
              required:
                - versions
              properties:
                versions:
                  type: array
                  items:
                    type: object
                    required:
                      - major
                      - minor
                    properties:
                      major:
                        type: integer
                        format: int32
                        description: Version major number
                      minor:
                        type: integer
                        format: int32
                        description: Version minor number

]]></sourcecode>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>As an extension to LoST, this document inherits the security issues raised in <xref target="RFC5222"/>.  The server could be tricked into storing a malicious URI which, when sent the revalidateLocation object could trigger something untoward.  The server <bcp14>MUST NOT</bcp14> accept any data from the client in response to POSTing the revalidateLocation.</t>
      <t>The server is subject to abuse by clients because it is being asked to store something and may need to send data to an uncontrolled URI.  Clients could request many URIs for the same location, for example.  The server <bcp14>MUST</bcp14> have policy that limits use of this mechanism by a given client.  If the policy is exceeded, the server returns the &lt;uriNotStored&gt; warning.  The server <bcp14>MUST</bcp14> validate that the content of the 'uri' attribute sent is syntactically valid and meets the 256 bytes limit.  When sending the &lt;revalidateLocation&gt; object to the URI stored, the server <bcp14>MUST</bcp14> protect itself against common HTTP vulnerabilities.</t>
      <t>The mutual authentication between client and server is <bcp14>RECOMMENDED</bcp14> for both the initial &lt;findServiceRequest&gt; operation that requests storing the URI and the sending of the &lt;revalidateLocation&gt; object.  The server should be well known to the client, and its credential should be learned in a reliable way.  For example, a public safety system operating the LoST server may have a credential traceable to a well known Certificate Authority known to provide credentials for public safety agencies.  Clients may be operated by local ISPs or other service providers that can reasonably obtain a good credential to use for the server side of the LoST server's POST transaction using the URI.  Where the loST server does not recognize the client, its policy <bcp14>MAY</bcp14> limit the use of this feature beyond what it would limit a client it recognizes.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="replacement-xml-schema-registration">
        <name>Replacement XML Schema Registration</name>
        <artwork><![CDATA[
   URI:  urn:ietf:params:xml:schema:lost3
   Registrant Contact:  IETF ECRIT Working Group, Brian Rosen
      (br@brianrosen.net).
   XML:
      BEGIN
      <?xml version="2.0"?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
      "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"&gt;
      <html xmlns="http://www.w3.org/1999/xhtml"&gt;
      <head&gt;
      <meta http-equiv="content-type"
          content="text/html;charset=iso-8859-1"/&gt;
      <title&gt;LoST Namespace</title&gt;
      </head&gt;
      <body&gt;
      <h1&gt;Namespace for LoST</h1&gt;
      <h2&gt;urn:ietf:params:xml:ns:lost3</h2&gt;
      <p&gt;See <a href="http://www.rfc-editor.org/rfc/rfc????.txt"&gt;
      RFC????</a&gt;.</p&gt;
      </body&gt;
      </html&gt;
      END
]]></artwork>
        <t>The XML Schema is found in <xref target="schema"/>.</t>
      </section>
      <section anchor="planned-change-extension-xml-schema-registration">
        <name>Planned Change Extension XML Schema Registration</name>
        <artwork><![CDATA[
   URI:  urn:ietf:params:xml:schema:lostPlannedChange1
   Registrant Contact:  IETF ECRIT Working Group, Brian Rosen
      (br@brianrosen.net).
   XML:

   BEGIN
   <?xml version="2.0"?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
     "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="content-type"
           content="text/html;charset=iso-8859-1"/>
     <title>LoST Planned Change Namespace</title>
   </head>
   <body>
     <h1>Namespace for LoST </h1>
     <h2>urn:ietf:params:xml:ns:lostPlannedChange1</h2>
   <p>See <a href="http://www.rfc-editor.org/rfc/rfc????.txt">
      RFC????</a>.</p>
   </body>
   </html>
   END

]]></artwork>
        <t>The XML Schema is found in <xref target="extSchema"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC4119" target="https://www.rfc-editor.org/info/rfc4119">
        <front>
          <title>A Presence-based GEOPRIV Location Object Format</title>
          <author fullname="J. Peterson" initials="J." surname="Peterson">
            <organization/>
          </author>
          <date month="December" year="2005"/>
          <abstract>
            <t>This document describes an object format for carrying geographical information on the Internet.  This location object extends the Presence Information Data Format (PIDF), which was designed for communicating privacy-sensitive presence information and which has similar properties.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4119"/>
        <seriesInfo name="DOI" value="10.17487/RFC4119"/>
      </reference>
      <reference anchor="RFC5222" target="https://www.rfc-editor.org/info/rfc5222">
        <front>
          <title>LoST: A Location-to-Service Translation Protocol</title>
          <author fullname="T. Hardie" initials="T." surname="Hardie">
            <organization/>
          </author>
          <author fullname="A. Newton" initials="A." surname="Newton">
            <organization/>
          </author>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
            <organization/>
          </author>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
            <organization/>
          </author>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document describes an XML-based protocol for mapping service identifiers and geodetic or civic location information to service contact URIs.  In particular, it can be used to determine the location-appropriate Public Safety Answering Point (PSAP) for emergency services.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5222"/>
        <seriesInfo name="DOI" value="10.17487/RFC5222"/>
      </reference>
      <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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9097XIbx5H/8RQT6CqSEoAgKduxYUk5iqQsJpLIkJQdX5K6
GmAHxJqLXXh3QRJ2+Z7lnuWe7PprZmd2FyBIUYnvWKUSuZjp6enp7x709vv9
TlHqNPpPnWSpGaoyX5hOPM/pt6Lc3d7+anu3M9blUMXpJFOP1P7UjC87xWI0
i4siztJyOYd5R4fnrzs6N3qo9k7PO9cXQ2XGeVx2OlE2TvUMhkS5npT92JST
Pn3UT7Ki7M8TnaYm6o+nOr0wRX/7i06njMsEJnyrkzjSJayhsol6m43p90Lt
5dkijZRWJzwXUMK5HT0a5eZqCCPPzmufFR34E3FKO51HCoAC+N3t3d3+znZ/
9/OOXpTTLB92FGyyGKpXW+o0K2CsUoz6qzzWqXtmZjpOhmqU//sIn+f4eCs1
sNc0y2eA5JVBUKev9z/b2flKfv18d3d32On0+32lR0WZ6zGMP5/GhQICLWYm
LVVkJnFqCgVLmZvSpEhdVWaqnBq3e/z7zORX8dio81ynRcKPn+Cmn6p5npXZ
OEvUE1nyKczWpdJJkl0XCmgG405VARBMrspYpVkZT5bwfJzEiAMQWk5EyYlY
DIBoekspQrlCD/7I0mSpFoWZLBJ1HZdTGn1Vnd1kkY6rQzw7ByBHJU4cmRR2
PI51oiZZzsfmzWOMaP2RUfoauKsFvZ7ShcrNOMujgvc6ByaIs0UBWF2bXFBR
M70EMONsZuCM+RHSRV2m2TXiWC5y2qMBgMBcqblWieM4b7JMnZRIPyaLaZJF
RxGfY2LoaIWGv03Kr+GMIznB316UXwPuPy5MAfKlCVZwXnzyQBY5HQAjw3kY
fi5nOTc5EHHmExAIA/SySKpibsbxJDYRH4BFMZvjYDiD83hm+udZ/y3wbx3x
3BRzIAQQ53oaj6ekC/JZ4c5I1hkv8hxnmRtYq4RDSuKJKQEuDtAeboJCUmSC
B2xjrnNEM06BtBMN/O1YHwhgOdYjjvaoMs8SZqIad8A6e1EU8w6TZQ8A+BIH
4nIVR4ZgZekVPGJS/PXdW1WMpyDojjOJz7Qa6fElcCKgDNwwh72MEuDNBFBO
SfAt0qcm0Tfvv7FQ4tTqgC3WAbM4ihLT6RylZZ5FCxKQzgvvp9MJ1d84Bo7x
WBKYOEuuAPXIwLj0gkUPhZSJhCzLRFAZy/oM+XRPgb6Ox7BHc6Nnc0Ae6HE9
NcAtQMTcrob0WIBqV7D7KAZ1FY+F5a6BDKA0FJxWySNnixSEeA5YwHiA1sUT
uDFRF2kRfgwInOQxwBQqMYI9VOXAYSaFQz8izuJtH+BuXtOflQI8Hv0AvKWe
nBwdvO6/PX6qfv5ZNO0vvwiPL5EeukYyPANcU08mzJtordR1tkgiNdVwcnC4
wDyXau+Z5f4ebp9HAHuUGiAUqAMygJMjNy/M154q8HbDuPnokKiCManwCQGD
JFYLA7s70UMLZOUrIDXLAtNaNJ+cCSFD5zewh2dV1CVoHzo2nMd4TDWrKqIL
sjBpC1SCJLlPhGFAnW5vD7e3VcZ0nMQ5qCEgUKLh/wjYjbkB9jN92hO9ihuL
rjQcLCBwTGRDDEhhWPuCnEqaIBuD/mD1CyMLAywNUq2TGfgJ8N+1XhY8kI+r
gTLRAPdYX7rTORUDgQ/V26MzoCTAFPnQ7E/wmg49g+qgILoB/eGk2MjwTDBI
QNkxKAITMcYaTUbPqjjTGJ5kGsaidhOtdnTmDGEGLJQCwAlYw0VSks6RMaCe
DahFFhncGO/SGjwLnXcS2a0UC9DR/gZy3KVl3HGcg/5Dt29sSPhz4ykWlnJ8
5hlStnqh/ezxMqQWgcmMQbSAW5HbAV/4fTEbmRz/JFQAkw8F/kUCi7oQBLYy
CT3aMjkTcNJEAz4q2DjSmrQYrWgZJybfAOgTZ5FwKGAsB6BiMEuo0Nms65Eu
iAcnKBk5WjIxBYb1GVicGMSK+AjYPllWDkbMI8YZkDxO6XCdnwNu3AKUqXAS
7VP4wdm2Ir5Iwe6ONcg1ckGbXQMiXhtk9sJjjkOApuIJbKrvWfW4IJ1hQHkj
Kj3fCZiSclYzg/jExQyXwsF5lpAuQ/yAhhcX7EHwVoWCRHFHP7TR4p96Xo01
vDWfJBuRCpvk2ayxM9BkJE4Vg7EHUdknFoOZvoSTADcSB3dRk6Ff6ClvZxa6
1gdht6H0oVsFWtAZkIZmju6xkSOjnaOgXADGQgTeyOOigiLiBUcfIQuBg8xL
Wt0qXo+TwsrWkjSALUMxltGhS0I2WLAmbq5vlfna5DPEUnU5fjkzZXdLud8L
pwKPDqz6IaanTVa2CEE5JYl0PihYD4DeyskRPG8g6DlgROHTw7PzwZ/Ojt/7
nlnNR605Yh5HLgpr/MhMHB2Ili6FaWBZYRtdyhzByrqcVlwIMmGUxAW7HrIU
KF7T8Px8JFBvwsRRtkBlucxY2VfkBLJBDIfIoXcTp+NkwbraLSw4wQirm2k7
FQQZmxuII1JyfOFjsl+gnYGrQXkufVJZMGCFS16h0/mO3TDUecBZJr4ixxQj
EbdODymH7Aa6eU4nmeJpgtXNiQ6OJYtM2F6iBBg/jovqrElThZbewQbBMHlp
SetAkumCfaJi1c7skmIlGBHIHllh31ySB144z4TRtiwRQrfm2kmZuFPWEiJq
qB/w764ujiddxh9lGsiQisAFGovtAwVGuhFgyjoVFl7EFLoWKDq88SoQqis6
phyxjpxaF8IgMD9Ft4qmkMvhKTxEq1qguSkqoXX6p5iSbzgynu5HVQ+ewJSj
oBScVfBUfJMnhjZfotnBFdBT0xSBRIsE6YmJipAPYWOo5TcnKDlQGMa+bg9j
WStUlntkLKuygUFGKWYZOCKAeokJjNimNZqh27lIH+6ssmmVFXJL6AQY1kQt
UChgTZpM4wfYDAYoh4reJS/QxQ7s1shMUMpggEsGsBiA6H5I6+qHZN/zaK2b
EphYBU4BcIGvJgCTGehFMqg27WK1C7sFb7JrPOYmB1ZcozEqJWmdgAVMx7x/
Cq+t2QksvcIoi496vsjnmXOP6hkN1cbUrbmNUxEUYg62nlW0HVH+yvkLNrh3
njFiSVIR+j3iuYDhIqYVp/bHRYwHqiYgcjGGtIiVnFmVcjq8wRMgWljnDXRJ
fTzgD45aKU5DayRfKJKxyltH/xRicALbUyNgbWQPjapqptMlitPM5shQS16Z
JJsL5bIEXdD0Mdi+xRzjb1AyPdGm1TjQE5NJFSgs0gl42Umsc95KXJJ+Igcp
CZIRjLN4CyODDhD6/uI4OjcKQgZTxDlxDXugS1Jn6PWO0CFAJ5LA++RryXF4
nr0NOFtyLamfX5FwBsRnLEY7BMveIcqJZ0iRrOHRsXPCwgf7WK7CEjins+9S
PQVDJPHycf35UZUOKn4J8jKtP6xDL4Fs12TMuu8+nJ13e/y/en9Mv58e/uXD
0enhAf5+9mbv7Vv3S0dGnL05/vD2oPqtmrl//O7d4fsDngxPVfCo0323932X
+aZ7fHJ+dPx+7223uS2UFlaYRC1QzJQHKTpwLOM8HjEpXu2f/M9/73wGh/kb
OM1dTqzwH1/u/OEz+ANFk1fjcI3+RK7p6PncAFvGFCvAqc0hoko4RwvaCaJy
lFo4g9/9DSnzj6F6PhrPdz57KQ9ww8FDS7PgIdGs+aQxmYnY8qhlGUfN4HmN
0iG+e98Hf1u6ew87ne4ZqbaWs8jNxORFayyIp7hP5rlLsUCYBO5xFOecBpmF
qps9HUp+pZI4ID8n9S0+FkDC4og6Qdf6yHr3K8sS5NSsS8+Kya6GTEmb5MZg
JA5Kc57FnJI4TsHCfAsEQAHridtcBDnkK/70SfGUHldARVMWVsN4pjxAzlCC
NMx+ppwB8bDpWWIwLZAUPQ4zPL+fYg+LZBWAjK1bfhTZsNYFjFVokFHC0voz
wAU56N5vTOk59Xo8NvOS0tAVSGIEnzJ1kLKkZBCFArx+DJt84sF62rMRYvX0
0Lq4TzmCBJnNc07jNWJSilqbQXkRzGoL1p2XQGlMF5QDrDi3JJGQSGLzInSF
XUAvpq7wAgt0WoxeHZdzags1kQxoQhWrVAV79T2S6XTJW8koEFtjyLhiVo/N
mmzMZgKpiFTln8URb6QHKpI8DlMMhAozcGMj4HgsSkEK1TwnrMB1o0Df4skk
jgty+c6yHrnkUghADmns3i2r1T4mlPNlT+3twL/dHqar8Tz3PmvDRpI8RtuM
IppsG5eIbYana4AKqTeiGpDpQudRQkHPxGYjHctxIpIjUW1VwJpdE34tqMG/
z3rq9ICAnhwfEM2R0m/ey1b9XfKqVvu66ptgxy5sIO/o4ZYYHFvyeerdxgTE
e6jdOYPTqoqsGo5QXEwycb4cmmCOz3E2LGRlyNIiRqaxMQRq76nh3AB4oLM5
pRDd4wIDPvQHHXW/ia8ogeHvySVE4NziksPHOZWA5qRpvS2ij1fLt3kJL5jM
1kSTpjBcd+khRNpNzyvEYFLE+X8g4cA7ueMVwov0GZozEVGXBqYUO7mXmP6j
/coQJGKSSf4hjlwea6qjUI9xXYdMRjaLy9JmO4KjrlJLEL8YZDPkKZdF8pMM
Qh5nfiTrFdLGS3EJNrXiCBVnKgvin4u3SGrgEdJByi0jp+K4Qo6wQdCWTtVa
1ro0Zq4WczLtfAYkZbBemKGWXHo2SuILLSE7zRVBpnQxp+Oahop3gmww10Uh
GYUZB+VaanM6H8VlrsG8u4rnzi5XpYJst9Urc+APYEgEzCUHQZRxKOSqBdUK
kUkwVCOFyKFdlWQgS6OerV4JScuaGEJVbatPyBzBIgzJh85ZBFRxELjlyXIL
i7jeIbSBNOlVnGfpzDKu5BPRd9H5hXG6aRKwURokXbXNS6JPxHljV9fnPBNG
3OBuLkoutPsChZzPlvzowCYNuWLIci9Fvoq5cd1ITINlcccBxZG93NHG6kA2
1gVefhX42/lEiSNNJX2ID9UVkTIpY0VIQUBol0prGVqIRCeBfLILrEuXm06z
QBFzRlVsYKgAPFSRn2OLaWmqumR7BtvSDvPlaOB8qEHCGavVixGraUYRI/0y
Tlq1Ch0eKE6xS+J9e2m3pvsrY1zO9NqMHC/HZcNP9wIKjjYLt8rO1vaWCweI
06qIlCoqM/0DCKcdzgUP4LzqWc8Jzg+SZQw+ZqAYHlyYnJm19SaHUB65kKQq
XBdCPkzx5uzRUuyL+w5W8pwNYIe0v24ZCnkrgAQrWNDBOgdxHE9jg2mcBkCs
W4IBqeeyGPpFivoR1YkEDTODMCXLE2Wkjt1UWOpdsBsK/mIGyFE2bRt8HBvX
9GibmP6N0cha8FhBvwFGoWqwHUnOGIwG9RZhUXvZL7M+JsrsHTGu27lw3tYU
KvQBiLeCPEM77SBYdrMOWT1RRIZQvLFxC2OFp4nX1NpO0OmpGpvZixo+WDHI
bkyLTHlRlIgNkPLKxcfo0ExssBOi7Ib3Kpcn3AKKKxp6Yx2RaXwxRTVTrRRM
AHSpEhWIznUOnoxBX4uVi636k7faZNzYanvK98vVrqjK+IYYMjHFXoY+aQ0u
uODh1F1xt0YVioBa99nWbhcTHZiUnvvxPaWjJUxZn+iwgauYgTVX9xTePYDd
dX96c5Nd3JxefXmWfZ+bL+Y7E7P3hyz60+s/6O2z5PrP05Prq667LCjwXfiO
TFACRSGoMEP1GIsVj+shvq5dzgHk8AFe3VMcc1tiOoHEcT+hYmcuFL1vi0q1
aNs5oFLMCW8QumVdMANnry+Rr6g4qMd066i1klMlavx7e67owqYdQwC8CFBd
8XCFD0qjm7RYUBWDNlkf5OXQRkvlVcX8W3N+ldGGKpQTqwobeFlPLHzzCkQU
Mckey/DHd6iDyBE0pnZWni/HNFU06MUi13Ex5Quh7sqLf5Sd4Hqo3Dog2qAV
Q/1N+UjHcfWbnnjxJKy+CFPItQGPg0u6ukFBAhZahWOqXVZrgPbE4gQO8UoF
Ntxl/uhIBQ6D/+774/7+3v6bwy4qHvzr8K8nR6d7mGntSirbRTJ4n8Novt1W
SQVB8qtmtvLu8PvaQ9BbkO/SdNCMcEY1UjZF7S8LoOt4VR6fUBwDhw7aWUml
uDpWWAwU/dfpnAFlxyVfYgxGUH4T/uYEJZqjxNyAgQJ5G5OhnfDlJVRjYDZk
ebx01MMiEnsK9oCw6gPhBM7DIqOUKbMkHrshtdxulmEKIRcXlO4yZUESGvkS
863giyUzrkvhpCQTAtqb11TUpGsMqMYLp2QFDB7RIuWkKBWlEpNelNPC7k/k
6MPpEd9fj222yhlWV2ySu1w4jLPC1S2uKnrDNA4n1TnHSH67K7dhtbKwFVVP
2mgTdI9igXfPtjpHKYVwEj7QWQO9y8rfY22tq4tzkwVeWhstYrwthK59wftF
XbdAtwutUQIwIdhrv3DrLm0QS+oiSy2mBUX5DfYiIn7BYSo5Tng4KBeGlDrd
oov59JG+FUnxnjCQFD6OzDzJloYu0FO50zs6G9dJfoAvTnhUkYLt+BLgXOTZ
NfkPu9v9Z9t0hTRAWLZFAb4fp9NRldNscTFt1rIrf8B5JR7Pl7nGsq1lW5+/
3f2b+nUoTHJEmItx92BxqmgPSWdbpeLSlO5aC94qw9uUKIGZrXaGihUmjzGh
lqF9qd0mxs+dA0vaRu6MUpLG50y6MmwRkxPnSz/or5dtWVN2ISYtWQGXQZeA
Uu6Xwh7i1N7/kvvLVOi2EIp5fMkpIyG0LOwtCFs4pWssvTq67FpM/RvZOfAT
uIza3eEXsxhFnDqKyewW85wU/6IUE6gjuvNLRWUyUV7B+edH/Muqsq6Y/Krc
j35ZeMH/3JaV1Zrq92v+SolzHajWRwwXZFLgIV9qqtaUS6B0scoyVgUmvAVU
NlGhyw4SeXmrVxF1dSevvgn0Q+J0YavExKZAyf+CHyRh5/kfb2aJ9b1fdCFs
7yqTjjNQqBcvuh/OX/e/7P7xZef5TTEUiDA+LYY3xYvutCznw8Hg+vp66/rZ
VpZfDHa3t3cGAPaMhnY7qvqhaS+6YGGH+IWxIQYQM4AzS4YADr84thOML5H7
yvd6BloMzvwOM8WJwW8ZHJiJXiTli+6PoNDJve2+7MBY3I5fxnrR9fw7GIJg
cIzY4/Pl3LyUJYgSkih/6ZbFp6D8FnOsAr/oimNlv+HQHawcyVdJTnn8CTtT
1fDng5bVEELl3zD61oS5FVG3wXMYOsqyBNwXD2jLfEnyvMK75jpfdkN8C9JX
PhXsJ6Av6csIKOzI3bRimV2atOsPFYqDNrIVbFKySChM5MPmfBKtGU//hWOJ
Rh4eHuqDVtzpsSPAOqqAzlyAYFyZ1eQkYDU2oWfCXivYDSN4Ybfidn7bkF8e
AJdXS8dB/wel4NOdF6iis1YR2ezUnNI+wQsKK0Txm2p8TRz/bJYfiX9L+Hrf
A7aACdEZeHFgKSBC0jfHWNRAFZ+OEG/QtYM1M21UW30nrouJIAtkewNu4X00
2KUx3i71ofBxauGqBxCgB6WusMFbgH9/cnyafVaK4te34386AzS1w8cS5WKl
LvjXMAKvwrttVdbVPtsUdXM7oQ4MeGAOzvAqXbCRXm1slB7QtLUbCum2fkcB
xtc6x4xSUcP6FqXYvvFPu9W6Sb7DJhPnWq7b1iYI1bTKxg6HPN7H78ohbwZa
xOVz2Q21UL0vHwceaZv7EEee38BOLEZyTDXMvAeyN/BXDWSsDc+NJc0bUyNQ
cyvrWWT9ObXsH+/VxInvPL1/d37858P3PKm5hRYGaw8kNmKw+tQH5rMGeN5l
G3UHm4E4dcHLJ/UFs0Ve15efyGesgW3dNMJdzUKXZrmRDIUx2Ddrjo2U4kO4
FlexvlUjP5hHgIv985jiXmY8cIruYQdoXquZvr8NqOGygm731tsfJwi2mria
+129MVw9YNSWVAo+X6Rc7sB0LX5a0GZszathutozMupuORm1KsviSmb1pMzK
VIs99JWJok+OsFeuewis6QM6lFA51IY2c0nrNFs1WxjmR/yPgp2KqeguVlya
2bll6b9gFtTTmz4SreJko/KHUJtRXMwTvSQUwsO4i697exggeE4zrOoFoOus
tFlsdLuDcdqWe2QVQVisIcoijz+aGG2ovadyzcaJkJVW49aE2Tc+EFZaa/PD
eOHyw5y+s+zpWqeeAlqscJnv5d9YH4TGHDX1/McsPDNFoS/ubkRDWfPl43Z5
I8ndKIDB0XQZa03YQtvAOgi2wrtfrNKC0T0JgTJRHY9Olx9Oj27zpIXfPe+j
ma3f1EDgQHsbRczC37b7X/3u0T9+X5OMhi1oUe2bpMOaGcwH8VMR3HoVEIyX
Gxh3mLFIx9jxcZX79nGK5r4OM++B+acyi6v4x2160wnenldPacbe5gZvrMDG
9/k+V8isLRq2zYC1m4M1BzTSkaTXbjl5qmEnh3me5ZuYl7PFqCjjctFWjQmN
PtdN37EfcSoXo9ZOgeh5FEeRWQ84zcrXuP9bSgPZfCNrmZVH1UWKW2eAYw22
KlusJyqPvJ2kVd6AOXGTsSecYPmQ4mWMizT+qRF8hp7H/VKAm5naldmcUG4M
EqKwQtMiDqsErsqJbjC1KXig5uPxoZ3jx1wp8JD2/Xh8am/86tDBdwDsPcUt
n9gtk9h7ry2x2TFs4mVsSHRP/oV6NXKsVou+Rrjb3DYdcTcIK7TG3YBUeuRu
85xmuds00jX3IlRN+9wdRqWP7jP3Pkd8dnpWM5wbUylUdvebXTlKH1J9peME
L7r5Lvy9oLYp1Zf3BQqOMzjP4/Lhk3eyAF9rsgQESfmQxiDpZ+zqe2g/ZBT1
AEFPa0bMAludEbMj6nFbaxUiDGduzRO3lB3uUW54qBSmA7c6BGqkf+rHX2G/
QcTTEu88+Zvu/7TX/w8Ie/7e/8fv/7719PfVkyoMaguCViWW2ksCzGyrj10G
rODyjysI+FcEbgscm7m06lCqY7498PNZDQzN2yxY+04uyV66rDpoZGXwVZfU
3na8t5vS9B/xi3YO7ovuo0f0Ne4u3qcfg3BK5A+8X1zG85r+qE9FlZvcMrXm
xt5Sj4YlDpkY96Yn3miOsG+v+y4K3rDlvn38NQ9HcDeJvrVGX0Gke7cfT/fW
ZFu6XEEqT81vnjfcRCW1Suv/FxoDrL3qe0ereXBTm1Ez2/emDTUdki8rT+pX
xN24J65BDRGmRpTiqRsojdHoQvyD8qPnsVgd5jHig3Eif0oXwF/SPfNO59Dl
NvHW/pm9tQ9UOltzcT+8tl99/8e/O+9ayVIDksKwxfQa/de+uDj8dV59DxpW
3f8e/Bowt12KZy75Tb+vIKjBroX0XQVkEtXv24+BEjF/mm6Ezw5yDAGlA4vC
syOxo043LRfK8Ll3adXfysofao9J7VqHqsK66flx09BmFcMXAUL9DrgHd8cA
jSbCLVdwA4zXIOzqyutxBv5FpPEnEEKRwkdqXu+LVrWIUwf0ZRKKjlhEfigy
u4tsblI9j4fq2db21o7bGjYFG/qRFr/kh1yZYClvjIjbUJG8uQ84pi18aH21
yJOhEkkj12MKPDVA8IOrCgu8IBJMHDTavw2D0wBxGtaOp1jMZjpfDrGJm9cO
I1Qe3AGkNtP15DuKhgg5WLs53H4Xt6hjoNRj0CCPm4+VfM2HTmbYeAlSc/iY
TWIbJIVfukvku5UDPOD2UUo06KpPlfo34Muhevxo4DoLFwNpTTqokQAd9cf+
8fiN8u56Mm7iLcewahzpKFPWWI1/+sDQQ+7d1LJvfm2UxwktY9ZRjV+qxSW9
2w75KKo1d3poLuKvOjfaD/4aucnhGPCQ7SwTwmzRIvjjaZICVAlosi3pRbEF
Cw7yxayBWUCtYwCag+/BNhH1DbkWrrtNk2XWMfKpAR4w1AkeFHCzN8g6zrZz
v20f+9F84bbk0Po1soTFcg8brFRsUY30wcqkcKUWFVVHheWVerjUPsF8QguF
Vwr4CmVnZ7SKHn412uT4bfHmQp4OaqPf3RVN0Htu9XKuads9VuW7tUNq4oDf
970NsbBnhuvhhB2I+X01ZdbOOtwj7y5dVBpwpHmkvSPfxhzVjtsYBH9WMEk1
caXGXX/4/DPWmK5aLT23nAb/BATf3yttXpID1KO993vYoQ7fNtW2QfyhtOND
YuF/9R7fikPbDKYGsn8HgbLH3mb2V2jedcdw1Wp/fCw+BWOs3oTdCnVHWP0p
Nlq6J8sR5NvOWtqxrRxl1QCMe7a7GUt8a9vWUdco7mewCkXc3r8SRepjJShK
0HWGX0nFdhX70rpX2hb9/KiQT1Y2o+909ppvDuUXF4aNx+N0anLbnNGCVXFR
YMOdXMfSOrDeyr9q0+r6a+QxXpHh1k9FmeXcsGamwaTja8Oofwh19pGXLxVG
mtxVTVTcW/2kOR0DB8gXF/hCC9De2IjvAvsWZtiDLUTF9ePhVjGUP6SuLK7P
WNUh0+/ZeHJ8dm5bIDRxkQ6IVcPSYsHIYYerETZrGFX9T+2bHmJ5oynRoLjk
xg5IFOPtgtrLYcNUI59jpoBf2Zjh2S1SeVkXdhMD6sFu92UdJozty0XtQWFA
4fpDBK8WDPo6t5CMmmtIpx9q5ZHE1K5T3r5Vcvs82/gF37egLqi3r3tpjDTC
FBjUIWtM/U1bW9batljAau+z8gypEvF7QfjaRwuKXk8r20KEHUnXXgqA+a2l
iLnwsJZpia9l4U4t8rZWpLsxwvO7n38Be8LWZ7Rt2+4OD8MyBSLbZAxCOXO8
YFvk0CmHG6ct4Lt4ybvgJsz2jWOcA1Jvzs9P1NUiSUHIqS8TaFPhvNmC3imH
LyWGTdnmRiNTXht3BtJYz7Ko95ICOnvXloeaNwKwRlcyYiTekXtRgHSnoY8K
J9J2n1XLViaUHMSttApPt3pJDb3wjt/VaF8HKi84oFZRyPRAV6QA4F9NS4yW
dl/knyUxNcC51st6M2ut5osR8CfIxsSAiiuWBVhTu13ZWP0NTtJ3xlsZX9Vs
bJMd7WO9jzaQmk8ZtUdvkEZN6nYkOWgPFotriJW+MOk4piZ5+15PZdgoI8ot
mimhpY7OTqhlE5cDbKtVWSe3zbF1WnWCWtp384EEZ1kU7IsbzzgFIseDGDe7
fz0uSGnyG5s0582rNjKsqr6jmgY34KmI6jpruwsXwVHjMYsWwb50JJHcnczT
RROjqVAi7267lm6B3ICIp7imgrG3EgoUeaYNcxrrtL2O0Ok8eqTqnYOkBnHK
/i231yOLDTYbzDtsf6hUW2Zb4lbMbj/DkRZCip3vSU/BRHx1ujrcPz06V99l
OXVTpDJUr/bacfx50njp+FOq+gCW1pV5dfjN0XubGw6LFrtb21ijkM9+c3C8
f/79yaGaljDo5MOrt0f7qtsfDL57tj8YHJwfqL++OYfdv8LLMNiidzA4fG+T
sC01jfPTwQ2C6tPtGf/3ne2tqIy6qBPs4rSmlDqaoHa++uorBhBOMjry/wa7
qilR00dX9wq/m002oo/Om1/QkOcvuiW4RwOE+zVYt7ww5Yu4yPpffvn5V/2d
7sCHTelpfEBS4CoqzwfuA1dtq6M1yqJlgPYO/uVAuFdKw8ydYNwu/rWmQvIM
Zuz6M+b4x5kx6jnQgZL/Hi3zybhvohi0ONEU/sR/f4SfrfKm9AkLnh4+fj7Q
1KXy+WAe7K++HyKg9wDMjpUGsl+eyFB3s0UqHqU03vpli6Ss9hKa1rLfR4lc
WOD69PLX8aVvpeh9lNzdR+x41Y0FToYDT9tC3sZitqmcWcAkSi9JwGrMUJc3
RmrgsCIZs2CmOy+bwoWjd9yI3ZcbF0JRxniN+ct7itbLhly9RKGSTTjUWZDo
VxShzWSoKoP/Iq+Sx/7Unf8Fv1zU88mDAAA=

-->

</rfc>
