Commit d1c40a52 authored by Wolfgang Granzow's avatar Wolfgang Granzow

Changes agreed at SDS#39/TP#39 for Rel-3

See detailed list of changes in SDS-2019-0188-SDS39_changes_of_XML_schemas_to_align_with_TS-0004
parent 65af7270
......@@ -32,7 +32,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:include schemaLocation="CDT-accessControlPolicy-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-subscription-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-pollingChannel-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-schedule-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-semanticDescriptor-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-timeSeries-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-semanticMashupInstance-v3_11_0.xsd" />
......@@ -75,7 +74,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element ref="m2m:accessControlPolicy" />
<xs:element ref="m2m:subscription" />
<xs:element ref="m2m:pollingChannel" />
<xs:element ref="m2m:schedule" />
<xs:element ref="m2m:semanticDescriptor" />
<xs:element ref="m2m:timeSeries" />
<xs:element ref="m2m:sg_flexContainerResource" />
......@@ -127,7 +125,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element ref="m2m:accessControlPolicy" />
<xs:element ref="m2m:accessControlPolicyAnnc" />
<xs:element ref="m2m:subscription" />
<xs:element ref="m2m:scheduleAnnc" />
<xs:element ref="m2m:semanticDescriptor" />
<xs:element ref="m2m:timeSeries" />
<xs:element ref="m2m:timeSeriesAnnc" />
......
......@@ -40,7 +40,10 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<!-- Resource Specific Attributes -->
<xs:element name="privileges" type="m2m:setOfAcrs"/>
<xs:element name="selfPrivileges" type="m2m:setOfAcrs"/>
<xs:element name="authorizationDecisionResourceIDs" type="m2m:listOfURIs"/>
<xs:element name="authorizationPolicyResourceIDs" type="m2m:listOfURIs"/>
<xs:element name="authorizationInformationResourceIDs" type="m2m:listOfURIs"/>
<!-- Child Resources -->
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="childResource" type="m2m:childResourceRef" maxOccurs="unbounded" />
......@@ -64,6 +67,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<!-- Resource Specific Attributes -->
<xs:element name="privileges" type="m2m:setOfAcrs"/>
<xs:element name="selfPrivileges" type="m2m:setOfAcrs"/>
<xs:element name="authorizationDecisionResourceIDs" type="m2m:listOfURIs"/>
<xs:element name="authorizationPolicyResourceIDs" type="m2m:listOfURIs"/>
<xs:element name="authorizationInformationResourceIDs" type="m2m:listOfURIs"/>
<!-- Child Resources -->
<xs:choice minOccurs="0" maxOccurs="1">
......
......@@ -402,12 +402,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:simpleType name="descriptorRepresentation">
<xs:restriction base="xs:string">
<xs:pattern value="application/rdf\+xml:1" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="e2eCompactJWS">
<xs:restriction base="xs:string" >
<xs:pattern value="([a-zA-Z0-9\-_=]+)\.([a-zA-Z0-9\-_=]*)\.([A-Za-z0-9\-_=])+" />
......@@ -478,17 +472,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mashupMember">
<xs:union>
<xs:simpleType>
<xs:restriction base='xs:base64Binary' />
</xs:simpleType>
<xs:simpleType>
<xs:restriction base='m2m:listOfURIs' />
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="TMGI">
<xs:restriction base="xs:string" >
<xs:pattern value="([a-fA-F0-9]{6})[\d]{5}[\d]?" />
......@@ -630,9 +613,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="expireAfter" type="m2m:timestamp" minOccurs="0" />
<xs:element name="sizeAbove" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="sizeBelow" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="operationMonitor" type="m2m:operationMonitor" minOccurs="0" maxOccurs="5" />
<xs:element name="operationMonitor" type="m2m:operationMonitor" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="attribute" type="m2m:attributeList" minOccurs="0" maxOccurs="1" />
<xs:element name="notificationEventType" type="m2m:notificationEventType" minOccurs="0" maxOccurs="5" />
<xs:element name="notificationEventType" type="m2m:notificationEventType" minOccurs="0" maxOccurs="6" />
<xs:element name="childResourceType" minOccurs="0" maxOccurs="1" >
<xs:simpleType>
<xs:restriction>
......@@ -644,6 +627,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
</xs:simpleType>
</xs:element>
<xs:element name="missingData" type="m2m:missingData" minOccurs="0" />
<xs:element name="filterOperation" type="m2m:filterOperation" minOccurs="0" />
</xs:sequence>
</xs:complexType>
......@@ -693,7 +677,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="filterUsage" type="m2m:filterUsage" minOccurs="0" />
<xs:element name="limit" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="semanticsFilter" type="m2m:sparql" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="filterOperation" type="xs:boolean" minOccurs="0" />
<xs:element name="filterOperation" type="m2m:filterOperation" minOccurs="0" />
<xs:element name="contentFilterSyntax" type="m2m:contentFilterSyntax" minOccurs="0" />
<xs:element name="contentFilterQuery" type="xs:string" minOccurs="0" />
<xs:element name="level" type="xs:positiveInteger" minOccurs="0" />
......@@ -880,7 +864,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:complexType>
<xs:sequence>
<xs:element name="resourceType" type="m2m:resourceType" minOccurs="0" />
<xs:element name="specializationID" type="xs:anyURI" minOccurs="0" />
<xs:element name="specializationID" type="m2m:specializationType" minOccurs="0" />
<xs:element name="childResourceType" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction>
......@@ -1002,7 +986,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:complexType name="missingData">
<xs:sequence>
<xs:element name="number" type="xs:nonNegativeInteger" minOccurs="1" />
<xs:element name="number" type="xs:positiveInteger" minOccurs="1" />
<xs:element name="duration" type="xs:duration" minOccurs="1" />
</xs:sequence>
</xs:complexType>
......@@ -1360,6 +1344,25 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
</xs:sequence>
</xs:complexType>
<xs:complexType name="specializationType">
<xs:sequence>
<xs:element name="containerDefinition" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
<xs:element name="mgmtDefinition" type="m2m:mgmtDefinition" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="mashupMembers">
<xs:sequence>
<xs:element name="mashupMember" minOccurs="1" maxOccurs="unbounded" >
<complexType>
<sequence>
<xs:element name="memberURI" type="xs:anyURI" />
<xs:element name="memberValue" type="xs:double" minOccurs="0"/>
</sequence>
</complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Resource type definitions. These types include the "common attributes" that are used by oneM2M Resources. Each oneM2M
......
......@@ -38,7 +38,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:sequence>
<!-- Resource Specific Attributes -->
<xs:element name="dynamicAuthorizationEnabled" type="xs:boolean" />
<xs:element name="dynamicAuthorizationPoA" type="m2m:listOfURIs" />
<xs:element name="dynamicAuthorizationPoA" type="m2m:poaList" />
<xs:element name="dynamicAuthorizationLifetime" type="m2m:timestamp" minOccurs="0" />
<!-- Child Resources -->
......
......@@ -379,8 +379,10 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:enumeration value="4122" />
<!-- ILLEGAL_TRANSACTION_STATE_TRANSITION_ATTEMPTED -->
<xs:enumeration value="4123" />
<!-- BLOCKING_SUBSCRIPTION_ALREADY_EXISTS -->
<xs:enumeration value="4124" />
<!-- SPECIALIZATION_SCHEMA_NOT_FOUND -->
<xs:enumeration value="4124" />
<xs:enumeration value="4125" />
<!-- INTERNAL_SERVER_ERROR -->
<xs:enumeration value="5000" />
<!-- NOT_IMPLEMENTED -->
......@@ -422,9 +424,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:enumeration value="5217" />
<!-- TRIGGERING_DISABLED_FOR_RECIPIENT -->
<xs:enumeration value="5218" />
<!-- UNABLE_TO_REPLACE_TRIGGER_REQUEST -->
<!-- UNABLE_TO_REPLACE_REQUEST -->
<xs:enumeration value="5219" />
<!-- UNABLE_TO_RECALL_TRIGGER_REQUEST -->
<!-- UNABLE_TO_RECALL_REQUEST -->
<xs:enumeration value="5220" />
<!-- CROSS_RESOURCE_OPERATION_FAILURE -->
<xs:enumeration value="5221" />
......@@ -826,6 +828,8 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:enumeration value="5" />
<!-- Trigger_Received_For_AE_Resource -->
<xs:enumeration value="6" />
<!-- Blocking_Update -->
<xs:enumeration value="7" />
</xs:restriction>
</xs:simpleType>
......@@ -1178,6 +1182,15 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="filterOperation">
<xs:restriction base="xs:integer">
<!-- Logical AND -->
<xs:enumeration value="1" />
<!-- Logical OR -->
<xs:enumeration value="2" />
</xs:restriction>
</xs:simpleType>
<!-- m2m:securityInfoType is defined in the CDT-notification xsd file -->
......@@ -1420,9 +1433,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ontologyFormat">
<xs:simpleType name="semanticFormat">
<xs:annotation>
<xs:documentation>Used for ontologyFormat attribute in ontology resourcee</xs:documentation>
<xs:documentation>Used in semanticDescriptor and ontology resources</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<!-- IRI -->
......@@ -1437,6 +1450,8 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:enumeration value="5" />
<!-- File format: Manchester -->
<xs:enumeration value="6" />
<!-- File format: JSON-LD -->
<xs:enumeration value="7" />
</xs:restriction>
</xs:simpleType>
......
......@@ -49,7 +49,9 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
</xs:simpleType>
</xs:element>
<xs:element name="dataSize" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="eventResourceTypes" type="m2m:resourceTypeList" minOccurs="0" />
<xs:element name="eventResourceIDs" type="m2m:listOfURIs" minOccurs="0" />
<!-- Child Resources -->
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="childResource" type="m2m:childResourceRef" minOccurs="1" maxOccurs="unbounded" />
......
......@@ -43,6 +43,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="creator" type="m2m:ID" minOccurs="0" />
<!-- Resource Specific Attributes -->
<xs:element name="memberType" type="m2m:memberType" />
<xs:element name="specializationType" type="m2m:specializationType" minOccurs="0" />
<xs:element name="currentNrOfMembers" type="xs:nonNegativeInteger" />
<xs:element name="maxNrOfMembers" type="xs:positiveInteger" />
<xs:element name="memberIDs">
......@@ -80,6 +81,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<!-- Resource Specific Attributes -->
<xs:sequence>
<xs:element name="memberType" type="m2m:memberType" minOccurs="0" />
<xs:element name="specializationType" type="m2m:specializationType" minOccurs="0" />
<xs:element name="currentNrOfMembers" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="maxNrOfMembers" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="memberIDs" minOccurs="0">
......
......@@ -42,7 +42,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="creator" type="m2m:ID" minOccurs="0" />
<!-- Resource Specific Attributes -->
<xs:element name="description" type="xs:string" minOccurs="0" />
<xs:element name="ontologyFormat" type="m2m:ontologyFormat" />
<xs:element name="ontologyFormat" type="m2m:semanticFormat" />
<xs:element name="ontologyContent" type="xs:anySimpleType" />
<xs:element name="semanticOpExec" type="m2m:sparql" minOccurs="0" />
......@@ -69,7 +69,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="stateTag" type="xs:nonNegativeInteger" />
<!-- Resource Specific Attributes -->
<xs:element name="description" type="xs:string" minOccurs="0" />
<xs:element name="ontologyFormat" type="m2m:ontologyFormat" minOccurs="0" />
<xs:element name="ontologyFormat" type="m2m:semanticFormat" minOccurs="0" />
<xs:element name="ontologyContent" type="xs:anySimpleType" minOccurs="0" />
<xs:element name="semanticOpExec" type="m2m:sparql" minOccurs="0" />
......
......@@ -33,7 +33,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:include schemaLocation="CDT-accessControlPolicy-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-subscription-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-pollingChannel-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-schedule-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-node-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-locationPolicy-v3_11_0.xsd" />
<xs:include schemaLocation="CDT-timeSeries-v3_11_0.xsd" />
......@@ -82,7 +81,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element ref="m2m:accessControlPolicyAnnc" />
<xs:element ref="m2m:subscription" />
<xs:element ref="m2m:pollingChannel" />
<xs:element ref="m2m:schedule" />
<xs:element ref="m2m:timeSeries" />
<xs:element ref="m2m:timeSeriesAnnc" />
<xs:element ref="m2m:locationPolicyAnnc" />
......@@ -140,7 +138,6 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element ref="m2m:accessControlPolicyAnnc" />
<xs:element ref="m2m:subscription" />
<xs:element ref="m2m:pollingChannel" />
<xs:element ref="m2m:scheduleAnnc" />
<xs:element ref="m2m:locationPolicyAnnc" />
<xs:element ref="m2m:timeSeries" />
<xs:element ref="m2m:timeSeriesAnnc" />
......
......@@ -39,7 +39,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<!-- Common Attribute, specific to <container>, <contentInstance>, <request> and <delivery> and other resources -->
<xs:element name="creator" type="m2m:ID" minOccurs="0" />
<!-- Resource Specific Attributes -->
<xs:element name="descriptorRepresentation" type="m2m:descriptorRepresentation" minOccurs="0" />
<xs:element name="descriptorRepresentation" type="m2m:semanticFormat" minOccurs="0" />
<xs:element name="semanticOpExec" type="m2m:sparql" minOccurs="0" />
<xs:element name="descriptor" type="xs:base64Binary" />
<xs:element name="ontologyRef" type="xs:anyURI" minOccurs="0" />
......@@ -68,7 +68,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:extension base="m2m:announcedResource">
<xs:sequence>
<!-- Resource Specific Attributes -->
<xs:element name="descriptorRepresentation" type="m2m:descriptorRepresentation" minOccurs="0" />
<xs:element name="descriptorRepresentation" type="m2m:semanticFormat" minOccurs="0" />
<xs:element name="semanticOpExec" type="m2m:sparql" minOccurs="0" />
<xs:element name="descriptor" type="xs:base64Binary" minOccurs="0" />
<xs:element name="ontologyRef" type="xs:anyURI" minOccurs="0" />
......
......@@ -46,7 +46,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="smjpID" type="xs:anyURI" />
<xs:element name="smjpInputParameter" type="xs:base64Binary" />
<xs:element name="memberStoreType" type="m2m:mashupMemberStoreType" />
<xs:element name="mashupMember" type="m2m:mashupMember" minOccurs="0"/>
<xs:element name="mashupMember" type="m2m:mashupMembers" minOccurs="0"/>
<xs:element name="resultGenType" type="m2m:mashupResultGenType" />
<xs:element name="periodForResultGen" type="xs:duration" minOccurs="0" />
......@@ -79,7 +79,7 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="smjpID" type="xs:anyURI" minOccurs="0"/>
<xs:element name="smjpInputParameter" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="memberStoreType" type="m2m:mashupMemberStoreType" minOccurs="0"/>
<xs:element name="mashupMember" type="m2m:mashupMember" minOccurs="0"/>
<xs:element name="mashupMember" type="m2m:mashupMembers" minOccurs="0"/>
<xs:element name="resultGenType" type="m2m:mashupResultGenType" minOccurs="0"/>
<xs:element name="periodForResultGen" type="xs:duration" minOccurs="0" />
......
......@@ -46,12 +46,12 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="maxInstanceAge" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="currentNrOfInstances" type="xs:nonNegativeInteger" />
<xs:element name="currentByteSize" type="xs:nonNegativeInteger" />
<xs:element name="periodicInterval" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="periodicInterval" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="missingDataDetect" type="xs:boolean" minOccurs="0" />
<xs:element name="missingDataMaxNr" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="missingDataMaxNr" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="missingDataList" type="m2m:missingDataList" minOccurs="0" />
<xs:element name="missingDataCurrentNr" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="missingDataDetectTimer" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="missingDataDetectTimer" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="ontologyRef" type="xs:anyURI" minOccurs="0" />
<xs:element name="contentInfo" type="m2m:contentInfo" minOccurs="0" />
......@@ -83,11 +83,11 @@ oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PR
<xs:element name="maxInstanceAge" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="currentNrOfInstances" type="xs:nonNegativeInteger" />
<xs:element name="currentByteSize" type="xs:nonNegativeInteger" />
<xs:element name="periodicInterval" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="missingDataMaxNr" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="periodicInterval" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="missingDataMaxNr" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="missingDataList" type="m2m:missingDataList" minOccurs="0" />
<xs:element name="missingDataCurrentNr" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="missingDataDetectTimer" type="xs:nonNegativeInteger" minOccurs="0" />
<xs:element name="missingDataDetectTimer" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="ontologyRef" type="xs:anyURI" minOccurs="0" />
<xs:element name="contentInfo" type="m2m:contentInfo" minOccurs="0" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment