From 058c17585bf2bee8e4702d92493010c1e02b1965 Mon Sep 17 00:00:00 2001 From: wgranzow <wgranzow@qti.qualcomm.com> Date: Fri, 27 Mar 2015 13:48:20 +0100 Subject: [PATCH] XSD v1_1_0 baseline --- v1_1_0/CDT-AE-v1_1_0.xsd | 100 ++++++++++ v1_1_0/CDT-accessControlPolicy-v1_1_0.xsd | 220 ++++++++++++++++++++++ v1_1_0/CDT-activeCmdhPolicy-v1_1_0.xsd | 47 +++++ xsd_todo_list.xlsx | Bin 116720 -> 116677 bytes 4 files changed, 367 insertions(+) create mode 100644 v1_1_0/CDT-AE-v1_1_0.xsd create mode 100644 v1_1_0/CDT-accessControlPolicy-v1_1_0.xsd create mode 100644 v1_1_0/CDT-activeCmdhPolicy-v1_1_0.xsd diff --git a/v1_1_0/CDT-AE-v1_1_0.xsd b/v1_1_0/CDT-AE-v1_1_0.xsd new file mode 100644 index 0000000..6ea8a96 --- /dev/null +++ b/v1_1_0/CDT-AE-v1_1_0.xsd @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright Notification + +The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices +contained in the original materials on any copies of the materials and that you comply strictly with these terms. +This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of +any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document. +© 2015, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TTA, TTC). All rights reserved. + +Notice of Disclaimer & Limitation of Liability + +The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand +and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations. +No recommendation as to products or vendors is made or should be implied. + +NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE, +GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY +PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. +NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO +ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES. +oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER. + +--> +<xs:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.onem2m.org/xml/protocols" + xmlns:m2m="http://www.onem2m.org/xml/protocols" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + <xs:include schemaLocation="CDT-commonTypes-v1_0_0.xsd" /> + <xs:include schemaLocation="CDT-container-v1_0_0.xsd" /> + <xs:include schemaLocation="CDT-group-v1_0_0.xsd" /> + <xs:include schemaLocation="CDT-accessControlPolicy-v1_0_0.xsd" /> + <xs:include schemaLocation="CDT-subscription-v1_0_0.xsd" /> + <xs:include schemaLocation="CDT-pollingChannel-v1_0_0.xsd" /> + + <xs:element name="AE"> + <xs:complexType> + <xs:complexContent> + <!-- Inherit common attributes for announceable Resources --> + <xs:extension base="m2m:announceableResource"> + <xs:sequence> + <!-- Resource Specific Attributes --> + <xs:element name="appName" type="xs:string" minOccurs="0" /> + <xs:element name="App-ID" type="xs:string" /> + <xs:element name="AE-ID" type="m2m:ID" /> + <xs:element name="pointOfAccess" type="m2m:pOAList" minOccurs="0" /> + <xs:element name="ontologyRef" type="xs:anyURI" minOccurs="0" /> + <xs:element name="nodeLink" type="xs:anyURI" minOccurs="0" /> + + <!-- Child Resources --> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="childResource" type="m2m:childResourceRef" minOccurs="1" maxOccurs="unbounded" /> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element ref="m2m:container" /> + <xs:element ref="m2m:group" /> + <xs:element ref="m2m:accessControlPolicy" /> + <xs:element ref="m2m:subscription" /> + <xs:element ref="m2m:pollingChannel" /> + </xs:choice> + </xs:choice> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:element name="AEAnnc"> + <xs:complexType> + <xs:complexContent> + <!-- Inherit common attributes for announced Resources --> + <xs:extension base="m2m:announcedResource"> + <xs:sequence> + <!-- Resource Specific Attributes --> + <xs:element name="appName" type="xs:string" minOccurs="0" /> + <xs:element name="App-ID" type="xs:string" /> + <xs:element name="AE-ID" type="m2m:ID" /> + <xs:element name="pointOfAccess" type="m2m:pOAList" minOccurs="0" /> + <xs:element name="ontologyRef" type="xs:anyURI" minOccurs="0" /> + <xs:element name="nodeLink" type="xs:anyURI" minOccurs="0" /> + + <!-- Child Resources --> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="childResource" type="m2m:childResourceRef" minOccurs="1" maxOccurs="unbounded" /> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element ref="m2m:container" /> + <xs:element ref="m2m:containerAnnc" /> + <xs:element ref="m2m:group" /> + <xs:element ref="m2m:groupAnnc" /> + <xs:element ref="m2m:accessControlPolicy" /> + <xs:element ref="m2m:accessControlPolicyAnnc" /> + <xs:element ref="m2m:subscription" /> + <xs:element ref="m2m:pollingChannel" /> + </xs:choice> + </xs:choice> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/v1_1_0/CDT-accessControlPolicy-v1_1_0.xsd b/v1_1_0/CDT-accessControlPolicy-v1_1_0.xsd new file mode 100644 index 0000000..41d5cec --- /dev/null +++ b/v1_1_0/CDT-accessControlPolicy-v1_1_0.xsd @@ -0,0 +1,220 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright Notification + +The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices +contained in the original materials on any copies of the materials and that you comply strictly with these terms. +This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of +any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document. +© 2015, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TTA, TTC). All rights reserved. + +Notice of Disclaimer & Limitation of Liability + +The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand +and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations. +No recommendation as to products or vendors is made or should be implied. + +NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE, +GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY +PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. +NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO +ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES. +oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER. + +--> +<xs:schema xmlns="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://www.onem2m.org/xml/protocols" + xmlns:m2m="http://www.onem2m.org/xml/protocols" xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="unqualified"> + + <xs:include schemaLocation="CDT-commonTypes-v1_0_0.xsd"/> + <xs:include schemaLocation="CDT-subscription-v1_0_0.xsd"/> + + <xs:element name="accessControlPolicy"> + <xs:complexType> + <xs:complexContent> + <!-- Inherit Announceable Attributes from announceableSubordinateResource type --> + <xs:extension base="m2m:announceableSubordinateResource"> + <xs:sequence> + <!-- Resource Specific Attributes --> + <xs:element name="privileges" type="m2m:setOfAcrs"/> + <xs:element name="selfPrivileges" type="m2m:setOfAcrs"/> + + <!-- Child Resources --> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="childResource" type="m2m:childResourceRef" + maxOccurs="unbounded"/> + <xs:element ref="m2m:subscription" maxOccurs="unbounded"/> + </xs:choice> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <xs:element name="accessControlPolicyAnnc"> + <xs:complexType> + <xs:complexContent> + <!-- Inherit Announceable Attributes from announceableSubordinateResource type --> + <xs:extension base="m2m:announcedSubordinateResource"> + <xs:sequence> + <!-- Resource Specific Attributes --> + <xs:element name="privileges" type="m2m:setOfAcrs"/> + <xs:element name="selfPrivileges" type="m2m:setOfAcrs"/> + + <!-- Child Resources --> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="childResource" type="m2m:childResourceRef" + maxOccurs="unbounded"/> + <xs:element ref="m2m:subscription" maxOccurs="unbounded"/> + </xs:choice> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + + + <!-- TODO: define short names for "setOfAcrs" and all its elements names (CR to TS-0004 for next PRO WG meeting) --> + + <xs:complexType name="setOfAcrs"> + <xs:sequence> + <xs:element name="accessControlRule" type="m2m:accessControlRule" minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="accessControlRule"> + <xs:sequence> + <xs:element name="accessControlOriginators" type="m2m:listOfURIs" /> + + <!-- accessControlOperations defined as enumerated list 1 ... 63 --> + <xs:element name="accessControlOperations" type="m2m:accessControlOperations" /> + + <!-- TODO: mismatch with TS-0004 where "accessControlContexts" has multiplicity 0..1 --> + <xs:element name="accessControlContexts" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <!-- TODO: mismatch with TS-0003 where element is called "accessControlTimeWindows" --> + <!-- TODO: mismatch with TS-0001 where element is called "accessControlTimeWindow" --> + <xs:element name="accessControlWindow" type="m2m:scheduleEntry" minOccurs="0" maxOccurs="unbounded" /> + + <!-- TODO: mismatch with TS-0001: element is called accessControlIpAddress in TS-0001" in TS-0003 --> + <xs:element name="accessControlIpAddresses" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <!-- TODO: it should be possible to include both IPv6 and IPv4 address. Present text in TS-0004 is ambiguous. Not + clear if "or" in TS-0001 is inclusive or exclusive. Below it is interpreted as inclusive. --> + <!-- TODO: the element names ipv4Addresses and ipv6Addresses are not explicitly mentioned in TS-0004 --> + + <xs:element name="ipv4Addresses" minOccurs="0" maxOccurs="1"> + <!-- space separated list of IPv4 addresses --> + <xs:simpleType> + <xs:list itemType="m2m:ipv4" /> + </xs:simpleType> + </xs:element> + <xs:element name="ipv6Addresses" minOccurs="0" maxOccurs="1"> + <!-- space separated list of IPv6 addresses --> + <xs:simpleType> + <xs:list itemType="m2m:ipv6" /> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- TODO: mismatch with TS-0003 and TS-0004 where element is called "accessControlLocationRegions" --> + <!-- TODO: mismatch with TS-0004 where element has multiplicity [0..n] --> + <xs:element name="accessControlLocationRegion" type="m2m:locationRegion" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="locationRegion"> + <xs:choice> + <xs:element name="countryCode"> + <!-- Space separated list of 2-digit country codes --> + <xs:simpleType> + <xs:list itemType="m2m:countryCode" /> + </xs:simpleType> + </xs:element> + <xs:element name="circRegion"> + <!-- "circularRegion" is an ordered list of following three parameters of data type float ´ 1) longitude in the range + +/-180 degrees 2) latitude in the range +/-90 degrees, 3) radius in meters --> + <xs:simpleType> + <xs:restriction> + <xs:simpleType> + <xs:list itemType="xs:float" /> + </xs:simpleType> + <xs:minLength value="3" /> + <xs:maxLength value="3" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:choice> + </xs:complexType> + + <!-- countryCode as defined in TS-0004 --> + <xs:simpleType name="countryCode"> + <xs:annotation> + <xs:documentation>2-character country code as defined by ISO-3166</xs:documentation> + </xs:annotation> + <xs:restriction base="xs:string"> + <xs:pattern value="[A-Z]{2}" /> + </xs:restriction> + </xs:simpleType> + + + <!-- Initial IPv4 and IPv6 address representation types were found here: + http://lists.w3.org/Archives/Public/www-xml-schema-comments/2005OctDec/0138.html, CIDR suffix has been added --> + + <!-- TODO: Need to add more descriptive text into TS-0004 about structure of IPv4 and IPv6 addresses with optional CIDR suffix --> + <xs:simpleType name="ipv4"> + <xs:annotation> + <xs:documentation> An IP version 4 address, with optional CIDR suffix in the range /0 + ... /32. </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <xs:pattern + value="(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(/([0-9]|[1-2][0-9]|3[0-2]))?"/> + <xs:pattern value="[0-9A-Fa-f]{8}(/([0-9]|[1-2][0-9]|3[0-2]))?"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="ipv6"> + <xs:annotation> + <xs:documentation> An IP version 6 address, based on RFC 1884, with optional CIDR suffix + in the range /0 ... /128. </xs:documentation> + </xs:annotation> + <xs:restriction base="xs:token"> + <!-- Fully specified address --> + <xs:pattern + value="[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <!-- Double colon start --> + <xs:pattern value=":(:[0-9A-Fa-f]{1,4}){1,7}"/> + <!-- Double colon middle --> + <xs:pattern + value="([0-9A-Fa-f]{1,4}:){1,6}(:[0-9A-Fa-f]{1,4}){1}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <xs:pattern + value="([0-9A-Fa-f]{1,4}:){1,5}(:[0-9A-Fa-f]{1,4}){1,2}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <xs:pattern + value="([0-9A-Fa-f]{1,4}:){1,4}(:[0-9A-Fa-f]{1,4}){1,3}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <xs:pattern + value="([0-9A-Fa-f]{1,4}:){1,3}(:[0-9A-Fa-f]{1,4}){1,4}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <xs:pattern + value="([0-9A-Fa-f]{1,4}:){1,2}(:[0-9A-Fa-f]{1,4}){1,5}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <xs:pattern + value="([0-9A-Fa-f]{1,4}:){1}(:[0-9A-Fa-f]{1,4}){1,6}(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <!-- Double colon end --> + <xs:pattern value="([0-9A-Fa-f]{1,4}:){1,7}:(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?"/> + <!-- Embedded IPv4 addresses without CIDR suffix. Should IPv4 CIDR suffix be added?--> + <xs:pattern + value="((:(:0{1,4}){0,3}(:(0{1,4}|[fF]{4}))?)|(0{1,4}:(:0{1,4}){0,2}(:(0{1,4}|[fF]{4}))?)|((0{1,4}:){2}(:0{1,4})?(:(0{1,4}|[fF]{4}))?)|((0{1,4}:){3}(:(0{1,4}|[fF]{4}))?)|((0{1,4}:){4}(0{1,4}|[fF]{4})?)):(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])"/> + <!-- The unspecified address --> + <xs:pattern value="::(/0)?"/> + </xs:restriction> + </xs:simpleType> + +</xs:schema> diff --git a/v1_1_0/CDT-activeCmdhPolicy-v1_1_0.xsd b/v1_1_0/CDT-activeCmdhPolicy-v1_1_0.xsd new file mode 100644 index 0000000..a1a86e4 --- /dev/null +++ b/v1_1_0/CDT-activeCmdhPolicy-v1_1_0.xsd @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright Notification + + +The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices +contained in the original materials on any copies of the materials and that you comply strictly with these terms. +This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of +any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document. +© 2015, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TTA, TTC). All rights reserved. + +Notice of Disclaimer & Limitation of Liability + +The information provided in this document is directed solely to professionals who have the appropriate degree of experience +to understand and interpret its contents in accordance with generally accepted engineering or other professional standards +and applicable regulations. No recommendation as to products or vendors is made or should be implied. + +NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE, +GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY +PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. +NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, +WITH RESPECT TO ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES. +oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER. + +--> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://www.onem2m.org/xml/protocols" + xmlns:m2m="http://www.onem2m.org/xml/protocols" + elementFormDefault="unqualified" attributeFormDefault="unqualified" > + + <xs:include schemaLocation="CDT-commonTypes-v1_0_0.xsd" /> + + <xs:element name="activeCmdhPolicy"> + <xs:complexType> + <xs:complexContent> + <!-- Inherit Common Attributes from regularResourceType --> + <xs:extension base="m2m:mgmtResource"> + <xs:sequence> + <!-- Resource Specific Attributes --> + <xs:element name="activeCmdhPolicyLink" type="m2m:ID" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> +</xs:schema> + diff --git a/xsd_todo_list.xlsx b/xsd_todo_list.xlsx index 50ba6cd88a36edb81a2aedf14a71d045e35a277e..efd857f3cac99819602d8af8dc835380db6be110 100755 GIT binary patch delta 766 zcmey+&wjL@y<rNYC1-LS+tfNn28Q~rPK-Jn_2={MC<wH_pZJTf!}_#+vb6TS6=#nH z>4j?L$~PqJ>CQU96r<Yp>0N61?6__1GVULK@0)q?&b_@mB>$Kh-h5E)Va~$zxKv`T z{g)5V>l}1hG_~zlSyo&=96tHM-EXJQzMbX8F=dOtt<AGNB@*hjCVoqOBYO1pgFF15 z1|4Je^ERo^@^MezG}};l$uYl3e*G4`x;DXOC$lzlSCt-n&aE;l^68~&t6QqI7v}uq zIk)mhcI*VcJk5@D>)U^-+MFJge6RSRxa#@NGk=`4m)hTW{)p@Snm)x=&3rDtc&WYf zB9l7(Rb<2FSD$$BZO<`xd)9)8w>J)NU-)oQ-Yl+<RSQ-qeXVECs{AXuu`xt<dhXFD zhpk!Sc3!&CAA0uaa|Mf3LFGAxVcpZ54OZoR`}U<%P)lH8M_9GnZm+T?#~R&xfsU5> zQAchl1RQ;*I_d1+1{J|Iw@xm+Tl@I`5r4JW9Q$r>nm6bFt<1BWxtiktw;JzK-=n-p z`A^F6=bvx>V`O0X|DTy5V0zX%M&8L0zl^qraxqTciin-*ANMmxF~8zuoL;z}QF(gd z0Y-gB@97H<FxoPi2}~C}#3()e_W?$ICNohGM|`^TK}J(1CutBzdivCZjQUI!av+Y> z^alqS^%+B^3mjtfW;&(>5|f@@afnf$sY(OHk(z!O#Bn!;aQF^08ZhpjZhx3Dg2~ka zBDVQ3qdt?71BCMr#7S=kaiphv9bwdCs%Zgnq^3_f!l=)*p%=uFp8ntnqdw!-=>kU? zy_tk2fyAVymmg)+XZkq>!Z~!5(SRvwI)uY_j8UISavq2yJv|D<$y@;9NKIdQjM0GU z;t~)?dip1j4C@*YM{2t5aYlV6yLBLr^z;Sm7+I(H9cR>Hs@?<<xq6&Ylr3U6BLf2i E04JbA)Bpeg delta 875 zcmX@w&;FsGy<rNYrNI7<kV`8W85n*rF)&CoaBxh&y`NEfYYHP5NB#Y*+Xf=-@7b%_ z7grzsl^wmzuk*1)m9d$Jyu;R~E>|Y?sP<3WSU!Kwn%$lftcn7ce(w8h{o>)rvppyM zO{?GLuzp}`bh&x%>#ccOA8K+E8HMDRynXs&&8h>tKRqb?{q^+WN6CRgtJkhSVA-<L zC;0x{sT1oStEE0Z`yfr(+2-8xEA{@HC+)S@7CkdVsAba?kKBV(1J2D)+>v-;ZdS~8 ziPXcQMymtcZtS*yeX{<7&v(f=6F<K;I(TlTrc&IO6^DPbatU3Y>aYGf?WfVPGx;-4 zzH6?vyz`*<UE1@z0%n5K<D~bV)d`xoZpk@avyg_Sx2Zk;Wd$cQFV?cwZMA$FInUT* zbG?{z+a_k6jBU+JT-PjEl;9#$*L=iFSo-(I6NbNdJg!A~2&hg;*|R|5Wom%?UOOd@ z;tqo&Z#)W4x}4<n$Un;aY{sQM4J}(_j5dh}Jozogb%Zn9CECRFulm1rO|vHFTlJ~8 z>@S-W*uw4eGuHZ`yNmY`Z<qJC0(}i1iCo+5%zaa3*IT1`j$88iN_}tcTX6P&l5ivI z>32u_l47QK9NF4+`Skv~{}?AT?iHD?xt~#BI|moz)~%fI=$w9RKVuZLC>P`OkNX&v zr@I|s)MqT4UUq=dmMKwSI^#h`@#$v{Fd8!^PCLlx%akh(5lTDAXw0-&4#L@VkkN># zUID`SdyvtX@#A#ELyX=`OEn;3Yc&`-rq4aZsKr!d3K4m5h|!q&nHl5s8)l3;)1~$> z3QP|=%qYcFU;&YDJ<Mpt6zc%tTmW$<HA6VkM;MKmmbXAS>suH(rso}D)MC2b3lZ6P zgwdGk!2}5B?-530M%(FzM;X1CRHj129vot1nQkzZk#+jqql{Wiz0;w>M;VQnT;@SI zKJyqkr(Zq5C@{Tz0iys90~}0Q08s!oWWfSP*69t$7`2%GEP)6gKE`OwWUvOp0jm){ m&Zx(fxeg){b)3<dY1t+SXWb@7>uqGYYUZ?`C9RU;qGm|8n^N -- GitLab