cdocutils.nodes
document
q)q}q(U nametypesq}q(X+ (proposal) member node service registrationqNX overviewqNX! scenario mnsr-s01, spatial subsetqNX use case mnsr-uc02q NX use case mnsr-uc01q
NX definitionsqNuUsubstitution_defsq}q
Uparse_messagesq]qUcurrent_sourceqNU
decorationqNUautofootnote_startqKUnameidsq}q(hU)proposal-member-node-service-registrationqhUoverviewqhU scenario-mnsr-s01-spatial-subsetqh Uuse-case-mnsr-uc02qh
Uuse-case-mnsr-uc01qhUdefinitionsquUchildrenq]qcdocutils.nodes
section
q)q}q(U rawsourceq U Uparentq!hUsourceq"Xz /var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/MemberNodeServicesRegistration.txtq#Utagnameq$Usectionq%U
attributesq&}q'(Udupnamesq(]Uclassesq)]Ubackrefsq*]Uidsq+]q,haUnamesq-]q.hauUlineq/KUdocumentq0hh]q1(cdocutils.nodes
title
q2)q3}q4(h X+ (Proposal) Member Node Service Registrationq5h!hh"h#h$Utitleq6h&}q7(h(]h)]h*]h+]h-]uh/Kh0hh]q8cdocutils.nodes
Text
q9X+ (Proposal) Member Node Service Registrationq:q;}q<(h h5h!h3ubaubcdocutils.nodes
field_list
q=)q>}q?(h U h!hh"h#h$U
field_listq@h&}qA(h(]h)]h*]h+]h-]uh/Kh0hh]qBcdocutils.nodes
field
qC)qD}qE(h U h!h>h"h#h$UfieldqFh&}qG(h(]h)]h*]h+]h-]uh/Kh0hh]qH(cdocutils.nodes
field_name
qI)qJ}qK(h X StatusqLh!hDh"h#h$U
field_nameqMh&}qN(h(]h)]h*]h+]h-]uh/K h]qOh9X StatusqPqQ}qR(h hLh!hJubaubcdocutils.nodes
field_body
qS)qT}qU(h X DRAFT for comment
h&}qV(h(]h)]h*]h+]h-]uh!hDh]qWcdocutils.nodes
paragraph
qX)qY}qZ(h X DRAFT for commentq[h!hTh"h#h$U paragraphq\h&}q](h(]h)]h*]h+]h-]uh/Kh]q^h9X DRAFT for commentq_q`}qa(h h[h!hYubaubah$U
field_bodyqbubeubaubh)qc}qd(h U h!hh"h#h$h%h&}qe(h(]h)]h*]h+]qfhah-]qghauh/Kh0hh]qh(h2)qi}qj(h X Definitionsqkh!hch"h#h$h6h&}ql(h(]h)]h*]h+]h-]uh/Kh0hh]qmh9X Definitionsqnqo}qp(h hkh!hiubaubh=)qq}qr(h U h!hch"h#h$h@h&}qs(h(]h)]h*]h+]h-]uh/K h0hh]qt(hC)qu}qv(h U h!hqh"h#h$hFh&}qw(h(]h)]h*]h+]h-]uh/K h0hh]qx(hI)qy}qz(h X Serviceq{h!huh"h#h$hMh&}q|(h(]h)]h*]h+]h-]uh/K h]q}h9X Serviceq~q}q(h h{h!hyubaubhS)q}q(h X A service in the context of this document is functionality accessible over the
internet using a standard protocol that performs some operation on data that
ideally is accessible through the DataONE application programing interfaces.
h&}q(h(]h)]h*]h+]h-]uh!huh]qhX)q}q(h X A service in the context of this document is functionality accessible over the
internet using a standard protocol that performs some operation on data that
ideally is accessible through the DataONE application programing interfaces.qh!hh"h#h$h\h&}q(h(]h)]h*]h+]h-]uh/Kh]qh9X A service in the context of this document is functionality accessible over the
internet using a standard protocol that performs some operation on data that
ideally is accessible through the DataONE application programing interfaces.qq}q(h hh!hubaubah$hbubeubhC)q}q(h U h!hqh"h#h$hFh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]q(hI)q}q(h X Service Endpointqh!hh"h#h$hMh&}q(h(]h)]h*]h+]h-]uh/K h]qh9X Service Endpointqq}q(h hh!hubaubhS)q}q(h X^ The service endpoint is the internet address at which the service can be
accessed by clients.
h&}q(h(]h)]h*]h+]h-]uh!hh]qhX)q}q(h X] The service endpoint is the internet address at which the service can be
accessed by clients.qh!hh"h#h$h\h&}q(h(]h)]h*]h+]h-]uh/Kh]qh9X] The service endpoint is the internet address at which the service can be
accessed by clients.qq}q(h hh!hubaubah$hbubeubhC)q}q(h U h!hqh"h#h$hFh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]q(hI)q}q(h X Service Interfaceqh!hh"h#h$hMh&}q(h(]h)]h*]h+]h-]uh/K h]qh9X Service Interfaceqq}q(h hh!hubaubhS)q}q(h X~ The mechanism through which clients interact with a service in a manner
compliant with the advertised service specifications.
h&}q(h(]h)]h*]h+]h-]uh!hh]qhX)q}q(h X} The mechanism through which clients interact with a service in a manner
compliant with the advertised service specifications.qh!hh"h#h$h\h&}q(h(]h)]h*]h+]h-]uh/Kh]qh9X} The mechanism through which clients interact with a service in a manner
compliant with the advertised service specifications.qq}q(h hh!hubaubah$hbubeubhC)q}q(h U h!hqh"h#h$hFh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]q(hI)q}q(h X Service Specificationqh!hh"h#h$hMh&}q(h(]h)]h*]h+]h-]uh/K h]qh9X Service Specificationqƅq}q(h hh!hubaubhS)q}q(h XE Description of the specific mechanisms that a client may utilize for
programmatic interaction with a service. The service specification should
include the protocol being used to access the service as well as the structure
of messages, protocol specific paths or endpoints, service behavior, and error
condition notification.
h&}q(h(]h)]h*]h+]h-]uh!hh]qhX)q}q(h XD Description of the specific mechanisms that a client may utilize for
programmatic interaction with a service. The service specification should
include the protocol being used to access the service as well as the structure
of messages, protocol specific paths or endpoints, service behavior, and error
condition notification.qh!hh"h#h$h\h&}q(h(]h)]h*]h+]h-]uh/Kh]qh9XD Description of the specific mechanisms that a client may utilize for
programmatic interaction with a service. The service specification should
include the protocol being used to access the service as well as the structure
of messages, protocol specific paths or endpoints, service behavior, and error
condition notification.q҅q}q(h hh!hubaubah$hbubeubhC)q}q(h U h!hqh"h#h$hFh&}q(h(]h)]h*]h+]h-]uh/K!h0hh]q(hI)q}q(h X Clientqh!hh"h#h$hMh&}q(h(]h)]h*]h+]h-]uh/K h]qh9X Clientqޅq}q(h hh!hubaubhS)q}q(h Xt A client in the context of this document is any application that accesses a
service through the service interface.
h&}q(h(]h)]h*]h+]h-]uh!hh]qhX)q}q(h Xr A client in the context of this document is any application that accesses a
service through the service interface.qh!hh"h#h$h\h&}q(h(]h)]h*]h+]h-]uh/K#h]qh9Xr A client in the context of this document is any application that accesses a
service through the service interface.qꅁq}q(h hh!hubaubah$hbubeubeubeubh)q}q(h U h!hh"h#h$h%h&}q(h(]h)]h*]h+]qhah-]qhauh/K(h0hh]q(h2)q}q(h X Overviewqh!hh"h#h$h6h&}q(h(]h)]h*]h+]h-]uh/K(h0hh]qh9X Overviewqq}q(h hh!hubaubhX)q}q(h XE Service Registration (SR) is a process whereby services offered by Member Nodes
and other reliable resources can be registered with DataONE. Services so
registered may be discovered through DataONE search mechanisms and utilized by
DataONE Investigator Tools and other clients to perform actions on or provide
access to data.qh!hh"h#h$h\h&}q(h(]h)]h*]h+]h-]uh/K*h0hh]qh9XE Service Registration (SR) is a process whereby services offered by Member Nodes
and other reliable resources can be registered with DataONE. Services so
registered may be discovered through DataONE search mechanisms and utilized by
DataONE Investigator Tools and other clients to perform actions on or provide
access to data.r r }r (h hh!hubaubhX)r }r (h XB A general goal of Service Registration (SR) is to assist clients in discovery of
services exposed by Member Nodes that may be applicable to a particular type of
object. There are several possible mechanisms for recording and exposing this information. One approach is through the Member Node
getCapabilities method, with the node description response document modified to
include additional basic information about the service(s) provided by the Member
Node and the format types each supports. An alternative approach is to add a new
MN API method that lists services available for different formats. Yet another
approach is to describe services using a type of metadata document, and use the
existing infrastructure to synchronize and index the service descriptions so
that clients may discover and utilize the capabilities on offer.r h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/K0h0hh]r h9XB A general goal of Service Registration (SR) is to assist clients in discovery of
services exposed by Member Nodes that may be applicable to a particular type of
object. There are several possible mechanisms for recording and exposing this information. One approach is through the Member Node
getCapabilities method, with the node description response document modified to
include additional basic information about the service(s) provided by the Member
Node and the format types each supports. An alternative approach is to add a new
MN API method that lists services available for different formats. Yet another
approach is to describe services using a type of metadata document, and use the
existing infrastructure to synchronize and index the service descriptions so
that clients may discover and utilize the capabilities on offer.r r }r
(h j h!j ubaubhX)r }r (h X The third approach, that os using Service Registration Documents (SRD) to
describe services is the chosen approach to registering and advertising
services being offered.r
h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/K;h0hh]r h9X The third approach, that os using Service Registration Documents (SRD) to
describe services is the chosen approach to registering and advertising
services being offered.r r }r (h j
h!j ubaubhX)r }r (h X ## Problem being addressedr h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/K?h0hh]r h9X ## Problem being addressedr r }r (h j h!j ubaubhX)r }r (h Xp The fundamental issue being addressed is the discovery of services offered by
Member Nodes. There is currently no consistent, convenient, universally
available mechanism to discover services that are offered by data repositories
to assist users with access to data. Services are available for data
subsetting and slicing, merging, analysis, visualization, summarization, and
so on. DataONE will enable any such services to be registered and discoverable
through a search interface, and in some cases incorporated in the the
functionality data search interfaces to offer online processing of the data by
a registered service.r h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/KAh0hh]r h9Xp The fundamental issue being addressed is the discovery of services offered by
Member Nodes. There is currently no consistent, convenient, universally
available mechanism to discover services that are offered by data repositories
to assist users with access to data. Services are available for data
subsetting and slicing, merging, analysis, visualization, summarization, and
so on. DataONE will enable any such services to be registered and discoverable
through a search interface, and in some cases incorporated in the the
functionality data search interfaces to offer online processing of the data by
a registered service.r r! }r" (h j h!j ubaubhX)r# }r$ (h X ## How it worksr% h!hh"h#h$h\h&}r& (h(]h)]h*]h+]h-]uh/KKh0hh]r' h9X ## How it worksr( r) }r* (h j% h!j# ubaubhX)r+ }r, (h X" Services are described with a service registration document (SRD), similar to
how data objects are currently described with a metadata document. SRDs are
treated like metadata documents in DataONE. They have unique identifiers, they
are immutable, and they are indexed by the search engine.r- h!hh"h#h$h\h&}r. (h(]h)]h*]h+]h-]uh/KMh0hh]r/ h9X" Services are described with a service registration document (SRD), similar to
how data objects are currently described with a metadata document. SRDs are
treated like metadata documents in DataONE. They have unique identifiers, they
are immutable, and they are indexed by the search engine.r0 r1 }r2 (h j- h!j+ ubaubhX)r3 }r4 (h X Given a service that a user would like to advertise, an SRD is created and
added to a Member Node. The CNs synchronize the content and index the document
and its associated metadata.r5 h!hh"h#h$h\h&}r6 (h(]h)]h*]h+]h-]uh/KRh0hh]r7 h9X Given a service that a user would like to advertise, an SRD is created and
added to a Member Node. The CNs synchronize the content and index the document
and its associated metadata.r8 r9 }r: (h j5 h!j3 ubaubhX)r; }r< (h X A user can discover the service through the search interface, either by
looking for the service specifically or by browsing data search results, and
the UI suggesting services applicable for the different data result records.r= h!hh"h#h$h\h&}r> (h(]h)]h*]h+]h-]uh/KVh0hh]r? h9X A user can discover the service through the search interface, either by
looking for the service specifically or by browsing data search results, and
the UI suggesting services applicable for the different data result records.r@ rA }rB (h j= h!j; ubaubhX)rC }rD (h X ## Who it benefitsrE h!hh"h#h$h\h&}rF (h(]h)]h*]h+]h-]uh/KZh0hh]rG h9X ## Who it benefitsrH rI }rJ (h jE h!jC ubaubhX)rK }rL (h X ## Use CasesrM h!hh"h#h$h\h&}rN (h(]h)]h*]h+]h-]uh/K\h0hh]rO h9X ## Use CasesrP rQ }rR (h jM h!jK ubaubcdocutils.nodes
transition
rS )rT }rU (h X
-------------rV h!hh"h#h$U
transitionrW h&}rX (h(]h)]h*]h+]h-]uh/K`h0hh]ubhX)rY }rZ (h X The services will be identified by some identifier that is uniquely associated
with that service type. Included with the entry will be connection information
so that a client application of the service type is able to connect and
perform the necessary operations.r[ h!hh"h#h$h\h&}r\ (h(]h)]h*]h+]h-]uh/Kbh0hh]r] h9X The services will be identified by some identifier that is uniquely associated
with that service type. Included with the entry will be connection information
so that a client application of the service type is able to connect and
perform the necessary operations.r^ r_ }r` (h j[ h!jY ubaubhX)ra }rb (h X Connection to, and interaction with the advertised service is not defined by
DataONE APIs. Only the availability of services that may be applicable to
different object format types is advertised.rc h!hh"h#h$h\h&}rd (h(]h)]h*]h+]h-]uh/Kgh0hh]re h9X Connection to, and interaction with the advertised service is not defined by
DataONE APIs. Only the availability of services that may be applicable to
different object format types is advertised.rf rg }rh (h jc h!ja ubaubhX)ri }rj (h X Note that there may be many services that can operate on a particular data
type, and any particular service may support multiple types of content.rk h!hh"h#h$h\h&}rl (h(]h)]h*]h+]h-]uh/Kkh0hh]rm h9X Note that there may be many services that can operate on a particular data
type, and any particular service may support multiple types of content.rn ro }rp (h jk h!ji ubaubhX)rq }rr (h XY The association between service types and object format types will need to be
maintained on a service by service basis, since particular service
implementations may support different types of content. For example, one
instance of OGC-WCS (Web Coverage Service) may support GeoTIFF imagery only,
while another may support multiple raster formats.rs h!hh"h#h$h\h&}rt (h(]h)]h*]h+]h-]uh/Knh0hh]ru h9XY The association between service types and object format types will need to be
maintained on a service by service basis, since particular service
implementations may support different types of content. For example, one
instance of OGC-WCS (Web Coverage Service) may support GeoTIFF imagery only,
while another may support multiple raster formats.rv rw }rx (h js h!jq ubaubhX)ry }rz (h X If all service information is returned in getCapabilites, then the entry for a
service record in the services list may be structured as (cardinality
indicated in parentheses)::h!hh"h#h$h\h&}r{ (h(]h)]h*]h+]h-]uh/Kth0hh]r| h9X If all service information is returned in getCapabilites, then the entry for a
service record in the services list may be structured as (cardinality
indicated in parentheses):r} r~ }r (h X If all service information is returned in getCapabilites, then the entry for a
service record in the services list may be structured as (cardinality
indicated in parentheses):h!jy ubaubcdocutils.nodes
literal_block
r )r }r (h X (1)
(0..n)
(1) {Unique Service Type identifier}
(1) Descriptve human readable name of the service
(0..1) Brief human readable description of service to be
presented in user interfaces.
(1) http://some.service.endpoint/here
(1)
(1..n) {Some format ID}
...
...
h!hh"h#h$U
literal_blockr h&}r (U xml:spacer Upreserver h+]h*]h(]h)]h-]uh/Kxh0hh]r h9X (1)
(0..n)
(1) {Unique Service Type identifier}
(1) Descriptve human readable name of the service
(0..1) Brief human readable description of service to be
presented in user interfaces.
(1) http://some.service.endpoint/here
(1)
(1..n) {Some format ID}
...
...
r r }r (h U h!j ubaubhX)r }r (h X If an API call is added to describe available services then it may be modelled
as accessing a collection of services. For example::h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X If an API call is added to describe available services then it may be modelled
as accessing a collection of services. For example:r r }r (h X If an API call is added to describe available services then it may be modelled
as accessing a collection of services. For example:h!j ubaubj )r }r (h Xs URL: /v2/services
API: MN.listServices() -> List of all services on node
URL: /v2/services/service/{SERVICE_TYPE_ID}
API: MN.getService(SERVICE_TYPE_ID) -> Service description
UR: /v2/services/formats/{OBJECT_FORMAT_TYPE}
API: MN.listFormatServices(object_format_type) -> List of services applicable
to an object formath!hh"h#h$j h&}r (j j h+]h*]h(]h)]h-]uh/Kh0hh]r h9Xs URL: /v2/services
API: MN.listServices() -> List of all services on node
URL: /v2/services/service/{SERVICE_TYPE_ID}
API: MN.getService(SERVICE_TYPE_ID) -> Service description
UR: /v2/services/formats/{OBJECT_FORMAT_TYPE}
API: MN.listFormatServices(object_format_type) -> List of services applicable
to an object formatr r }r (h U h!j ubaubhX)r }r (h X{ A typical imagined user interaction scenario is described in MNSR-S01. Similar
scenarios can be constructed for other combinations of data and service types.
For example: a CSV subsetting service might return a selection of rows from a
CSV file; a rendering service might provide a HTML rendering of different
types of content (such as metadata, resource maps, and data objects).r h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X{ A typical imagined user interaction scenario is described in MNSR-S01. Similar
scenarios can be constructed for other combinations of data and service types.
For example: a CSV subsetting service might return a selection of rows from a
CSV file; a rendering service might provide a HTML rendering of different
types of content (such as metadata, resource maps, and data objects).r r }r (h j h!j ubaubhX)r }r (h X' Services advertised will likely be mostly third-party implemenations, though
it is conceivable that this mechanism for advertising the availability of
services might also be applied to advertising the availability of DataONE
defined services that may be optional for Member Node implementations.r h!hh"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X' Services advertised will likely be mostly third-party implemenations, though
it is conceivable that this mechanism for advertising the availability of
services might also be applied to advertising the availability of DataONE
defined services that may be optional for Member Node implementations.r r }r (h j h!j ubaubh)r }r (h U h!hh"h#h$h%h&}r (h(]h)]h*]h+]r hah-]r hauh/Kh0hh]r (h2)r }r (h X! Scenario MNSR-S01, Spatial Subsetr h!j h"h#h$h6h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X! Scenario MNSR-S01, Spatial Subsetr r }r (h j h!j ubaubhX)r }r (h X A user has a PID for a data object. Using a DataONE service aware client tool,
the user discovers that the object is a fairly large (system metadata) set of
imagery (system metadata, science metadata) that provides high resolution
measurements on ground surface reflectance in the range of 400 to 700nm
(science metadata). The science metaata describing the imagery indicates a
very broad spatial coverage and the the file is too large to justify
downloading for the small area of terrain being worked on.r h!j h"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X A user has a PID for a data object. Using a DataONE service aware client tool,
the user discovers that the object is a fairly large (system metadata) set of
imagery (system metadata, science metadata) that provides high resolution
measurements on ground surface reflectance in the range of 400 to 700nm
(science metadata). The science metaata describing the imagery indicates a
very broad spatial coverage and the the file is too large to justify
downloading for the small area of terrain being worked on.r r }r (h j h!j ubaubhX)r }r (h X The client tool indicates to the user that a Member Node holding a copy of the
data is known to be running a service (MN.getCapabilities) that will allow
extraction of a spatial window from the large data object (the OGC Web
Coverage Service, indicated by a unique identifier associated with the service
type) and also provides the URL of the GetCapabilities endpoint for the
service.r h!j h"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X The client tool indicates to the user that a Member Node holding a copy of the
data is known to be running a service (MN.getCapabilities) that will allow
extraction of a spatial window from the large data object (the OGC Web
Coverage Service, indicated by a unique identifier associated with the service
type) and also provides the URL of the GetCapabilities endpoint for the
service.r r }r (h j h!j ubaubhX)r }r (h X The user utilizes an OGC-WCS client application to connect with the service
operating on the Member Node and retrieves the desired window from the
coverage identified by the PID.r h!j h"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X The user utilizes an OGC-WCS client application to connect with the service
operating on the Member Node and retrieves the desired window from the
coverage identified by the PID.r r }r (h j h!j ubaubeubh)r }r (h U h!hh"h#h$h%h&}r (h(]h)]h*]h+]r hah-]r h
auh/Kh0hh]r (h2)r }r (h X Use Case MNSR-UC01r h!j h"h#h$h6h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X Use Case MNSR-UC01r r }r (h j h!j ubaubhX)r }r (h XB A client application is able to discover services available at a Member Node
through the MN.getCapabilities method. Services thus listed must also provide
a link to getCapabilities of the service (or equivalent introspection or well
known service endpoint) so that a compatible client may determine interaction
parameters.r h!j h"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9XB A client application is able to discover services available at a Member Node
through the MN.getCapabilities method. Services thus listed must also provide
a link to getCapabilities of the service (or equivalent introspection or well
known service endpoint) so that a compatible client may determine interaction
parameters.r r }r (h j h!j ubaubeubh)r }r (h U h!hh"h#h$h%h&}r (h(]h)]h*]h+]r hah-]r h auh/Kh0hh]r (h2)r }r (h X Use Case MNSR-UC02r h!j h"h#h$h6h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X Use Case MNSR-UC02r r }r (h j h!j ubaubhX)r }r (h X1 A client application is able to discover services available from registered
Member Nodes for a particular object formatType. As for Use Case MNS-UC01,
service registrations must provide references to the respective introspection
mechanisms so that a compatible client may determine interaction parameters.r h!j h"h#h$h\h&}r (h(]h)]h*]h+]h-]uh/Kh0hh]r h9X1 A client application is able to discover services available from registered
Member Nodes for a particular object formatType. As for Use Case MNS-UC01,
service registrations must provide references to the respective introspection
mechanisms so that a compatible client may determine interaction parameters.r r }r (h j h!j ubaubeubeubeubah U Utransformerr NU
footnote_refsr }r Urefnamesr }r Usymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr ]r U citationsr ]r h0hUcurrent_liner NUtransform_messagesr ]r
Ureporterr NUid_startr KU
autofootnotesr
]r U
citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend
Values
r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NUrfc_base_urlr Uhttps://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU
toc_backlinksr Uentryr U
language_coder Uenr! U datestampr" NUreport_levelr# KU_destinationr$ NU
halt_levelr% KU
strip_classesr& Nh6NUerror_encoding_error_handlerr' Ubackslashreplacer( Udebugr) NUembed_stylesheetr* Uoutput_encoding_error_handlerr+ Ustrictr, U
sectnum_xformr- KUdump_transformsr. NU
docinfo_xformr/ KUwarning_streamr0 NUpep_file_url_templater1 Upep-%04dr2 Uexit_status_levelr3 KUconfigr4 NUstrict_visitorr5 NUcloak_email_addressesr6 Utrim_footnote_reference_spacer7 Uenvr8 NUdump_pseudo_xmlr9 NUexpose_internalsr: NUsectsubtitle_xformr; Usource_linkr< NUrfc_referencesr= NUoutput_encodingr> Uutf-8r? U
source_urlr@ NUinput_encodingrA U utf-8-sigrB U_disable_configrC NU id_prefixrD U U tab_widthrE KUerror_encodingrF UUTF-8rG U_sourcerH h#Ugettext_compactrI U generatorrJ NUdump_internalsrK NUsmart_quotesrL Upep_base_urlrM U https://www.python.org/dev/peps/rN Usyntax_highlightrO UlongrP Uinput_encoding_error_handlerrQ j, Uauto_id_prefixrR UidrS Udoctitle_xformrT Ustrip_elements_with_classesrU NU
_config_filesrV ]Ufile_insertion_enabledrW Uraw_enabledrX KU
dump_settingsrY NubUsymbol_footnote_startrZ K Uidsr[ }r\ (hhhhhhchj hj hj uUsubstitution_namesr] }r^ h$h0h&}r_ (h(]h+]h*]Usourceh#h)]h-]uU footnotesr` ]ra Urefidsrb }rc ub.