PCD added

This commit is contained in:
NicolasCantu 2024-02-21 13:12:29 +01:00
parent 4bfc68e670
commit d9ddef9ce8
4 changed files with 634 additions and 44 deletions

View File

@ -6,33 +6,41 @@
* 4.1. [Création et envoi](#Crationetenvoi) * 4.1. [Création et envoi](#Crationetenvoi)
* 4.2. [Réception](#Rception) * 4.2. [Réception](#Rception)
* 5. [Fonction des RequestPcd](#FonctiondesRequestPcd) * 5. [Fonction des RequestPcd](#FonctiondesRequestPcd)
* 5.1. [Création et envoi](#Crationetenvoi-1) * 5.1. [Schéma des flux](#Schmadesflux)
* 5.2. [Réception](#Rception-1) * 5.2. [Création et envoi](#Crationetenvoi-1)
* 5.3. [Réception](#Rception-1)
* 6. [Fonction des RequestPrd](#FonctiondesRequestPrd) * 6. [Fonction des RequestPrd](#FonctiondesRequestPrd)
* 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles) * 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles)
* 6.2. [Création et envoi](#Crationetenvoi-1) * 6.2. [Création et envoi](#Crationetenvoi-1)
* 6.3. [Réception](#Rception-1) * 6.3. [Réception](#Rception-1)
* 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd) * 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd)
* 7.1. [Création : Datas spécifiques](#Cration:Datasspcifiques) * 7.1. [Schéma des flux](#Schmadesflux-1)
* 7.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques) * 7.2. [Création : Datas spécifiques](#Cration:Datasspcifiques)
* 7.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques)
* 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages) * 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages)
* 8.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) * 8.1. [Schéma des flux](#Schmadesflux-1)
* 8.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 8.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 8.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd) * 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd)
* 9.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) * 9.1. [Schéma des flux](#Schmadesflux-1)
* 9.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 9.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 9.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception) * 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception)
* 10.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) * 10.1. [Schéma des flux](#Schmadesflux-1)
* 10.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 10.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 10.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande) * 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande)
* 11.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) * 11.1. [Schéma des flux](#Schmadesflux-1)
* 11.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 11.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 11.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 12. [RequestPrdKeyBakcup](#RequestPrdKeyBakcup) * 12. [RequestPrdKeyBakcup](#RequestPrdKeyBakcup)
* 12.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) * 12.1. [Schéma des flux](#Schmadesflux-1)
* 12.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 12.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 12.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits) * 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits)
* 13.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) * 13.1. [Schéma des flux](#Schmadesflux-1)
* 13.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 13.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 13.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 14. [Exemples de Code](#ExemplesdeCode) * 14. [Exemples de Code](#ExemplesdeCode)
* 15. [Todo](#Todo) * 15. [Todo](#Todo)
@ -88,7 +96,13 @@ Les Portable Contract Documents ( RequestPcd) sont des documents JSON qui encaps
Les `Item` ainsi échangés via les `RequestPcd` sont vérifiés par les `RequestPrdResponse` afin de vérifier les validations de ces données et leurs conformités avec les `ItemProcess` et les `members` concernés. Les `Item` ainsi échangés via les `RequestPcd` sont vérifiés par les `RequestPrdResponse` afin de vérifier les validations de ces données et leurs conformités avec les `ItemProcess` et les `members` concernés.
### 5.1. <a name='Crationetenvoi-1'></a>Création et envoi ### 5.1. <a name='Schmadesflux'></a>Schéma des flux
Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma.
![RequestPcd](diagrams/PCD.png "RequestPcd")
### 5.2. <a name='Crationetenvoi-1'></a>Création et envoi
La création d'un `RequestPcd` suit plusieurs étapes : La création d'un `RequestPcd` suit plusieurs étapes :
@ -108,7 +122,7 @@ La création d'un `RequestPcd` suit plusieurs étapes :
| `RequestPrdKeyBackup` | No | No | No | all the members of the `SharedProcess` | No | Yes | No | | `RequestPrdKeyBackup` | No | No | No | all the members of the `SharedProcess` | No | Yes | No |
| `RequestPrdKeyHello` | No | No | No | all the members of all `Role` into to `ItemProcess` | Yes | Yes | Yes | | `RequestPrdKeyHello` | No | No | No | all the members of all `Role` into to `ItemProcess` | Yes | Yes | Yes |
### 5.2. <a name='Rception-1'></a>Réception ### 5.3. <a name='Rception-1'></a>Réception
La réception d'un `RequestPcd` suit plusieurs étapes : La réception d'un `RequestPcd` suit plusieurs étapes :
@ -199,18 +213,18 @@ La réception d'un `RequestPcd` suit plusieurs étapes :
Utile pour les utilisateurs cherchant à consulter ou à explorer des listes de contrats, de membres, ou d'autres items dans le résweau. Chaque `RequestPcd` liste des `Item` d'un même type, par exemple les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc. Utile pour les utilisateurs cherchant à consulter ou à explorer des listes de contrats, de membres, ou d'autres items dans le résweau. Chaque `RequestPcd` liste des `Item` d'un même type, par exemple les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc.
### Schéma des flux ### 7.1. <a name='Schmadesflux-1'></a>Schéma des flux
Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma.
![RequestPrdList](diagrams/PRDList.png "RequestPrdList") ![RequestPrdList](diagrams/PRDList.png "RequestPrdList")
### 7.1. <a name='Cration:Datasspcifiques'></a>Création : Datas spécifiques ### 7.2. <a name='Cration:Datasspcifiques'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` 1. Traitements des `RequestPrd`, avec le `type_request`
2. Pas de data spécifiques. 2. Pas de data spécifiques.
### 7.2. <a name='Rception:Datasspcifiques'></a>Réception : Datas spécifiques ### 7.3. <a name='Rception:Datasspcifiques'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdList` suit plusieurs étapes : La réception d'un `RequestPrdList` suit plusieurs étapes :
@ -228,19 +242,19 @@ Permet la communication :
Les `RequestPrdMessage` répondent aux `RequestPrdMessage` sauf en cas d'envoi de `raw_transaction_list` (cas d'utilisation du afin de transaférer la `transaction SP` d'un autre `RequestPrd`). Les `RequestPrdMessage` répondent aux `RequestPrdMessage` sauf en cas d'envoi de `raw_transaction_list` (cas d'utilisation du afin de transaférer la `transaction SP` d'un autre `RequestPrd`).
### Schéma des flux ### 8.1. <a name='Schmadesflux-1'></a>Schéma des flux
Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma.
Cas d'un RequestPrdMesage avec `raw_transaction_list` vide (et son RequestPrdMessage avec `raw_transaction_list` non vide). Cas d'un RequestPrdMesage avec `raw_transaction_list` vide (et son RequestPrdMessage avec `raw_transaction_list` non vide).
![RequestPrdMessage](diagrams/PRDMessage.png "RequestPrdMessage") ![RequestPrdMessage](diagrams/PRDMessage.png "RequestPrdMessage")
### 8.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques ### 8.2. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage` 1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage`
2. Cas de la transmission d'une `Transaction SP` d'un autre vRequestPrd` au format `raw` dans l'attribut `raw_transaction_list` pour la publication de la transaction dans la side chain. 2. Cas de la transmission d'une `Transaction SP` d'un autre vRequestPrd` au format `raw` dans l'attribut `raw_transaction_list` pour la publication de la transaction dans la side chain.
### 8.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques ### 8.3. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
@ -256,18 +270,18 @@ Par exemple, mettre à jour la liste des membres permet d'ajouter de nouveaux ut
Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_version_hash` les nouvelles version des RequestPcd. Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_version_hash` les nouvelles version des RequestPcd.
### Schéma des flux ### 9.1. <a name='Schmadesflux-1'></a>Schéma des flux
Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma.
![RequestPrdUpdate](diagrams/PRDUpdate.png "RequestPrdUpdate") ![RequestPrdUpdate](diagrams/PRDUpdate.png "RequestPrdUpdate")
### 9.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques ### 9.2. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdUpdate` 1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdUpdate`
2. Pas de data spécifiques. 2. Pas de data spécifiques.
### 9.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques ### 9.3. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdUpdate` suit plusieurs étapes : La réception d'un `RequestPrdUpdate` suit plusieurs étapes :
@ -282,16 +296,16 @@ Les `RequestPrdList`, `RequestPrdUpdate`, `RequestPrdMessage`, `RequestPrdRespon
`code_confirm_enc_by_shared_secret`: Un code de confirmation chiffré qui valide l'authenticité et l'intégrité de la réponse, assurant que la confirmation est sécurisée et provient de la source attendue. Dans ce cas un output spécifique chiffré par la clé `KeyConfidential` précise ce code, à confirmer dans le RequestPrdConfirm. `code_confirm_enc_by_shared_secret`: Un code de confirmation chiffré qui valide l'authenticité et l'intégrité de la réponse, assurant que la confirmation est sécurisée et provient de la source attendue. Dans ce cas un output spécifique chiffré par la clé `KeyConfidential` précise ce code, à confirmer dans le RequestPrdConfirm.
### Schéma des flux ### 10.1. <a name='Schmadesflux-1'></a>Schéma des flux
![RequestPrdConfirm](diagrams/PRDConfirm.png "RequestPrdConfirm") ![RequestPrdConfirm](diagrams/PRDConfirm.png "RequestPrdConfirm")
### 10.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques ### 10.2. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm` 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm`
2. Communication éventuelle d'un `code_confirm_enc_by_shared_secret` à confirmer dans le `RequestPrdConfirm`. 2. Communication éventuelle d'un `code_confirm_enc_by_shared_secret` à confirmer dans le `RequestPrdConfirm`.
### 10.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques ### 10.3. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd`, pas de traitement suppplémentaire. 1. Traitements des `RequestPrd`, pas de traitement suppplémentaire.
2. Vérification du `code_confirm_enc_by_shared_secret` dans le `RequestPrdConfirm` reçu. 2. Vérification du `code_confirm_enc_by_shared_secret` dans le `RequestPrdConfirm` reçu.
@ -306,20 +320,20 @@ Utilisé pour fournir des feedbacks, des confirmations, ou des instructions supp
Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, puis de partager le payload de ces actions. Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, puis de partager le payload de ces actions.
### Schéma des flux ### 11.1. <a name='Schmadesflux-1'></a>Schéma des flux
Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma.
![RequestPrdResponse](diagrams/PRDResponse.png "RequestPrdResponse") ![RequestPrdResponse](diagrams/PRDResponse.png "RequestPrdResponse")
### 11.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques ### 11.2. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse` 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse`
2. Attente de la valeur de la signature de l'utilisateur `sig_value` (si non automatique) 2. Attente de la valeur de la signature de l'utilisateur `sig_value` (si non automatique)
3. En cas de réponse à `RequestPrdKeyBackup` :`pre_id_enc_by_sp_shared_secret` avec les shards correspondants à la `pre-id` demandée. 3. En cas de réponse à `RequestPrdKeyBackup` :`pre_id_enc_by_sp_shared_secret` avec les shards correspondants à la `pre-id` demandée.
4. (option) `shared_secret_key` paratage d'une clé de chiffrement ad'hoc 4. (option) `shared_secret_key` paratage d'une clé de chiffrement ad'hoc
### 11.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques ### 11.3. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Vérification des conditions de validation des RequestPcd associés. 2. Vérification des conditions de validation des RequestPcd associés.
@ -329,18 +343,18 @@ Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le sch
Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` . Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` .
### Schéma des flux ### 12.1. <a name='Schmadesflux-1'></a>Schéma des flux
![RequestPrdKeyBakcup](diagrams/PRDKeyBakcup.png "RequestPrdKeyBakcup") ![RequestPrdKeyBakcup](diagrams/PRDKeyBakcup.png "RequestPrdKeyBakcup")
### 12.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques ### 12.2. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyBakcup` 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyBakcup`
2. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pre_id 2. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pre_id
2.1. Mise à jour de `pre_id_enc_by_sp_shared_secret` 2.1. Mise à jour de `pre_id_enc_by_sp_shared_secret`
2.2. Mise à jour de `shard_enc_by_sp_shared_secret` 2.2. Mise à jour de `shard_enc_by_sp_shared_secret`
### 12.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques ### 12.3. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Voir [Auth-Specs.md](Auth-Specs.md) 2. Voir [Auth-Specs.md](Auth-Specs.md)
@ -353,16 +367,16 @@ RequestPrdKeyHello est conçu pour initier ou répondre à des demandes d'échan
Important pour les processus d'onboarding de nouveaux membres, de réinitialisation des accès, ou de renouvellement des clés, facilitant une intégration sécurisée et la mise à jour des identités dans le réseau. Important pour les processus d'onboarding de nouveaux membres, de réinitialisation des accès, ou de renouvellement des clés, facilitant une intégration sécurisée et la mise à jour des identités dans le réseau.
### Schéma des flux ### 13.1. <a name='Schmadesflux-1'></a>Schéma des flux
![RequestPrdKeyHello](diagrams/PRDKeyHello.png "RequestPrdKeyHello") ![RequestPrdKeyHello](diagrams/PRDKeyHello.png "RequestPrdKeyHello")
### 13.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques ### 13.2. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello` 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello`
2. Voir [Auth-Specs.md](Auth-Specs.md) pour ma mise à jour de `pre_id_enc_by_sp_shared_secret` 2. Voir [Auth-Specs.md](Auth-Specs.md) pour ma mise à jour de `pre_id_enc_by_sp_shared_secret`
### 13.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques ### 13.3. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Voir [Auth-Specs.md](Auth-Specs.md) 2. Voir [Auth-Specs.md](Auth-Specs.md)

View File

@ -0,0 +1,295 @@
<mxfile host="Electron" modified="2024-02-21T12:10:46.222Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.1.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="HrZZ3Lo8jTvOJ2GRapGZ" version="23.1.5" type="device">
<diagram name="Page-1" id="2YBvvXClWsGukQMizWep">
<mxGraphModel dx="1434" dy="1970" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="MqokN8DVP6Cu9g1BAX3J-285" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;pointerEvents=1;fontColor=#000000;rotation=-180;" parent="1" vertex="1">
<mxGeometry x="1355" y="175" width="150" height="105" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-259" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="986" y="163" as="sourcePoint" />
<Array as="points">
<mxPoint x="901" y="163" />
</Array>
<mxPoint x="816" y="163" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-258" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="844" y="223" as="sourcePoint" />
<Array as="points">
<mxPoint x="929" y="223" />
</Array>
<mxPoint x="1014" y="223" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-208" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="995" y="205" as="sourcePoint" />
<Array as="points">
<mxPoint x="1080" y="205" />
</Array>
<mxPoint x="1165" y="205" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-5" value="call" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="275" y="145" as="sourcePoint" />
<Array as="points">
<mxPoint x="360" y="145" />
</Array>
<mxPoint x="445" y="145" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-12" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="455" y="205" as="sourcePoint" />
<Array as="points">
<mxPoint x="540" y="205" />
</Array>
<mxPoint x="625" y="205" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-18" value="MessageConnect" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="635" y="143" as="sourcePoint" />
<Array as="points">
<mxPoint x="720" y="143" />
</Array>
<mxPoint x="800" y="143" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-23" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1120" y="40" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-24" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-23" vertex="1">
<mxGeometry x="45" y="101" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-31" value=":Wasm" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1300" y="40" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-32" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-31" vertex="1">
<mxGeometry x="45" y="101" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-37" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1345" y="141" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-52" value="USER A" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="40" y="-41" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-53" value="RELAYs PCD/PRD" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="760" y="-40" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-54" value="USER B" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1119" y="-40" width="641" height="39" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-193" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;pointerEvents=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="310" y="188" width="135" height="50" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-194" value="RequestPcd" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="351.5" y="193" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-195" value="MessageConnect" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="456" y="145" as="sourcePoint" />
<Array as="points">
<mxPoint x="541" y="145" />
</Array>
<mxPoint x="626" y="145" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-196" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="636" y="163" as="sourcePoint" />
<Array as="points">
<mxPoint x="721" y="163" />
</Array>
<mxPoint x="806" y="163" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-198" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="455" y="164" as="sourcePoint" />
<Array as="points">
<mxPoint x="540" y="164" />
</Array>
<mxPoint x="625" y="164" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-203" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="636" y="206" as="sourcePoint" />
<Array as="points">
<mxPoint x="721" y="206" />
</Array>
<mxPoint x="806" y="206" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-204" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="816" y="206" as="sourcePoint" />
<Array as="points">
<mxPoint x="901" y="206" />
</Array>
<mxPoint x="986" y="206" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-212" value="RequestPcdConfrm" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="1380" y="189.5" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-215" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1176" y="205" as="sourcePoint" />
<Array as="points">
<mxPoint x="1261" y="205" />
</Array>
<mxPoint x="1346" y="205" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-223" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="634" y="223" as="sourcePoint" />
<Array as="points">
<mxPoint x="719" y="223" />
</Array>
<mxPoint x="804" y="223" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-224" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="453" y="224" as="sourcePoint" />
<Array as="points">
<mxPoint x="538" y="224" />
</Array>
<mxPoint x="623" y="224" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-40" value=":JS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1480" y="40" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-41" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-40" vertex="1">
<mxGeometry x="45" y="67.37" width="10" height="192.63" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-46" value=":Page" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1660" y="40" width="100" height="520" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-47" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-46" vertex="1">
<mxGeometry x="45" y="100" width="10" height="340" as="geometry" />
</mxCell>
<mxCell id="UaradclDddL_qDXI0ZBg-1" value="Waiting for RequestPrdResponses" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1360" y="238" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UaradclDddL_qDXI0ZBg-2" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="760" y="42.54" width="595" height="317.46" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-29" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1">
<mxGeometry x="405" y="60.40658088235295" width="10" height="207.9740073529412" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-38" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1">
<mxGeometry x="585" y="60.40658088235295" width="10" height="207.9740073529412" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-219" value="" style="group;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1" connectable="0">
<mxGeometry x="180" width="130" height="317.46" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-116" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-135" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="45" y="61.349264705882355" width="10" height="190.1827205882353" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-169" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="10" y="9.62" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-170" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-169" vertex="1">
<mxGeometry x="45" y="55.21433823529412" width="10" height="190.1827205882353" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-171" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="20" y="19.24" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-172" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-171" vertex="1">
<mxGeometry x="45" y="49.07941176470588" width="10" height="196.31764705882352" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-173" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="30" y="28.859999999999992" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-174" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-173" vertex="1">
<mxGeometry x="45" y="49.07941176470588" width="10" height="191.42197573529413" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-220" value="" style="group;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1" connectable="0">
<mxGeometry width="130" height="317.46" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-16" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-115" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="45" y="61.349264705882355" width="10" height="190.1827205882353" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-159" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="10" y="9.62" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-160" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-159" vertex="1">
<mxGeometry x="45" y="55.21433823529412" width="10" height="196.31764705882352" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-161" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="20" y="19.24" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-162" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-161" vertex="1">
<mxGeometry x="45" y="49.07941176470588" width="10" height="196.31764705882352" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-163" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="30" y="28.859999999999996" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-164" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-163" vertex="1">
<mxGeometry x="45" y="42.94448529411765" width="10" height="197.55690220588235" as="geometry" />
</mxCell>
<mxCell id="UaradclDddL_qDXI0ZBg-3" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="40" y="40" width="640" height="320" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-5" value=":JS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1">
<mxGeometry x="180" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-6" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="aM9ryv3xv72pqoxQDRHE-5" vertex="1">
<mxGeometry x="45" y="49.23076923076923" width="10" height="246.15384615384616" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-3" value=":Wasm" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1">
<mxGeometry x="360" y="2.119205298013246" width="100" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-3" vertex="1">
<mxGeometry x="45" y="47.38461538461539" width="10" height="248" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-10" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1">
<mxGeometry x="540" y="2.119205298013246" width="100" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-11" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-10" vertex="1">
<mxGeometry x="45" y="47.38461538461539" width="10" height="248" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-249" value="" style="group;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1" connectable="0">
<mxGeometry width="235" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-1" value=":Page" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-249" vertex="1">
<mxGeometry width="100" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-2" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="aM9ryv3xv72pqoxQDRHE-1" vertex="1">
<mxGeometry x="45" y="49.23076923076923" width="10" height="246.15384615384616" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-3" value="dispatch" style="html=1;verticalAlign=bottom;startArrow=oval;endArrow=block;startSize=8;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fontColor=#000000;" parent="aM9ryv3xv72pqoxQDRHE-1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-15" y="63.19307182883341" as="sourcePoint" />
<mxPoint x="45" y="63.07692307692308" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-7" value="button" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" source="aM9ryv3xv72pqoxQDRHE-2" target="aM9ryv3xv72pqoxQDRHE-6" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="195" y="92.92307692307693" as="sourcePoint" />
<Array as="points">
<mxPoint x="180" y="86.76923076923077" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

281
doc/diagrams/PCD.drawio Normal file
View File

@ -0,0 +1,281 @@
<mxfile host="Electron" modified="2024-02-21T12:10:53.670Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.1.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="IyQdnxG2WPOJVbsl1ceX" version="23.1.5" type="device">
<diagram name="Page-1" id="2YBvvXClWsGukQMizWep">
<mxGraphModel dx="1434" dy="1970" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="MqokN8DVP6Cu9g1BAX3J-285" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;pointerEvents=1;fontColor=#000000;rotation=-180;" parent="1" vertex="1">
<mxGeometry x="1355" y="175" width="150" height="105" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-259" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="986" y="163" as="sourcePoint" />
<Array as="points">
<mxPoint x="901" y="163" />
</Array>
<mxPoint x="816" y="163" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-258" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="844" y="223" as="sourcePoint" />
<Array as="points">
<mxPoint x="929" y="223" />
</Array>
<mxPoint x="1014" y="223" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-208" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="995" y="205" as="sourcePoint" />
<Array as="points">
<mxPoint x="1080" y="205" />
</Array>
<mxPoint x="1165" y="205" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-5" value="call" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="275" y="145" as="sourcePoint" />
<Array as="points">
<mxPoint x="360" y="145" />
</Array>
<mxPoint x="445" y="145" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-12" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="455" y="205" as="sourcePoint" />
<Array as="points">
<mxPoint x="540" y="205" />
</Array>
<mxPoint x="625" y="205" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-18" value="MessageConnect" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="635" y="143" as="sourcePoint" />
<Array as="points">
<mxPoint x="720" y="143" />
</Array>
<mxPoint x="800" y="143" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-23" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1120" y="40" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-24" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-23" vertex="1">
<mxGeometry x="45" y="101" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-31" value=":Wasm" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1300" y="40" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-32" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-31" vertex="1">
<mxGeometry x="45" y="101" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-37" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1345" y="141" width="10" height="170" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-52" value="USER A" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="40" y="-41" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-53" value="RELAYs PCD/PRD" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="760" y="-40" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-54" value="USER B" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1119" y="-40" width="641" height="39" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-193" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;pointerEvents=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="310" y="188" width="135" height="50" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-194" value="RequestPcd" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="351.5" y="193" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-195" value="MessageConnect" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="456" y="145" as="sourcePoint" />
<Array as="points">
<mxPoint x="541" y="145" />
</Array>
<mxPoint x="626" y="145" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-196" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="636" y="163" as="sourcePoint" />
<Array as="points">
<mxPoint x="721" y="163" />
</Array>
<mxPoint x="806" y="163" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-198" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="455" y="164" as="sourcePoint" />
<Array as="points">
<mxPoint x="540" y="164" />
</Array>
<mxPoint x="625" y="164" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-203" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="636" y="206" as="sourcePoint" />
<Array as="points">
<mxPoint x="721" y="206" />
</Array>
<mxPoint x="806" y="206" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-204" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="816" y="206" as="sourcePoint" />
<Array as="points">
<mxPoint x="901" y="206" />
</Array>
<mxPoint x="986" y="206" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-212" value="RequestPcdConfrm" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="1380" y="189.5" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-215" value="Message" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1176" y="205" as="sourcePoint" />
<Array as="points">
<mxPoint x="1261" y="205" />
</Array>
<mxPoint x="1346" y="205" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-223" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="634" y="223" as="sourcePoint" />
<Array as="points">
<mxPoint x="719" y="223" />
</Array>
<mxPoint x="804" y="223" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-224" value="TxFaucet" style="html=1;verticalAlign=bottom;endArrow=none;edgeStyle=elbowEdgeStyle;elbow=horizontal;curved=0;rounded=0;startArrow=classic;startFill=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontColor=#000000;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="453" y="224" as="sourcePoint" />
<Array as="points">
<mxPoint x="538" y="224" />
</Array>
<mxPoint x="623" y="224" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-40" value=":JS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1480" y="40" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-41" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-40" vertex="1">
<mxGeometry x="45" y="67.37" width="10" height="192.63" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-46" value=":Page" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1660" y="40" width="100" height="520" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-47" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-46" vertex="1">
<mxGeometry x="45" y="100" width="10" height="340" as="geometry" />
</mxCell>
<mxCell id="UaradclDddL_qDXI0ZBg-1" value="Waiting for RequestPrdResponses" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1360" y="238" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="UaradclDddL_qDXI0ZBg-2" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="760" y="42.54" width="595" height="317.46" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-29" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1">
<mxGeometry x="405" y="60.40658088235295" width="10" height="207.9740073529412" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-38" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1">
<mxGeometry x="585" y="60.40658088235295" width="10" height="207.9740073529412" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-219" value="" style="group;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1" connectable="0">
<mxGeometry x="180" width="130" height="317.46" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-116" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-135" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="45" y="61.349264705882355" width="10" height="190.1827205882353" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-169" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="10" y="9.62" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-170" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-169" vertex="1">
<mxGeometry x="45" y="55.21433823529412" width="10" height="190.1827205882353" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-171" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="20" y="19.24" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-172" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-171" vertex="1">
<mxGeometry x="45" y="49.07941176470588" width="10" height="196.31764705882352" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-173" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-219" vertex="1">
<mxGeometry x="30" y="28.859999999999992" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-174" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-173" vertex="1">
<mxGeometry x="45" y="49.07941176470588" width="10" height="191.42197573529413" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-220" value="" style="group;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-2" vertex="1" connectable="0">
<mxGeometry width="130" height="317.46" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-16" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-115" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="45" y="61.349264705882355" width="10" height="190.1827205882353" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-159" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="10" y="9.62" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-160" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-159" vertex="1">
<mxGeometry x="45" y="55.21433823529412" width="10" height="196.31764705882352" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-161" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="20" y="19.24" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-162" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-161" vertex="1">
<mxGeometry x="45" y="49.07941176470588" width="10" height="196.31764705882352" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-163" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-220" vertex="1">
<mxGeometry x="30" y="28.859999999999996" width="100" height="288.5999999999999" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-164" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-163" vertex="1">
<mxGeometry x="45" y="42.94448529411765" width="10" height="197.55690220588235" as="geometry" />
</mxCell>
<mxCell id="UaradclDddL_qDXI0ZBg-3" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="40" y="40" width="640" height="320" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-5" value=":JS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1">
<mxGeometry x="180" width="100" height="320" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-6" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="aM9ryv3xv72pqoxQDRHE-5" vertex="1">
<mxGeometry x="45" y="49.23076923076923" width="10" height="246.15384615384616" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-3" value=":Wasm" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1">
<mxGeometry x="360" y="2.119205298013246" width="100" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-3" vertex="1">
<mxGeometry x="45" y="47.38461538461539" width="10" height="248" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-10" value=":WS" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1">
<mxGeometry x="540" y="2.119205298013246" width="100" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-11" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-10" vertex="1">
<mxGeometry x="45" y="47.38461538461539" width="10" height="248" as="geometry" />
</mxCell>
<mxCell id="MqokN8DVP6Cu9g1BAX3J-249" value="" style="group;fontColor=#000000;" parent="UaradclDddL_qDXI0ZBg-3" vertex="1" connectable="0">
<mxGeometry width="235" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-1" value=":Page" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="MqokN8DVP6Cu9g1BAX3J-249" vertex="1">
<mxGeometry width="100" height="317.88079470198676" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-2" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};fontColor=#000000;" parent="aM9ryv3xv72pqoxQDRHE-1" vertex="1">
<mxGeometry x="45" y="49.23076923076923" width="10" height="246.15384615384616" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
doc/diagrams/PCD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB