url = ../ccsdk/parent
branch = .
ignore = dirty
-[submodule "docs/submodules/ccsdk/platform/blueprints.git"]
- path = docs/submodules/ccsdk/platform/blueprints.git
- url = ../ccsdk/platform/blueprints
- branch = .
- ignore = dirty
-[submodule "docs/submodules/ccsdk/platform/nbapi.git"]
- path = docs/submodules/ccsdk/platform/nbapi.git
- url = ../ccsdk/platform/nbapi
- branch = .
- ignore = dirty
[submodule "docs/submodules/ccsdk/platform/plugins.git"]
path = docs/submodules/ccsdk/platform/plugins.git
url = ../ccsdk/platform/plugins
branch = .
ignore = dirty
-[submodule "docs/submodules/ccsdk/storage/esaas.git"]
- path = docs/submodules/ccsdk/storage/esaas.git
- url = ../ccsdk/storage/esaas
- branch = .
- ignore = dirty
-[submodule "docs/submodules/ccsdk/storage/pgaas.git"]
- path = docs/submodules/ccsdk/storage/pgaas.git
- url = ../ccsdk/storage/pgaas
- branch = .
- ignore = dirty
[submodule "docs/submodules/ccsdk/utils.git"]
path = docs/submodules/ccsdk/utils.git
url = ../ccsdk/utils
url = ../vid
branch = .
ignore = dirty
-[submodule "docs/submodules/vid/asdcclient.git"]
- path = docs/submodules/vid/asdcclient.git
- url = ../vid/asdcclient
- branch = .
- ignore = dirty
[submodule "docs/submodules/usecase-ui.git"]
path = docs/submodules/usecase-ui.git
url = ../usecase-ui
url = ../aai/event-client
branch = .
ignore = dirty
-[submodule "docs/submodules/ui/dmaapbc.git"]
- path = docs/submodules/ui/dmaapbc.git
- url = ../ui/dmaapbc
- branch = .
- ignore = dirty
[submodule "docs/submodules/optf/osdf.git"]
path = docs/submodules/optf/osdf.git
url = ../optf/osdf
:titlesonly:
VNF Software Development Kit <../../../submodules/vnfsdk/model.git/docs/files/vnfsdk-apis.rst>
+
+
+Some ONAP Postman collections
+-----------------------------
+
+.. toctree::
+ :maxdepth: 1
+ :titlesonly:
+
+ Some ONAP Postman collections <../../../submodules/integration.git/docs/docs_postman.rst>
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
+
+
+Change Configure
+================
+The following guides are provided to describe tasks that a user of
+ONAP may need to perform to change a VNF configuration.
+
+TO BE COMPLETED
\ No newline at end of file
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
+
+
+Configure Service, VNF, PNF
+===========================
+The following guides are provided to describe tasks that a user of
+ONAP may need to perform to configure a PNF or a VNF.
+
+Configuration includes the following topics:
+
+.. toctree::
+ :maxdepth: 1
+
+ Connect PNF to ONAP <./pnf_connect/index.rst>
+ Connect VNF to ONAP <./vnf_connect/index.rst>
+ Change PNF/VNF configuration <./change_config/index.rst>
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
+
+
+ONAP and PNF connection configuration
+=====================================
+
+The following guides are provided to describe tasks that a user of
+ONAP may need to perform to allow a PNF to communicate with ONAP.
+
+Pre-requisites
+--------------
+- PNF provides the appropriate API to perform the espected operations
+- ONAP and PNF are interconnected via a network
+- any firewall between ONAP and PNF is correctly configured
+
+TO BE COMPLETED
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
+
+
+ONAP and VNF connection configuration
+=====================================
+The following guides are provided to describe tasks that a user of
+ONAP may need to perform to allow a VNF to communicate with ONAP
+
+Pre-requisites
+--------------
+- VNF provides the appropriate API to perform the espected operations
+- ONAP and VNF are interconnected via a network
+- any firewall between ONAP and VNF is correctly configured
+
+TO BE COMPLETED
.. _doc_guide_user_des:
-Design
-======
+Design Service
+==============
The goal of the design process is to create all artifacts (models)
that are required to instantiate and manage resources, services,
cloud_site/index.rst
design/index.rst
instantiate/index.rst
+ configure/index.rst
onapcli.rst
Verified Use Cases <../../submodules/integration.git/docs/docs_usecases.rst>
+ Using ONAP Rest API with Postman <../../submodules/integration.git/docs/docs_postman.rst>
.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
-Instantiate
-===========
+Instantiate Service, PNF, VNF, Network
+======================================
The following guides are provided to describe tasks that a user of
ONAP may need to perform when instantiating a service.
Instantiation includes the following topics:
.. toctree::
- :maxdepth: 2
+ :maxdepth: 1
Pre-instantiation operations <./pre_instantiation/index.rst>
Instantiation operation(s) <./instantiation/index.rst>
-
-
-**e2eServiceInstance** method is a hard-coded approach with dedicated/specific
-service BPMN workflow. That means it is linked to ONAP source code
-and lifecycle.
-
-**A La Carte** method requires the Operations actor to build and send
-a lot of operations. To build those requests, Operator actor needs to
-define/collect by himself all VNF parameters/values.
-
-**Macro** method required the Operations actor to build and send only one
-request and, thanks to CDS Blueprint templates, ONAP will collect and assign
-all required parameters/values by itself.
.. International License. http://creativecommons.org/licenses/by/4.0
.. Copyright 2019 ONAP Contributors. All rights reserved.
-.. _doc_guide_user_ser_inst:
+Declare PNF instances:
-Service Instantiation methods
-=============================
+.. toctree::
+ :maxdepth: 1
+ Declare PNF instances <./pnf_instance/index.rst>
-Declare PNF instances:
+Instantiate a Service
.. toctree::
- :maxdepth: 2
+ :maxdepth: 1
+
+ Instantiate a Service <./service_instance/index.rst>
+
+
+Instantiate a VNF:
+
+.. toctree::
+ :maxdepth: 1
+
+ Instantiate a VNF <./vnf_instance/index.rst>
+
+Configure a VNF:
+
+.. toctree::
+ :maxdepth: 1
+
+ Configure a VNF <./vnf_configure/index.rst>
- Declare PNF instances <./pnf_instance/index.rst>
-Instantiate a Service:
+Instantiate a Virtual Link:
.. toctree::
- :maxdepth: 2
+ :maxdepth: 1
- using ONAP VID Portal with "A La Carte" method <./vid/index.rst>
- using ONAP UUI Portal with "e2eServiceInstance" method <./uui/index.rst>
- using ONAP NBI REST API (TM Forum) <./nbi/index.rst>
- using ONAP SO REST API with "A La Carte" method <./so1/index.rst>
- using ONAP SO REST API with "Macro" mode method <./so2/index.rst>
+ Instantiate a Virtual Link <./virtual_link_instance/index.rst>
-Declare PNF instances in ONAP
-=============================
+Declare PNF instances
+=====================
PNF instances can be declared in ONAP inventory (AAI) using REST API
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2019 ONAP Contributors. All rights reserved.
+
+
+Service Instantiation
+=====================
+
+**Pre-requisites**
+
+- the Service has been designed and distributed (see: Service Design)
+- pre-instantiation operations have been performed
+ (see: pre instantiation section)
+
+**Possible Tools to perform Service Instantiation**
+
+- **via a Graphical User Interface tool**
+ using ONAP applications such as **ONAP VID** and **ONAP UUI** tools
+
+- **via any tool able to perform REST API requests**
+ (for example : Robot Framework, Postman, Curl...) connected
+ to **ONAP SO** legacy API or **ONAP extAPI/NBI** standard TMF641 API
+ to add/delete Service.
+
+**Possible methods with ONAP to instantiate a Service**
+
+- **A La Carte**
+ method requires the user to build and send
+ operations **for each object** to instantiate : Service, VNFs,
+ VFModules and Networks (in other words : once you have instantiated
+ the Service object, you still have to instantiate the various VNFs
+ or Networks that compose your Service).
+ To build those requests, the user needs to define/collect by himself
+ all necessary parameters/values.
+
+- **Macro**
+ method allows the user to build and send
+ **only one request to instantiate all objects** : Service, VNFs,
+ VFModules and Networks. Thanks to templates (see CDS Blueprint in
+ Design section),
+ ONAP will collect and assign all required parameters/values by itself.
+
+
+ Note: **Macro** method is not (yet) available via ONAP VID
+ nor via extAPI/NBI
+
+With "A La Carte" method
+------------------------
+
+.. toctree::
+ :maxdepth: 1
+
+ using ONAP VID Portal <../vid/index.rst>
+ using ONAP NBI REST API (TM Forum) <../nbi/index.rst>
+ using ONAP SO REST API <../so1/index.rst>
+
+With "Macro" method
+-------------------
+
+.. toctree::
+ :maxdepth: 1
+
+ using ONAP SO REST API <../so2/index.rst>
A La Carte mode Service Instantiation via ONAP SO API
=====================================================
-Using ONAP SO API in "A La Carte" mode, you need to send several requests,
-depending on the service model composition.
+Using ONAP SO API in "A La Carte" mode, the user needs to send
+a request to instantiate the service object but also for each VNF/VF-module
+and network that compose the Service.
-For example, if your service model is composed of 2 VNF and a Network,
-you will have to build and send :
+ONAP will instantiate resources on Cloud platforms only when user is requesting
+to instantiate VF-module or Network (openstack neutron or contrail).
-* a request to SO to create the "service instance" object
-* a request to SO to create the VNF 1 instance object
-* a request to SDNC to declare VNF 1 instance parameters and values
- (SDNC preload)
-* a request to SO to create the Vf-module 1 instance object
-* a request to SO to create the VNF 2 instance object
-* a request to SDNC to declare VNF 2 instance parameters and values
- (SDNC preload)
-* a request to SO to create the Vf-module 2 instance object
-* a request to SO to create the Network instance object
+To instantiate a VF-module, it is required to have instantiated a VNF object.
+To instantiate a VNF object, it is required to have instantiated
+a Service object.
+To instantiate a Network object, it is required to have instantiated
+a Service object.
+
+**Requests**
+ * `Request to instantiate Service object`_
+ * `Request to instantiate VNF object`_
+ * `Requests to instantiate VF-module object`_
+ * `Requests to instantiate Neutron Network object`_
+ * `Requests to instantiate a Contrail Network object`_
+
+
+Request to instantiate Service object
+-------------------------------------
Example to request a service instance directly to ONAP SO
+::
-TO BE COMPLETED
+ curl -X POST \
+ http://so.api.simpledemo.onap.org:30277/onap/so/infra/serviceInstances/v7/serviceInstances \
+ -H 'Accept: application/json' \
+ -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
+ -H 'Content-Type: application/json' \
+ -H 'X-FromAppId: AAI' \
+ -H 'X-TransactionId: get_aai_subscr' \
+ -H 'cache-control: no-cache' \
+ -d '{
+ "requestDetails": {
+ "requestInfo": {
+ "instanceName": "integration_test_service_instance_001",
+ "source": "VID",
+ "suppressRollback": false,
+ "requestorId": "demo"
+ },
+ "modelInfo": {
+ "modelType": "service",
+ "modelInvariantId": "b0631a6c-ec7a-4f0c-a9ac-4423d9d67a7f",
+ "modelVersionId": "aafd5523-2cc5-4c86-957e-18bc37355f7a",
+ "modelName": "integration_test_ubuntu16",
+ "modelVersion": "1.0"
+ },
+ "cloudConfiguration": {
+ "tenantId": "3e3b55ca4c9948d1a9fa68715831c6bd",
+ "cloudOwner": "OPNFV",
+ "lcpCloudRegionId": "RegionOne"
+ },
+ "requestParameters": {
+ "userParams": [],
+ "testApi": "VNF_API",
+ "subscriptionServiceType": "integration_test_ubuntu16",
+ "aLaCarte": true
+ },
+ "subscriberInfo": {
+ "globalSubscriberId": "integration_test_customer"
+ },
+ "project": {
+ "projectName": "integration_test_project"
+ },
+ "owningEntity": {
+ "owningEntityId": "6b5b6b70-4e9a-4f6f-8b7b-cbd7cf990c6e",
+ "owningEntityName": "integration_test_OE"
+ }
+ }
+ }'
-H 'cache-control: no-cache'
-To instantiate a VNF, you need to build a complex request.
+Request to instantiate VNF object
+---------------------------------
+
+To instantiate a VNF, you need to build an other request.
All necessary parameters are available in the Tosca service template
generated by SDC when you defined your service model.
}
}'
+
+Requests to instantiate VF-module object
+----------------------------------------
+
To instantiate a VF module, you need to build two complex requests
All necessary parameters are available in the Tosca service template
generated by SDC when you defined your service model.
+Requests to instantiate Neutron Network object
+----------------------------------------------
+
To instantiate a Neutron Network, you need to build two complex request.
All necessary parameters are available in the Tosca service template
generated by SDC when you defined your service model.
-1st request is the "SDNC-preload" for a network object:
+1st request is the "SDNC-preload" for a neutron network object:
::
}'
-2nd request is to instantiate the network via ONAP SO
+2nd request is to instantiate the neutron network via ONAP SO
(instance name must be identical in both requests)
}]
}
}'
+
+
+Requests to instantiate a Contrail Network object
+-------------------------------------------------
+
+TO BE COMPLETED
Macro mode Service Instantiation via ONAP SO API
================================================
-Using Macro mode, you have to build and send only one request to ONAP SO
+Using Macro mode, you have to build and send one and only one
+request to ONAP SO.
In that request you need to indicate all object instances
that you want to be instantiated.
Reminder : ONAP SO in Macro mode will perform the VNF parameters/values
assignment based on CDS Blueprint templates
that are supposed to be defined during Design and Onboard steps.
-That means ONAP has all information
+That means ONAP should have all information
to be able to get all necessary values by itself (there is no longer need
-for an Operator to provide "SDNC preload").
+for a user to provide those values via the "SDNC preload" operation).
Additional info in:
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2019 ONAP Contributors. All rights reserved.
+
+
+Network Instantiation
+=====================
+
+Note: in ONAP SDC, network object is called "virtual link"
+
+**Various possible methods are available with ONAP to instantiate a network**
+
+- With **A La Carte**
+ method, the user needs to build and send a Network instantiation
+ request.
+
+ Note 1: prior to be able to send a request to instantiate
+ a Network, the user needs to instantiate a Service Object and then will
+ need to refer to that Service instance in the Network instantiate request.
+
+ Note 2: the request to instantiate the Network object will update
+ ONAP AAI (inventory) and will send a request to the selected Cloud Platform
+ (Openstack, Azure, K8S...).
+
+- With **Macro**
+ method, the user do not need to send any
+ Network instantiation request. Network instantiation is being automatically
+ performed by ONAP when sending the request to instantiate the Service
+ (see: Instantiate Service).
+
+**Possible Tools to perform Network Instantiation**
+
+the user needs such a tool only if using the "A La Carte" method.
+
+- **via ONAP VID Graphical User Interface tool**
+
+- **via any tool able to perform REST API requests**
+ (for example : Robot Framework, Postman, Curl...) connected
+ to **ONAP SO** legacy API.
+
+With "A La Carte" method
+------------------------
+
+.. toctree::
+ :maxdepth: 1
+
+ using ONAP VID Portal <../vid/index.rst>
+ using ONAP SO REST API <../so1/index.rst>
+
+With "Macro" method
+------------------------
+
+Network instantiation is performed automatically when performing
+Service Instantiation.
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2019 ONAP Contributors. All rights reserved.
+
+
+VNF Instantiation
+=================
+
+**Pre-requisites**
+
+- the VNF is part of a Service Model (see: Service Design)
+
+ Note: in ONAP SDC tool, VNF is named "VF"
+
+
+**Possible methods with ONAP to instantiate a VNF**
+
+- With **A La Carte**
+ method, the user needs to build and send a VNF instantiation
+ request.
+
+ Note 1: prior to be able to send a request to instantiate
+ a VNF, the user needs to instantiate a Service Object and then will
+ need to refer to that Service instance in the VNF instantiate request.
+
+ Note 2: after having instantiated the VNF object, the user needs to
+ instantiate a VF-module object, refering to the previously instantiated
+ VNF object.
+
+ Note 3: the request to instantiate the VF-module object will, at last, send
+ a request to the selected Cloud Platform (Openstack, Azure, K8S...).
+
+- With **Macro**
+ method, the user do not need to send any
+ VNF instantiation request. VNF instantiation is being automatically
+ performed by ONAP when sending the request to instantiate the Service
+ (see: Instantiate Service).
+
+
+**Possible Tools to perform VNF Instantiation**
+
+the user needs such a tool only if using the "A La Carte" method.
+
+- **via ONAP VID Graphical User Interface tool**
+
+- **via any tool able to perform REST API requests**
+ (for example : Robot Framework, Postman, Curl...) connected
+ to **ONAP SO** legacy API.
+
+With "A La Carte" method
+------------------------
+
+.. toctree::
+ :maxdepth: 1
+
+ using ONAP VID Portal <../vid/index.rst>
+ using ONAP SO REST API <../so1/index.rst>
+
+With "Macro" method
+------------------------
+
+VNF and VF-Module instantiation are performed automatically when performing
+Service Instantiation.
-Subproject commit aca17303a5c5df832b4c73acf8d818cd2c85bdd7
+Subproject commit ca0be7643ac60cac5cc9e967a3c39a3bc9a2ccb3
-Subproject commit c19785ed19245a586dc8f271713ae59248fd8f81
+Subproject commit fff2d1af7b401d6334c4b09868597dcc6c054e2b
-Subproject commit aead9be9cd5aad06f30f15a8c99d68a7108971c2
+Subproject commit 972397fd9860d9c19a5d2c66d082e431d827c7a6
-Subproject commit 5300156eb4c8065f32800946f791e93bb1db0ef0
+Subproject commit 9035495b03de1814d811f3a0c23959f55853616d
-Subproject commit f4df41d8ec1321d50b93368a407ad5c346889049
+Subproject commit 025c4a0d54daa3eb66886daec9495a8635ffbf45
-Subproject commit 8d3f825da365b672731e07c2b4560a67ec287a61
+Subproject commit d9034b6d720df4718b8d455949c17051ecae0558
-Subproject commit 1f6974b83c94c9760128ff7f02b713c0ec82787a
+Subproject commit 70638d1eb225acbc61e00ddbf9356aef38e8f143
-Subproject commit a56617de3c395d12fb013de468d14f3a0d769c2a
+Subproject commit 458a85ec8dab60092a91208030ef2b31b3e545d2
-Subproject commit d45b32fd84aed39798426423919115f8295813ad
+Subproject commit ed0e6be174e1445b6c47a69dccf25a642f17bdd7
-Subproject commit 352397d2713999b0020d96eaab300b2efb7d518c
+Subproject commit 0bbf3f4f7ee0ec5c0f09e6d07bc301622e51fc67
+++ /dev/null
-Subproject commit 0bb45f0d88abb94cadfcc462f31bc8c7453be204
+++ /dev/null
-Subproject commit 989fb459830c7a069433410870f8c1c6559b72ef
+++ /dev/null
-Subproject commit 988a69e42e01727cd0aa9296457ea23693a2eb09
+++ /dev/null
-Subproject commit 3b99f1c33173e4c68bd59e5cc88e8239cdeab38b
-Subproject commit 54fea7fe473270ba67e9053ef08a0be46c6416ce
+Subproject commit 13e8958238c4e7e870c04cca5035ba6d41b37889
-Subproject commit d53b78f51ed1a37f13163fe0ffd77ebd1c7f6f6f
+Subproject commit f249983a7cca64628f24a73092e813d2b4c18afc
-Subproject commit a60d80ff7bfae8a152c950486d9a1877628e13a4
+Subproject commit 632e4aaf606ca99ddc5a5cba11deb5e2ee2a90c5
-Subproject commit 67b3d8b885cbbf0826162480fda027c2f8121358
+Subproject commit d0f5883e6b2a615f12a2abd88dbf674ae1a6983f
-Subproject commit 9856ecbcee2c3714d0038cbbd6b7fbd6a2556a5a
+Subproject commit 98c392025b759d2ccc11f0d564331af4b5290ae4
-Subproject commit e466145e1c1e359a388f3bd2e15130941ac76c1e
+Subproject commit 6cec5272c3887bf998c56c5243f7ee6ee964e3fb
-Subproject commit cdcf2e46defa561b40ab2ccc47866a6c26b553dd
+Subproject commit cf9f837c619d2213665826a3ecb6f5c3c4f4ecc0
-Subproject commit 5825588251d7a8422242878ddd4a7e4d38c8a6fb
+Subproject commit 307eeee5bbc8838b345cde07c71c8c8fbbd5895a
-Subproject commit 149a9fb31eab12a86d28f73aaa2ba4a05343e0fe
+Subproject commit 51df70ea00e53e93f4fc337b3e9f4bfd28cf7b5d
-Subproject commit fe9304306bb9ca809950eda7df35654d3e8dcd3e
+Subproject commit f923c6bc0c7c33fe69347c4e6a929cd8045263a7
-Subproject commit 848132168436d54862ebc9ee008cc1a034e6a11d
+Subproject commit 5a2620962e6d2a572586de8da72a5a7676834130
-Subproject commit 09dffa6d151b046a87edcb91a46449cabc66532c
+Subproject commit 845cdd2aa5d790e57b0b2999180df4abc6724bf1
-Subproject commit 82779227eacce73d628ab779bb5b4a520b8ee467
+Subproject commit f3f773c1fab370a10d2d66eb4bcbd9a89a52ba16
-Subproject commit d21350b31eb300b37c89c6dcc04a89229d34af87
+Subproject commit 6b09bcaf2cea9abd3151dcf5dcd159ce684fc479
-Subproject commit ba5f7f0c456ef1804805302a813d964993b46827
+Subproject commit fd0a0ffc54d41029cbc8645b5702b36dead428dd
-Subproject commit c45208e505b860dcb3fd1025056b17a1982c50b2
+Subproject commit 0131effd6aec0e8f2c6fd1b9be485b68b47fc58a
-Subproject commit db6dc041db0aa8fbc5379299979dbd1d446ccc89
+Subproject commit 80133d27f21e27c8da4b3e8d635fb2c05f2f7721
-Subproject commit 0f079d2fa0cc68c3a682e0e0f73511dd576066ba
+Subproject commit 3a3086180abb951a2e0a919d4a38895b53ff332e
-Subproject commit f44b09b30d206b4b714971fd38599e8c8697cad8
+Subproject commit 4b7993a3e61c9afea0674ec6a81fb1bcb13c8189
-Subproject commit 610ff24fb145dc64e73a12d51901446b7b8be245
+Subproject commit d3d4e1d4df881ee382ba5ea6eddaeb36c077fc47
-Subproject commit d0d5690f13b9c794044bfe6bd7ac87557dd3dcea
+Subproject commit 527fe8bdac1f1c7c59738c598996dc8c842a22e3
-Subproject commit 3bc744e849fff5f599746f9035449b1940bdcdc7
+Subproject commit eb17f55341e7e46a63b1f45127cd4e97a7936f48
-Subproject commit 5f7ee971d8558b00c5c4e2182d63a5b8bb9b994d
+Subproject commit 3e103b792f9507d7e690c53dd2fabdd60d984c1e
-Subproject commit ae2694d30df3a7f62324ec7e617d23f187debcbb
+Subproject commit d73fe57f9e6a420ccf8f91cf188e8162ab881a07
-Subproject commit 15c7bc833ae91ed2590370dd001d5361149aef9a
+Subproject commit d652e65a43f3236abc30d55b040e13716aefe3a5
+++ /dev/null
-Subproject commit 60382c78c8a88ee5b5aa1c7e2d6cb4e32eddc10f
-Subproject commit 8efaf0a28dc2b26be9871ccfd1a376e34b372bb6
+Subproject commit 4dd1133ef94b2135fa12cbbc653c3b8669b37656
-Subproject commit 5a67813844dd4831a1a68f739e03a073473f3206
+Subproject commit cace8dc13a79959d0ad045113d0e0db96c3ea9b1
-Subproject commit 95ea3bac38467090417056254ef6e4b3165e27d7
+Subproject commit c939ac9eba0dba965fd0e61839676d8906ffeeeb
+++ /dev/null
-Subproject commit c4fe8aff6c5984df5ff4bf1482d8a213030509e7
-Subproject commit a3e1f009032c64fb27ed6ba1997d668d36c95dbf
+Subproject commit 35e9f91d0671464a23c0e3cb5fa46895b32f64ab
-Subproject commit 4fd0e98f62594198ba240265634a3302c3d257ef
+Subproject commit 2d314a01d7f46ccefc18b89f9b661ff15bccc0d7