Relay Message Received diagram added (doc)

This commit is contained in:
NicolasCantu 2024-03-19 15:41:48 +01:00
parent d61b3355a7
commit 193106453f
22 changed files with 952 additions and 3679 deletions

View File

@ -1,4 +1,8 @@
<!-- vscode-markdown-toc -->
<!-- vscode-markdown-toc-config
numbering=true
autoSave=true
/vscode-markdown-toc-config -->
<!-- /vscode-markdown-toc -->
* 1. [Objectif](#Objectif)
* 2. [Portée](#Porte)
* 3. [3. Documents de référence](#Documentsderfrence)
@ -27,7 +31,7 @@
* 9. [Traitement des messages de type `Message` par les relais](#TraitementdesmessagesdetypeMessageparlesrelais)
* 9.1. [Broadcast des messages de type `Message` vers les relais](#BroadcastdesmessagesdetypeMessageverslesrelais)
* 9.2. [Broadcast des messages de type `Message` vers les clients connectés](#BroadcastdesmessagesdetypeMessageverslesclientsconnects)
* 10. [Connexions aux réseaux de noeuds de bitcoin de réseaux side chain ou mainnet](#Connexionsauxrseauxdenoeudsdebitcoinderseauxsidechainoumainnet)
* 10. [Connexions aux réseaux de noeuds de bitcoin de réseaux side chain ou mainnet](#ConnexionsauxrseauxdenoeudsdeBitcoinderseauxsidechainoumainnet)
* 10.1. [Protocole de Découverte des Pairs](#ProtocoledeDcouvertedesPairs)
* 10.2. [Protocole de Transmission des Transactions](#ProtocoledeTransmissiondesTransactions)
* 10.3. [Protocole de Partage des Blocs](#ProtocoledePartagedesBlocs)
@ -44,353 +48,165 @@
* 12. [Exemples de Code](#ExemplesdeCode)
* 13. [Todo](#Todo)
<!-- vscode-markdown-toc-config
numbering=true
autoSave=true
/vscode-markdown-toc-config -->
<!-- /vscode-markdown-toc --># Auth - Specs
## 1. <a name='Objectif'></a>1. Objectif
## 1. <a name='Objectif'></a>Objectif
L'objectif de ce document est de décrire les spécifications techniques des messages de type `Message` et `MessageConnect` pour le réseau de relais et les clients.
L'objectif de ce document est de décrire les spécifications techniques des messages de type `Message` et de type `MessageConnect` pour le réseau de relais et les clients.
## 2. <a name='Porte'></a>2. Portée
## 2. <a name='Porte'></a>Portée
Ce document concerne les messages de type `Message` et de type `MessageConnect` pour le réseau de relais et les clients.
Ce document concerne les messages de type `Message` et `MessageConnect` pour le réseau de relais et les clients.
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
Voir [_Doc_references.md](_Doc_references.md).
## 4. <a name='VariableSharedPeerListduSDKWasm'></a>## Variable `SharedPeerList` du SDK (Wasm)
## 4. <a name='VariableSharedPeerListduSDKWasm'></a>4. Variable `SharedPeerList` du SDK (Wasm)
La variable `SharedPeerList` du SDK (Wasm) est une liste de relais partagée avec les relais, c'est la première liste disponible, en dur fournie par le relais sur lequel on est connecté.
La variable `SharedPeerList` du SDK (Wasm) est une liste de relais partagée avec les relais, constituant la première liste disponible, fournie en dur par le relais auquel on est connecté.
## 5. <a name='Structuredustockageencache'></a>Structure du stockage en cache
## 5. <a name='CaractristiquesgnralesdesmessagesdetypeMessageetMessageConnect'></a>6. Caractéristiques générales des messages de type `Message` et `MessageConnect`
### 5.1. <a name='Relais'></a>Relais
### 5.1. <a name='SharedPeerList'></a>6.1. SharedPeerList
Le cache est constitué de 2 parties :
`SharedPeerList` est une liste de relais partagée entre les relais et les clients, complétée au fur et à mesure de leur découverte de nouveaux relais.
1. `public` :
* Liste partagée des relais avec les relais (agrégée au fil des relais découverts par le partage des listes de relais dans les messages).
* L'historique des pings des relais (timestamp, valeur du ping, relais concerné).
* L'historique de message reçus ne satisfaisant pas à l'arbitrage (timestamp, hash du message, relais concerné).
* L'historique de message envoyés sans retour d'une transaction Silent Payment (SP).
2. `private` :
* Liste non partagée des relais (agrégée à partir de relais communiqués de façon confidentielle).
* L'historique des pings des relais (timestamp, valeur du ping, relais concerné).
* L'historique de message reçus ne satisfaisant pas à l'arbitrage (timestamp, hash du message, relais concerné).
* L'historique de message envoyés sans retour d'une transaction Silent Payment (SP).
### 5.2. <a name='SharedProcessList'></a>6.2. SharedProcessList
Voir [ClientDataModel.md](ClientDataModel.md).
`SharedProcessList` est une liste de `ItemProcess` partagée entre les relais et les clients, complétée au fur et à mesure de leur découverte de nouveaux `ItemProcess`.
### 5.2. <a name='Process'></a>Process
### 5.3. <a name='Tailledesdonnes'></a>6.3. Taille des données
Le cache est constitué de 2 parties :
Les objets `SharedPeer` spécifient la taille maximale des données pour les messages de type `Message` et `MessageConnect` dans l'attribut `data_max_size` du sous-attribut `relay`. Les messages excédant cette taille sont rejetés.
1. `public` :
* Liste partagée des `ItemProcess` avec les relais (agrégée au fil des relais découverts par le partage des listes de `ItemProcess` dans les messages).
* Liste partagée des `ItemProcess` complets reçus depuis les mises à jour des parties prenantes.
2. `private` :
* Liste non partagée des `ItemProcess` (agrégée à partir de `ItemProcess` communiqués de façon confidentielle).
* Liste non partagée des `ItemProcess` complets reçus depuis les mises à jour des parties prenantes.
### 5.4. <a name='Preuvedetravail'></a>6.4. Preuve de travail
Voir [ClientDataModel.md](ClientDataModel.md).
Les objets `SharedPeer` définissent les caractéristiques de la preuve de travail pour les messages de type `Message` et `MessageConnect` dans les attributs `pow_difficulty`, `pow_pattern`, `pow_prefix`, `pow_nonce`, `pow_timeout` du sous-attribut `relay`. Les messages ne respectant pas la preuve de travail sont rejetés.
### 5.3. <a name='Listedeshashsdesmessagesreus'></a>Liste des hashs des messages reçus
### 5.5. <a name='AdresseSPdefaucet'></a>6.5. Adresse SP de faucet
Le cache contient une liste des hashs des messages de type `Message` et de type `MessageConnect` reçus, répartie en plusieurs parties :
L'utilisateur fournit aux relais une adresse SP (Silent Payment) dite de faucet `faucet_sp_address`. Un portefeuille est généré en mémoire pour chaque relais à la réception des fonds, les fonds sont ensuite transférés vers l'adresse SP de l'utilisateur et le portefeuille est supprimé.
* Hashs des objets `Message`.
* Hashs des objets `MessageConnect` (vide pour les clients).
* Hashs de la donnée encryptée dans les objets `Message`.
* Hashs des `RequestPcd` une fois déchiffrés des objets Message `Message`, avec le hash du message correspondant (vide pour les relais) et état actuel de la collecte des `RequestPrd` correspondants.
* Hashs des `RequestPrd` une fois déchiffrés des objets Message `Message`, avec le hash du message correspondant et l'id de la transaction Silent Payment (SP) correspondante (vide pour les relais).
* Liste des `transaction SP` du faucet.
* Liste des `transaction SP` reçues.
L'utilisateur reçoit en retour une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address`, cette transaction inclut un output supplémentaire avec le hash du message de type `MessageConnect` ou `Message` correspondant.
Voir [ClientDataModel.md](ClientDataModel.md).
## 6. <a name='Traitementsparlesclients'></a>7. Traitements par les clients
### 5.4. <a name='Listedessocketsouverts'></a>Liste des sockets ouverts
### 6.1. <a name='ConnexiondunclientsalistederelaisvialesmessagesdetypeMessageConnect'></a>7.1. Connexion d'un client à sa liste de relais via les messages de type `MessageConnect`
Le cache contient une liste des sockets ouverts, répartie en 2 parties :
#### 6.1.1. <a name='Rcuprationetchoixdesrelais'></a>7.1.1. Récupération et choix des relais
* SocketClientList: liste des sockets ouverts en tant que clients.
* SocketServerList: liste des sockets ouverts parles clients.
Pour discuter avec les relais du réseau et faire relayer des `RequestPcd` et des `RequestPrd` sous forme de `Message`, l'utilisateur doit se connecter à un ou plusieurs relais, quatre par défaut.
Voir [ClientDataModel.md](ClientDataModel.md).
L'utilisateur envoie un message de type `MessageConnect` à chaque relais pour se connecter. Ensuite, il peut envoyer des `Message` à chacun des quatre relais connectés et recevoir des `Message` de leur part.
## 6. <a name='CaractristiquesgnralesdesmessagesdetypeMessageetdetypeMessageConnect'></a>Caractéristiques générales des messages de type `Message` et de type `MessageConnect`
Il y a des doublons de messages pour chaque relais, à la fois envoyés et reçus. Un arbitrage est possible pour confronter les données dans le temps et par origines. Les résultats permettent d'améliorer les listes de membres par un système de réputation calculable de manière autonome en rapport à sa propre expérience. L'arbitrage repose sur une réponse devant satisfaire au moins 80% de la même réponse que celle des relais connectés pour le même message. Les valeurs des arbitrages sont stockées dans le cache.
### 6.1. <a name='SharedPeerList'></a>SharedPeerList
Pour se connecter, l'utilisateur récupère leurs caractéristiques depuis la liste de relais partagée `SharedPeerList` du SDK (Wasm) et depuis les listes de relais non partagées `private` et `public` du cache.
`SharedPeerList` est une liste de relais. Les relais et les clients partagent cette liste qu'ils complètent au fur et à mesure de leur découverte de relais.
Un ping (incluant la Preuve de Travail dans le délai) est réalisé sur chaque relais pour vérifier leur disponibilité, et les quatre premiers relais disponibles sont choisis. Les valeurs des pings sont stockées dans le cache pour chaque relais (historique des pings).
### 6.2. <a name='SharedProcessList'></a>SharedProcessList
Les relais "browsers" possèdent un nom de domaine et un certificat SSL pour satisfaire aux exigences de sécurité des navigateurs. Les autres relais, qui n'ont pas de nom spécifique, peuvent ne pas avoir de nom de domaine ni de certificat SSL et sont utilisés pour relayer les messages entre les relais.
`SharedProcessList` est une liste de `ItemProcess`. Les relais et les clients partagent cette liste qu'ils complètent au fur et à mesure de leur découverte de `ItemProcess`.
Les connexions utilisent le protocole WebSocket avec ou sans SSL (URL commençant par `ws://` ou `wss://`), et les messages sont au format JSON.
### 6.3. <a name='Tailledesdonnes'></a>Taille des données
#### 6.1.2. <a name='EnvoidumessagedetypeMessageConnectchaquerelais'></a>7.1.2. Envoi du message de type `MessageConnect` à chaque relais
Les objets `SharedPeer` indiquent la taille maximale des données pour les messages de type `Message` et de type `MessageConnect` dans l'attribut `data_max_size` du sous attribut `relay`. Les messages plus gros que cette taille sont rejetés.
L'utilisateur parcourt sa liste de relais et envoie un message de type `MessageConnect` au format JSON (voir [Specs-Datamodel.md](Specs-Datamodel.md)) à chaque relais pour se connecter. Il partage ainsi sa liste de relais et sa liste de `ItemProcess`. Il n'y a pas de retour attendu pour ce message.
### 6.4. <a name='Preuvedetravail'></a>Preuve de travail
### 6.2. <a name='EnvoideRequestPcdsurlesrelaisvialesmessagesdetypeMessage'></a>7.2. Envoi de `RequestPcd` sur les relais via les messages de type `Message`
Les objets `SharedPeer` indiquent les caractéristiques de la preuve de travail pour les messages de type `Message` et de type `MessageConnect` dans les attributs `pow_difficulty`, `pow_pattern`, `pow_prefix`, `pow_nonce`, `pow_timeout` du sous attribut `relay`. Les messages ne satisfaisant pas à la preuve de travail sont rejetés.
Après finalisation du `RequestPcd`, celui-ci est chiffré avec la `ProcessKey` du `ItemProcess`. Cette partie chiffrée constitue la valeur de l'attribut `request_enc` du `Message`. L'utilisateur parcourt sa liste de relais et envoie à chacun un message de type `Message` au format JSON pour se connecter, partageant ainsi sa liste de relais et sa liste de `ItemProcess`.
### 6.5. <a name='AdresseSPdefaucet'></a>Adresse SP de faucet
### 6.3. <a name='EnvoideRequestPrdsurlesrelaisvialesmessagesdetypeMessage'></a>7.3. Envoi de `RequestPrd` sur les relais via les messages de type `Message`
L'utilisateur fournit aux relais une`adresse SP` (SP) dite de faucet `faucet_sp_address`. Un wallet est généré en mémoire pour chaque relais, à la réception des fonds les fonds sont transférés vers l'addresse SP de l'utilisateur et le wallet est supprimé.
Une fois le `RequestPrd` finalisé, une transaction SP est effectuée incluant plusieurs hashs (voir [Silent-Payment-Specs.md](Silent-Payment-Specs.md)) :
L'utilisateur reçoit en retour une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address`, cette transaction contient un output supplémentaire avec le hash du message de type `MessageConnect` ou de type `Message` correspondant.
La clé `KeyConfidential` de cette transaction est utilisée pour chiffrer divers champs. Le `RequestPrd` est ensuite chiffré avec la `ProcessKey` du `ItemProcess`, et cette partie chiffrée devient la valeur de l'attribut `request_enc` du `Message`. L'utilisateur envoie un message de type `Message` au format JSON à chaque relais pour se connecter, partageant ainsi sa liste de relais et sa liste de `ItemProcess`.
## 7. <a name='Traitementsparlesclients'></a>Traitements par les clients
### 6.4. <a name='TraitementdesmessagesdetypeMessageparlesclients'></a>7.4. Traitement des messages de type `Message` par les clients
### 7.1. <a name='ConnexiondunclientsalisterelaisvialesmessagesdetypeMessageConnect'></a>Connexion d'un client à sa liste relais via les messages de type `MessageConnect`
Le client reçoit un nouveau message via le socket ouvert avec le relais et effectue divers contrôles, notamment le calcul du hash du message et sa vérification dans le cache. Les listes de relais (`SharedPeerList`) et de `ItemProcess` (`SharedProcessList`) sont mises à jour en conséquence. Le message est ensuite déchiffré avec la `ProcessKey` du `ItemProcess`, et d'autres contrôles sont réalisés. Les données pertinentes sont mises à jour dans le cache.
#### 7.1.1. <a name='Rcuprationetchoixdesrelais'></a>Récupération et choix des relais
## 7. <a name='Traitementsparlesrelais'></a>8. Traitements par les relais
Afin de pouvoir discuter avec les relais du réseau et faire relayer des `RequestPcd` et des `RequestPrd` sous forme de `Message`, l'utilisateur doit se connecter à un ou plusieurs relais, 4 par défaut.
![RelayMessageReceived](diagrams/RelayMessageReceived.png "RelayMessageReceived")
L'utilisateur enverra un message de type `MessageConnect` à chaque relais pour se connecter. Puis, il pourra envoyer des `Message` à chacun des 4 relais connectés et recevoir des `Message` de chacun d'eux.
### 7.1. <a name='TraitementdesmessagesdetypeMessageConnectparlesrelais'></a>8.1. Traitement des messages de type `MessageConnect` par les relais
Ainsi, il y a des doublons des messages pour chaque relais à la fois envoyés et reçus. Un arbitrage est possible pour confronter les données dans le temps et par origines. Les résultats permettent d'améliorer les listes de membres par un système de réputation calculable par chacun de façon autonome en rapport à sa propre expérience. À ce stade, l'arbitrage repose sur une réponse devant satisfaire au moins 80% de même réponse que des relais connectés pour le même message. Les valeurs des arbitrages sont stockées dans le cache.
![RelayMessageConnectReceived](diagrams/RelayMessageConnectReceived.png "RelayMessageConnectReceived")
Pour s'y connecter, l'utilisateur récupère leurs caractéristiques depuis la liste de relais partagée `SharedPeerList` du SDK (Wasm) et depuis la liste de relais non partagée `private` du cache et depuis la liste de relais non partagée `public` du cache.
À la réception d'un message de type `MessageConnect`, le relais enregistre le socket du client et réalise divers contrôles, y compris la vérification de la preuve de travail et la taille des données. Les listes de relais (`SharedPeerList`) et de `ItemProcess` (`SharedProcessList`) sont mises à jour. En retour, le relais envoie quelques jetons à l'adresse SP de faucet communiquée par le client et met à jour les données dans le cache.
Un ping (PoW incluse dans le délai) est réalisé sur chaque relais pour vérifier leur disponibilité et l'on choisit les 4 premiers relais disponibles. Les valeurs des pings sont stockées dans le cache pour chaque relais (historique des pings).
### 7.2. <a name='ConnexionaurseauderelaisvialesmessagesdetypeMessageConnectparlesrelais'></a>8.2. Connexion au réseau de relais via les messages de type `MessageConnect` par les relais
Les relais dits "navigators" ont un nom de domaine et un certificat SSL afin de satisfaire aux exigences de sécurité des navigateurs. Les autres relais n'ont pas de nom spécifique et n'ont pas nécessairement de nom de domaine et de certificat SSL, ils sont utilisés pour relayer les messages entre les relais.
Les relais se connectent à de nouveaux relais en utilisant `MessageConnect`, partageant à leur tour leur liste de relais et de `ItemProcess`. Aucun retour n'est attendu pour ce message.
Les connexions sont en websocket avec ou sans SSL (url commençant par `ws://` ou `wss://`) et les messages sont en JSON.
## 8. <a name='TraitementdesmessagesdetypeMessageparlesrelais'></a>9. Traitement des messages de type `Message` par les relais
#### 7.1.2. <a name='EnvoidumessagedetypeMessageConnectchaquerelais'></a>Envoi du message de type `MessageConnect` à chaque relais
![RelayMessageMessageReceived](diagrams/RelayMessageMessageReceived.png "RelayMessageMessageReceived")
L'utilisateur parcourt sa liste de relais et envoie un message de type `MessageConnect` en JSON (voir [Specs-Datamodel.md](Specs-Datamodel.md)) à chaque relais pour se connecter, il partage sa liste de relais et sa liste de `ItemProcess`.
Le relais reçoit un nouveau message de type `Message` du client, effectue les contrôles nécessaires, et met à jour ses listes. En retour, le relais envoie quelques jetons à l'adresse SP de faucet du client. Le message est ensuite relayé aux autres relais et clients connectés, favorisant ainsi sa propagation.
Il n'y a pas de retour attendu pour ce message.
### 7.2. <a name='EnvoideRequestPcdsurlesrelaisvialesmessagesdetypeMessage'></a>Envoi de `RequestPcd` sur les relais via les messages de type `Message`
Une fois le `RequestPcd` finalisé, il est chiffré par la `ProcessKey` du `ItemProcess`. Cette partie chiffrée est la valeur de l'attribut `request_enc` du `Message`.
L'utilisateur parcourt sa liste de relais et envoie un message correspondant de type `Message` en JSON (voir [Specs-Datamodel.md](Specs-Datamodel.md)) à chaque relais pour se connecter, il partage sa liste de relais et sa liste de `ItemProcess`.
### 7.3. <a name='EnvoideRequestPrdsurlesrelaisvialesmessagesdetypeMessage'></a>Envoi de `RequestPrd` sur les relais via les messages de type `Message`
Une fois le `RequestPrd` finalisé, une transaction SP est réalisée, dans cette transaction plusieurs hashs sont ajoutés (voir [Silent-Payment-Specs.md](Silent-Payment-Specs.md)). :
La clé `KeyConfidential` de cette transaction est utilisée pour chiffrer les champs suivants :
* `RequestPcd_keys_role_confidential_list_enc_by_shared_secret`
Pour les `RequestPrd` de type `RequestPrdResponse` :
* `payment_method_enc_by_shared_secret`
* `deposit_method_enc_by_shared_secret`
* `commitment_method_enc_by_shared_secret`
* `certif_key_enc_by_shared_secret`
* `device_footprint_enc_by_sp_shared_secret`
* `pre_id_enc_by_sp_shared_secret`
* `shard_enc_by_sp_shared_secret`
Pour les `RequestPrd` de type `RequestPrdConfirm` :
* `code_confirm_enc_by_shared_secret`
Pour les `RequestPrd` de type `RequestPrdList` :
* `item_member_enc_by_sp_shared_secret`
* `pre_id_enc_by_sp_shared_secret`
Puis le `RequestPrd` est chiffré par la `ProcessKey` du `ItemProcess`. Cette partie chiffrée est la valeur de l'attribut `request_enc` du `Message`.
L'utilisateur parcourt sa liste de relais et envoie un message correspondant de type `Message` en JSON (voir [Specs-Datamodel.md](Specs-Datamodel.md)) à chaque relais pour se connecter, il partage sa liste de relais et sa liste de `ItemProcess`.
### 7.4. <a name='TraitementdesmessagesdetypeMessageparlesclients'></a>Traitement des messages de type `Message` par les clients
Le client reçoit un nouveau message dans le socket ouvert avec le relais.
Le client réalise les contrôles suivants :
* Calcul du hash du message et vérification de la non-existence du hash dans le cache.
Le client met à jour ses propres listes suivantes :
* Liste des relais depuis la liste partagée par le relais `SharedPeerList`.
* Liste des `ItemProcess` depuis la liste partagée par le relais `SharedProcessList`.
Déchiffrement du message avec la `ProcessKey` du `ItemProcess` et contrôles suivants :
* Calcul du hash du `RequestPcd` ou `RequestPrd` et vérification de la non-existence du hash dans le cache.
* Voir [ RequestPrd- RequestPcd-Specs.md]( RequestPrd- RequestPcd-Specs.md) pour les détails des contrôles.
Mises à jour des données du cache.
## 8. <a name='Traitementsparlesrelais'></a>Traitements par les relais
### 8.1. <a name='TraitementdesmessagesdetypeMessageConnectparlesrelais'></a>Traitement des messages de type `MessageConnect` par les relais
Le relais enregistre le socket du client et lui attribue un index dans l'ordre de création des sockets.
Le relais réalise les contrôles suivants :
* Calcul du hash du message et vérification de la non-existence du hash dans le cache.
* Vérification de la preuve de travail.
* Vérification de la taille des données.
Le relais met à jour ses propres listes suivantes :
* Liste des relais depuis la liste partagée par le client `SharedPeerList`.
* Liste des `ItemProcess` depuis la liste partagée par le client `SharedProcessList`.
Voir [ClientDataModel.md](ClientDataModel.md).
Le relais envoie en retour quelques jetons sur une adresse dite de faucet `faucet_sp_address` communiquée par le client.
Mises à jour des données du cache.
Envoi de la transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address` avec un output supplémentaire avec le hash du message de type `MessageConnect` correspondant.
### 8.2. <a name='ConnexionaurseauderelaisvialesmessagesdetypeMessageConnectparlesrelais'></a>Connexion au réseau de relais via les messages de type `MessageConnect` par les relais
Le relais parcourt la liste de relais mise à jour et se connecte à chacun des nouveaux relais via un `MessageConnect` en partageant à son tour sa liste de relais et sa liste de `ItemProcess`.
Envoi vers chaque nouveau relai d'une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address` avec un output supplémentaire avec le hash du message de type `MessageConnect` correspondant.
Il n'y a pas de retour attendu pour ce message.
## 9. <a name='TraitementdesmessagesdetypeMessageparlesrelais'></a>Traitement des messages de type `Message` par les relais
Le relais reçoit un nouveau message dans le socket ouvert avec le client.
Le relais réalise les contrôles suivants :
* Calcul du hash du message et vérification de la non-existence du hash dans le cache.
* Vérification de la preuve de travail.
* Vérification de la taille des données.
Le relais met à jour ses propres listes suivantes :
* Liste des relais depuis la liste partagée par le client `SharedPeerList`.
* Liste des `ItemProcess` depuis la liste partagée par le client `SharedProcessList`.
Voir [ClientDataModel.md](ClientDataModel.md).
Le relais envoie en retour quelques jetons sur une adresse dite de faucet `faucet_sp_address` communiquée par le client.
Mises à jour des données du cache.
Envoi de la transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address` avec un output supplémentaire avec le hash du message de type `MessageConnect` correspondant.
### 9.1. <a name='BroadcastdesmessagesdetypeMessageverslesrelais'></a>Broadcast des messages de type `Message` vers les relais
Le relais parcourt la liste de relais mise à jour et se connecte à chacun des nouveaux relais via un `MessageConnect` en partageant à son tour sa liste de relais et sa liste de `ItemProcess`.
Envoi vers chaque nouveau relai d'une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address` avec un output supplémentaire avec le hash du message de type `MessageConnect` correspondant.
Envoi vers chaque relai d'une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address` avec un output supplémentaire avec le hash du message de type `Message` correspondant.
Le relais parcourt la liste de relais mise à jour et envoie le `Message` reçu à chaque relai connecté en partageant à son tour sa liste de relais et sa liste de `ItemProcess` (sans modifier la Preuve de Travail mais en contrôlant la taille du message et les caractéristiques de la preuve de travail avant d'envoyer au relai).
Il n'y a pas de retour attendu pour ce message.
### 9.2. <a name='BroadcastdesmessagesdetypeMessageverslesclientsconnects'></a>Broadcast des messages de type `Message` vers les clients connectés
Le relais parcourt la liste des sockets ouverts et envoie le `Message` reçu à chaque client connecté en partageant à son tour sa liste de relais et sa liste de `ItemProcess`.
Envoi vers chaque client d'une transaction Silent Payment (SP) contenant des jetons sur l'adresse dite de faucet `faucet_sp_address` avec un output supplémentaire avec le hash du message de type `Message` correspondant.
Il n'y a pas de retour attendu pour ce message.
## 10. <a name='Connexionsauxrseauxdenoeudsdebitcoinderseauxsidechainoumainnet'></a>Connexions aux réseaux de noeuds de bitcoin de réseaux side chain ou mainnet
## 9. <a name='ConnexionsauxrseauxdenoeudsdeBitcoinderseauxsidechainoumainnet'></a>10. Connexions aux réseaux de noeuds de Bitcoin, de réseaux side chain ou mainnet
Pour plus de détails, voir : [Specs-References.md](Specs-References.md).
### 10.1. <a name='ProtocoledeDcouvertedesPairs'></a>Protocole de Découverte des Pairs
Bitcoin et les side chains utilisent divers protocoles pour la découverte de pairs, la transmission des transactions, et le partage des blocs, adaptés aux besoins spécifiques de 4NK.
Bitcoin utilise un mécanisme de découverte de pairs pour que les nouveaux nœuds puissent trouver d'autres nœuds du réseau. Cela peut être réalisé via des "DNS seeds" (des serveurs DNS qui retournent une liste d'adresses IP de nœuds Bitcoin actifs) ou via une liste de nœuds connus codée en dur dans le logiciel.
### 9.1. <a name='ProtocoledeDcouvertedesPairs'></a>10.1. Protocole de Découverte des Pairs
* **Gossip Protocol** : Bitcoin utilise un protocole de type "gossip" pour la propagation des transactions. Lorsqu'un nœud reçoit une transaction valide qu'il n'a pas encore vue, il la valide puis la retransmet à tous ses pairs, ce qui permet une propagation rapide et efficace à travers le réseau.
Bitcoin facilite la découverte de nouveaux nœuds via des DNS seeds et une liste de nœuds codée en dur. 4NK utilise la `SharedPeerList` comme équivalent pour faciliter la découverte de relais dans le réseau.
Dans le cas de 4NK, l'équivalent des DNS est la liste de relais partagée `SharedPeerList`.
### 9.2. <a name='ProtocoledeTransmissiondesTransactions'></a>10.2. Protocole de Transmission des Transactions
### 10.2. <a name='ProtocoledeTransmissiondesTransactions'></a>Protocole de Transmission des Transactions
* **Mempool et Transactions Orphelines** : Les transactions sont ajoutées au mempool en attente de confirmation. Les transactions dépendantes d'autres transactions non confirmées sont considérées comme orphelines jusqu'à résolution.
* **Protocole P2P de Bitcoin** : Définit la communication entre nœuds pour échanger informations sur les transactions et blocs, incluant les messages `version`, `verack`, `inv`, `getdata`, `tx`, et `block`.
* **Mempool et Transactions Orphelines** : Lorsqu'un nœud reçoit une nouvelle transaction, il l'ajoute à son pool de transactions en attente (mempool) avant de la transmettre à ses pairs. Si une transaction fait référence à des entrées inexistantes (par exemple, si elle dépend de transactions non confirmées), elle peut être traitée comme orpheline jusqu'à ce que ses dépendances soient résolues.
### 9.3. <a name='ProtocoledePartagedesBlocs'></a>10.3. Protocole de Partage des Blocs
Le protocole P2P de Bitcoin définit la manière dont les nœuds communiquent entre eux pour partager les informations sur les transactions et les blocs. Il inclut plusieurs types de messages :
* **Propagation des Blocs** : Les nouveaux blocs sont rapidement transmis à travers le réseau via un mécanisme de propagation.
* **Compact Blocks** : Optimise la transmission des blocs en utilisant les données déjà présentes dans le mempool des nœuds récepteurs.
* **version / verack** : Utilisés lors de l'établissement de la connexion entre deux nœuds pour échanger les informations de version et confirmer la connexion.
### 9.4. <a name='Validationetrelais'></a>10.4. Validation et relais
* **Protocole inv (inventaire)** : Un nœud annonce de nouvelles transactions à ses pairs en utilisant des messages inv, qui contiennent des identifiants de transaction. Les nœuds qui n'ont pas ces transactions peuvent alors les demander en utilisant des messages getdata.
Les transactions et les blocs sont validés selon les règles de consensus avant d'être relayés aux autres pairs, assurant l'intégrité et la sécurité du réseau.
* **getdata** : Utilisé par un nœud pour demander les données spécifiques (transactions ou blocs) annoncées via un message inv.
### 9.5. <a name='GestiondesForks'></a>10.5. Gestion des Forks
* **tx** : Utilisé pour transmettre les détails d'une transaction.
Bitcoin gère les bifurcations temporaires de la blockchain, permettant une réorganisation basée sur la chaîne avec le plus de travail cumulé.
* **block** : Utilisé pour transmettre les détails d'un bloc.
### 9.6. <a name='Connexionaurseaudenudsdesidechain'></a>10.6. Connexion au réseau de nœuds de side chain
* **getblocks / getheaders** : Utilisés pour récupérer des blocs ou des en-têtes de blocs depuis un nœud, généralement dans le processus de synchronisation de la blockchain.
#### 9.6.1. <a name='Clients'></a>10.6.1. Clients
* **headers** : Utilisé pour transmettre des en-têtes de blocs en réponse à un message getheaders, facilitant la vérification et la synchronisation de la blockchain sans télécharger tous les blocs complets.
Les clients se connectent au réseau de nœuds de side chain pour recevoir les blocs et les transactions, y compris les transactions Silent Payment (SP) liées aux `RequestPrd`.
### 10.3. <a name='ProtocoledePartagedesBlocs'></a>Protocole de Partage des Blocs
#### 9.6.2. <a name='Relais'></a>10.6.2. Relais
* **Propagation des Blocs** : Lorsqu'un nœud mine un nouveau bloc, il le transmet immédiatement à ses pairs. Comme pour les transactions, la propagation utilise un mécanisme similaire au protocole "gossip" pour assurer une distribution rapide du bloc à travers le réseau.
Les relais fonctionnent comme des nœuds complets de la side chain, facilitant la communication et la validation des transactions.
* **Compact Blocks** : Introduit par BIP 152, ce mécanisme permet de transmettre des blocs de manière plus efficace en utilisant les informations déjà disponibles dans le mempool des nœuds récepteurs. Cela réduit la quantité de données nécessaires pour transmettre un nouveau bloc, accélérant ainsi sa propagation.
### 9.7. <a name='Connexionaurseaudenudsdelayer1'></a>10.7. Connexion au réseau de nœuds de layer 1
* **Protocole inv pour les blocs** : Similaire aux transactions, un nœud utilise des messages inv pour annoncer de nouveaux blocs à ses pairs. Les nœuds qui ne connaissent pas ce bloc peuvent demander le bloc complet en utilisant getdata.
Les relais maintiennent également une connexion au réseau principal (mainnet) pour des opérations d'ancrage et d'horodatage.
* **Transaction Relay Protocol** : Bitcoin Core a implémenté des améliorations telles que le "Transaction Relay Protocol" pour optimiser la manière dont les transactions sont relayées entre les nœuds, réduisant la bande passante nécessaire et améliorant la confidentialité.
### 9.8. <a name='HorodatageetancragedesRequestPrdvialestransactionsSilentPaymentSP'></a>10.8. Horodatage et ancrage des `RequestPrd` via les transactions Silent Payment (SP)
* **Compact Block Relay** : Ce protocole permet une propagation plus efficace des nouveaux blocs en utilisant les informationsque les nœuds ont probablement déjà en leur possession, réduisant ainsi la quantité de données nécessaires à transmettre pour relayer un bloc complet.
Les `RequestPrd` sont ancrés dans la side chain à travers des transactions SP, offrant une preuve immuable de leur existence et de leur intégrité.
Dans le cas de 4NK, les block relay, compact blocks, et les blocs filters permettent de travailler rapidement et côté client directement sur les données des blocs et transactions du réseau.
## 10. <a name='TransactionsmainnetBitcoin'></a>11. Transactions mainnet Bitcoin
### 10.4. <a name='Validationetrelais'></a>Validation et relais
### 10.1. <a name='HorodatageetancragedesblocsdelasidechainsurBitcoin'></a>11.1. Horodatage et ancrage des blocs de la side chain sur Bitcoin
* **Validation** : Les nœuds valident les transactions et les blocs selon les règles de consensus de Bitcoin et les règles de filtrage local avant de les relayer à d'autres nœuds. Cela inclut la vérification des signatures, la conformité des structures de données, et d'autres critères spécifiques à Bitcoin.
Les blocs de la side chain sont ancrés sur le mainnet de Bitcoin à intervalles réguliers, fournissant une preuve temporelle et augmentant la sécurité.
* **Relais** : Après validation, les transactions et les blocs sont relayés aux autres pairs, favorisant ainsi la propagation rapide et la redondance des données à travers le réseau.
### 10.2. <a name='Remboursementdesfraisdhorodatageetancrage'></a>11.2. Remboursement des frais d'horodatage et ancrage
### 10.5. <a name='GestiondesForks'></a>Gestion des Forks
Le processus de minage "vert" de 4NK génère les jetons nécessaires pour couvrir les frais d'horodatage et d'ancrage sur le réseau Bitcoin, assurant ainsi la viabilité financière de ces opérations.
Lorsque deux blocs sont minés presque simultanément, cela peut créer une bifurcation temporaire dans la blockchain. Les nœuds choisissent le premier bloc qu'ils reçoivent et continuent à construire dessus, mais ils gardent aussi une trace de la branche alternative. Si la branche alternative devient plus longue (c'est-à-dire qu'elle devient la chaîne avec le plus de travail cumulé), les nœuds basculent sur cette chaîne, réorganisant ainsi leur blockchain locale.
Ces spécifications techniques fournissent une vue d'ensemble de la façon dont 4NK s'intègre avec les réseaux Bitcoin et side chain, utilisant des protocoles éprouvés tout en introduisant de nouvelles méthodes pour améliorer la sécurité, la transparence, et l'efficacité des transactions et des communications au sein du réseau.
### 10.6. <a name='Connexionaurseaudenudsdesidechain'></a>Connexion au réseau de nœuds de side chain
## 11. <a name='ExemplesdeCode'></a>Exemples de Code
#### 10.6.1. <a name='Clients'></a>Clients
Les clients se connectent comme un nœud depuis le SDK au réseau de nœuds de side chain via les protocoles p2p de Bitcoin. Ils reçoivent les blocs et les transactions (mempool) de la side chain et scannent les transactions de la side chain pour trouver les transactions Silent Payment (SP) correspondantes aux RequestPrd, puis les `RequestPcd` correspondant aux RequestPrd.
#### 10.6.2. <a name='Relais-1'></a>Relais
Les relais hébergent un nœud complet de la side chain, connecté aux autres membres de ce réseau. Voir [Specs-Deployment.md](Specs-Deployment.md) pour les détails de déploiement.
### 10.7. <a name='Connexionaurseaudenudsdelayer1'></a>Connexion au réseau de nœuds de layer 1
Les relais hébergent un nœud complet du mainnet, connecté aux autres membres de ce réseau. Voir [Specs-Deployment.md](Specs-Deployment.md) pour les détails de déploiement.
### 10.8. <a name='HorodatageetancragedesRequestPrdvialestransactionsSilentPaymentSP'></a>Horodatage et ancrage des `RequestPrd` via les transactions Silent Payment (SP)
Les `RequestPrd` sont horodatés et ancrés sur la side chain via des transactions Silent Payment (SP) contenant les hashs des messages et des signatures associées ( RequestPrd). Ces transactions sont ajoutées aux blocs, eux-mêmes signés par les nœuds "certificator" de la side chain pour être ajoutés à cette timechain. La dépense des UTXO de la transaction Silent Payment (SP) vaut pour signature (validation de la possession de la clé privée associée). Voir [Specs-Deployment.md](Specs-Deployment.md) pour les détails de déploiement.
## 11. <a name='TransactionsmainnetBitcoin'></a>Transactions mainnet Bitcoin
### 11.1. <a name='HorodatageetancragedesblocsdelasidechainsurBitcoin'></a>Horodatage et ancrage des blocs de la side chain sur Bitcoin
Le temps de référence est en blocs. Tous les hashs de blocs de la side chain sont historisés par lots de 6 * 24 blocs. À toutes les hauteurs de blocs multiples de 144, chaque lot de hashs de blocs est l'objet lui-même d'un hash qui est inscrit dans un output de transaction sur Bitcoin (mainnet).
### 11.2. <a name='RemboursementdesfraisdhorodatageetancragedesblocsdelasidechainsurBitcoin'></a>Remboursement des frais d'horodatage et ancrage des blocs de la side chain sur Bitcoin
Le minage "vert" de 4NK permet de produire les jetons nécessaires au remboursement des frais d'horodatage et ancrage des blocs de la side chain sur Bitcoin. La dépense des UTXO de la transaction Silent Payment (SP) vaut pour signature (validation de la possession de la clé privée associée).
## 12. <a name='ExemplesdeCode'></a>Exemples de Code
## 13. <a name='Todo'></a>Todo
## 12. <a name='Todo'></a>Todo
* [ ] Extraits de code illustrant l'utilisation des `RequestPcd` et `RequestPrd` dans des scénarios réels.
* [ ] Diagrammes de séquences

View File

@ -92,17 +92,17 @@ Les `RequestPrd` sont des demandes d'actions ou des réponses à ces demandes, i
* `RequestPrdConfirm` : Répond à tous les autres types de `RequestPrd` (à l'exception des `RequestPrdConfirm` eux-mêmes).
* `RequestPrdResponse` : Répond à tous les autres types de `RequestPrd` (à l'exception des `RequestPrdConfirm`, `RequestPrdMessage` et `RequestPrdResponse` eux-mêmes). Dans le cas d'une réponse à un `RequestPrdList` ou d'un `RequestPrdUpdate`, le `RequestPrdResponse` doit obligatoirement être accompagné d'un `RequestPcd`.
On fonction des `RequestPrd` les demandes vont d'adresser à tous les membres de l'`ItemProcess`, ou aux gestionnaires du type d'`Item` concerné ou simplement à l'émetteur, selon :
Selon le type de `RequestPrd`, les demandes peuvent s'adresser à tous les membres de l'`ItemProcess`, aux gestionnaires du type d'`Item` concerné ou simplement à l'émetteur, selon :
* `RequestPrdList` : Envoyé aux gestionnaires du type d'`Item` concerné
* `RequestPrdList` : Envoyé aux gestionnaires du type d'`Item` concerné.
* `RequestPrdMessage`, avec 2 cas de figure :
* Demande de relais d'une `transaction SP`, dans ce cas, le destinaire du `RequestPrd`assiocié.
* Envoi de message au destinaire du message.
* `RequestPrdUpdate` : Envoyé aux gestionnaires du type d'`Item` concerné
* `RequestPrdConfirm` : Envoyé à l'emetteur du `RequestPrd`assiocié.
* Demande de relais d'une `transaction SP`, dans ce cas, destinée au destinataire du `RequestPrd` associé.
* Envoi de message au destinataire du message.
* `RequestPrdUpdate` : Envoyé aux gestionnaires du type d'`Item` concerné.
* `RequestPrdConfirm` : Envoyé à l'émetteur du `RequestPrd` associé.
* `RequestPrdResponse`, avec 2 cas de figure :
* Réponse à un `RequestPrdList`: envoie à l'emetteur du `RequestPrdList`
* Réponse à un `RequestPrdUpdate`: envoue à tous les membres et à l'émetteur du `RequestPrdUpdate`
* Réponse à un `RequestPrdList` : envoyée à l'émetteur du `RequestPrdList`.
* Réponse à un `RequestPrdUpdate` : envoyée à tous les membres et à l'émetteur du `RequestPrdUpdate`.
Les traitements des `RequestPrd` varient selon leur type, principalement autour des aspects suivants :
@ -413,7 +413,6 @@ Pour simplifier, les `RequestPrdConfirm` n'ont pas été représentés dans le s
## 15. <a name='Todo'></a>Todo
[ ] Définition claire de request-type
[ ] Description détaillée de tous les éléments (attributs) qui composent le request-type:
[ ] Quy a-t-il dans le request-type?
[ ] A quoi sert lattribut X du request-type?

View File

@ -1,148 +0,0 @@
<mxfile host="Electron" modified="2024-03-11T10:09:35.091Z" 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="jxaib6Nv3qDvKYRb7FjE" version="23.1.5" type="device">
<diagram name="Page-1" id="eY5sdEA9ArHeJGmdISry">
<mxGraphModel dx="3435" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="4QQ7-kQjxGIxnivFqdXq-10" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="-1860" y="170" width="180" height="137.96" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4QQ7-kQjxGIxnivFqdXq-14" target="4QQ7-kQjxGIxnivFqdXq-18" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1850" y="274" />
<mxPoint x="-1850" y="252" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-14" value="&lt;b&gt;text&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1990" y="253.96" width="110.36" height="39" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4QQ7-kQjxGIxnivFqdXq-16" target="4QQ7-kQjxGIxnivFqdXq-18" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1414.42" y="360" as="targetPoint" />
<Array as="points">
<mxPoint x="-1850" y="220" />
<mxPoint x="-1850" y="252" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-16" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;PBKDF2&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1990" y="200" width="110.36" height="40" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="4QQ7-kQjxGIxnivFqdXq-18" target="4QQ7-kQjxGIxnivFqdXq-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-18" value="AES-GCM-256" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1831.17" y="231.96" width="137.39" height="40" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-19" value="&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;cipher&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1660" y="231.96" width="60" height="39" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-20" value="&lt;b&gt;Encrypt&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1859.9999999999995" y="170" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-21" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="-1860" y="320" width="180" height="137.96" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4QQ7-kQjxGIxnivFqdXq-23" target="4QQ7-kQjxGIxnivFqdXq-27" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1850" y="424" />
<mxPoint x="-1850" y="402" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-23" value="&lt;b&gt;cipher&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1990" y="403.96000000000004" width="110.36" height="39" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4QQ7-kQjxGIxnivFqdXq-25" target="4QQ7-kQjxGIxnivFqdXq-27" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1414.42" y="510" as="targetPoint" />
<Array as="points">
<mxPoint x="-1850" y="370" />
<mxPoint x="-1850" y="402" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-25" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;PBKDF2&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1990" y="350" width="110.36" height="40" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="4QQ7-kQjxGIxnivFqdXq-27" target="4QQ7-kQjxGIxnivFqdXq-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-27" value="AES-GCM-256" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1831.17" y="381.96000000000004" width="137.39" height="40" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-28" value="&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;text&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1660" y="381.96000000000004" width="60" height="39" as="geometry" />
</mxCell>
<mxCell id="4QQ7-kQjxGIxnivFqdXq-29" value="&lt;b&gt;Decrypt&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1859.9999999999995" y="320" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="C_G3zQmhc8sZBK8oKtaA-5">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1990" y="219.95999999999998" as="targetPoint" />
<Array as="points">
<mxPoint x="-2057" y="255.95999999999998" />
<mxPoint x="-2009" y="255.95999999999998" />
<mxPoint x="-2009" y="219.95999999999998" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-2" value="salt" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="C_G3zQmhc8sZBK8oKtaA-1">
<mxGeometry x="-0.5891" relative="1" as="geometry">
<mxPoint x="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="C_G3zQmhc8sZBK8oKtaA-4">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-2054" y="179.95999999999998" />
<mxPoint x="-2009" y="179.95999999999998" />
<mxPoint x="-2009" y="219.95999999999998" />
</Array>
<mxPoint x="-1990" y="219.95999999999998" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-4" value="Password&lt;br&gt;18 characters" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-2149" y="150.95999999999998" width="94.6" height="40" as="geometry" />
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-5" value="SeedRandom&lt;br&gt;256 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="-2149" y="227.95999999999998" width="91.76" height="44" as="geometry" />
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="C_G3zQmhc8sZBK8oKtaA-10">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1990" y="369.96" as="targetPoint" />
<Array as="points">
<mxPoint x="-2057" y="405.96" />
<mxPoint x="-2009" y="405.96" />
<mxPoint x="-2009" y="369.96" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-7" value="salt" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="C_G3zQmhc8sZBK8oKtaA-6">
<mxGeometry x="-0.5891" relative="1" as="geometry">
<mxPoint x="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="C_G3zQmhc8sZBK8oKtaA-9">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-2054" y="329.96" />
<mxPoint x="-2009" y="329.96" />
<mxPoint x="-2009" y="369.96" />
</Array>
<mxPoint x="-1990" y="369.96" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-9" value="Password&lt;br&gt;18 characters" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-2149" y="300.96" width="94.6" height="40" as="geometry" />
</mxCell>
<mxCell id="C_G3zQmhc8sZBK8oKtaA-10" value="SeedRandom&lt;br&gt;256 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="-2149" y="377.96" width="91.76" height="44" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -1,56 +0,0 @@
<mxfile host="Electron" modified="2024-03-11T11:10:02.153Z" 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="VYEXviXL3rC-9rXoQrR0" version="23.1.5" type="device">
<diagram name="Page-1" id="AEsfMXb70QaqmTxDDtmt">
<mxGraphModel dx="2451" dy="1652" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lHBKXWLrEfhbahlG_4dC-1" value="SeedRand-Spend&lt;br&gt;512 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="-1600" y="-1119.5" width="130" height="26" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-2" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-1450" y="-1160" width="160" height="140" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-3" value="KeyGen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-1450" y="-1160" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lHBKXWLrEfhbahlG_4dC-4" target="lHBKXWLrEfhbahlG_4dC-11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-4" value="&lt;div style=&quot;text-align: center;&quot;&gt;Secp256k1&lt;br&gt;&lt;/div&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="-1420" y="-1121.5" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lHBKXWLrEfhbahlG_4dC-1" target="lHBKXWLrEfhbahlG_4dC-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-6" value="seed" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lHBKXWLrEfhbahlG_4dC-5">
<mxGeometry x="0.0056" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-7" value="SeedRand-Scan&lt;br&gt;512 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="-1600" y="-1078" width="130" height="26" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lHBKXWLrEfhbahlG_4dC-8" target="lHBKXWLrEfhbahlG_4dC-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-8" value="&lt;div style=&quot;text-align: center;&quot;&gt;Secp256k1&lt;br&gt;&lt;/div&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="-1420" y="-1080" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lHBKXWLrEfhbahlG_4dC-7" target="lHBKXWLrEfhbahlG_4dC-8">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-10" value="seed" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lHBKXWLrEfhbahlG_4dC-9">
<mxGeometry x="0.0056" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-11" value="SpendKey" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-1260" y="-1121.5" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lHBKXWLrEfhbahlG_4dC-12" value="SpendKey" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-1260" y="-1080" width="120" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

File diff suppressed because it is too large Load Diff

View File

@ -1,61 +0,0 @@
<mxfile host="Electron" modified="2024-03-11T09:58:44.118Z" 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="LThB7ntCDUhOESBIM9T4" version="23.1.5" type="device">
<diagram name="Page-1" id="WB0AbUQrp66xU2upNOrv">
<mxGraphModel dx="3435" dy="1769" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="R5PE0JiO6jkbt_TOkq---1" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-2010" y="-377" width="290" height="167" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="R5PE0JiO6jkbt_TOkq---9" target="R5PE0JiO6jkbt_TOkq---8">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1746.07" y="-188" as="targetPoint" />
<Array as="points">
<mxPoint x="-2038" y="-242" />
<mxPoint x="-1990" y="-242" />
<mxPoint x="-1990" y="-278" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---3" value="salt" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="R5PE0JiO6jkbt_TOkq---2">
<mxGeometry x="-0.5891" relative="1" as="geometry">
<mxPoint x="1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="R5PE0JiO6jkbt_TOkq---5" target="R5PE0JiO6jkbt_TOkq---8">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-2035" y="-318" />
<mxPoint x="-1990" y="-318" />
<mxPoint x="-1990" y="-278" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---5" value="Password&lt;br&gt;18 characters" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-2130" y="-347" width="94.6" height="40" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="R5PE0JiO6jkbt_TOkq---12" target="R5PE0JiO6jkbt_TOkq---11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="R5PE0JiO6jkbt_TOkq---8" target="R5PE0JiO6jkbt_TOkq---12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---8" value="SCRYPT" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="-1970.58" y="-298" width="110.58" height="40" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---9" value="SeedRandom&lt;br&gt;256 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="-2130" y="-270" width="91.76" height="44" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---10" value="&lt;b&gt;PBKDF2&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="-2009" y="-377" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---11" value="hash" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-1700" y="-298" width="60" height="40" as="geometry" />
</mxCell>
<mxCell id="R5PE0JiO6jkbt_TOkq---12" value="SHA256" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="-1840" y="-298" width="110" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -1,179 +0,0 @@
<mxfile host="Electron" modified="2024-03-15T16:01:46.387Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="xhs4aQpYiYUxJ3mrvPJe" version="24.0.4" type="device">
<diagram name="Page-1" id="Ay0TpeaQuVh3P3g7hVAg">
<mxGraphModel dx="2261" dy="841" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="EWl4Vt8T4nABZOOH1jeO-55" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="1017" y="20" width="186" height="250" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-91" value="KeyConfidential" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1029" y="70" width="164" height="80" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-29" value="AES:&amp;nbsp;RandomAesKey" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="170" y="102.26" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-63" value="AES:&amp;nbsp;KeyConfidential" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="801" y="102.25999999999999" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-58" value="KeyConfidential" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1037" y="104.24" width="136" height="26.05" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-61" value="Tx Silent Payment" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="1027" y="20" width="140" height="39.07" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-27" value="AES:&amp;nbsp;ProcessKey" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="170" y="182.37" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-31" value="AES:&amp;nbsp;KeyRecover" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="170" y="224" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-58" target="EWl4Vt8T4nABZOOH1jeO-63" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-81" value="export" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EWl4Vt8T4nABZOOH1jeO-71" vertex="1" connectable="0">
<mxGeometry x="-0.0741" y="2" relative="1" as="geometry">
<mxPoint x="-1" y="-13" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-92" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;&lt;i&gt;Diffie-Hellman&lt;/i&gt;&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1037" y="69.86" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-93" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="-110" y="20" width="260" height="250" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-1" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry width="260" height="250" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-2" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry x="7.878787878787878" y="52.09" width="244.24242424242425" height="187.91" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-4" value="role confidential metadatas&amp;nbsp;encrypted" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry x="15.757575757575756" y="84.23255813953486" width="228.4848484848485" height="26.046511627906977" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-14" value="Item" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry x="7.878787878787878" y="50.790697674418595" width="47.27272727272727" height="39.06976744186046" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-25" value="PCD" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry x="7.878787878787878" width="47.27272727272727" height="39.06976744186046" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-3" value="public metadatas encrypted" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry x="15.757575757575756" y="163.53279069767441" width="228.4848484848485" height="26.046511627906977" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-5" value="private metadatas&amp;nbsp;encrypted" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-93" vertex="1">
<mxGeometry x="15.757575757575756" y="205.9723255813953" width="228.4848484848485" height="26.046511627906977" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-27" target="EWl4Vt8T4nABZOOH1jeO-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-31" target="EWl4Vt8T4nABZOOH1jeO-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-77" value="&lt;b style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Enc&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#999999;" parent="1" vertex="1">
<mxGeometry x="143" y="225.67000000000002" width="20" height="9" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-90" value="&lt;b style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Enc&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#999999;" parent="1" vertex="1">
<mxGeometry x="143" y="186" width="20" height="9" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-29" target="EWl4Vt8T4nABZOOH1jeO-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-76" value="&lt;b style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Enc&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#999999;" parent="1" vertex="1">
<mxGeometry x="144" y="105" width="20" height="9" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-36" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="376.91" y="20" width="400.09" height="250" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-95" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="391.46" y="65.16" width="364.54" height="186.86" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-38" value="*_enc_by_shared_secret&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;encrypted&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-95" vertex="1">
<mxGeometry width="364.54" height="26.04641437907359" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-39" value="request_pcd_keys_role_confidential_list_enc_by_shared_secret" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-95" vertex="1">
<mxGeometry y="39.069621568610366" width="364.54" height="26.04641437907359" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-43" value="public message encrypted" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-95" vertex="1">
<mxGeometry y="118.83420747453961" width="364.54" height="26.04641437907359" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-44" value="role confidential message&amp;nbsp;encrypted" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-95" vertex="1">
<mxGeometry y="78.83412426369104" width="364.54" height="26.04641437907359" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-45" value="private message&amp;nbsp;encrypted" style="rounded=0;whiteSpace=wrap;html=1;" parent="EWl4Vt8T4nABZOOH1jeO-95" vertex="1">
<mxGeometry y="160.81358562092643" width="364.54" height="26.04641437907359" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-63" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="756.449275362319" y="78.18604651162786" as="targetPoint" />
<Array as="points">
<mxPoint x="781" y="117" />
<mxPoint x="781" y="78" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-63" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="756.449275362319" y="117.25581395348843" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="EWl4Vt8T4nABZOOH1jeO-63" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="756.449275362319" y="157.02046511627907" as="targetPoint" />
<Array as="points">
<mxPoint x="781" y="117" />
<mxPoint x="781" y="157" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-78" value="&lt;b style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Enc&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#999999;" parent="1" vertex="1">
<mxGeometry x="777" y="106" width="20" height="9" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="EWl4Vt8T4nABZOOH1jeO-43" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="357" y="197.3699999999999" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-84" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="EWl4Vt8T4nABZOOH1jeO-45" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="357" y="239" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" target="EWl4Vt8T4nABZOOH1jeO-39" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="357" y="117.25999999999999" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-52" value="PRD Response" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="384.18840579710144" y="20" width="72.7536231884058" height="39.07" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-86" value="&lt;b style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Enc&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#999999;" parent="1" vertex="1">
<mxGeometry x="366" y="186" width="14.55072463768116" height="9" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-87" value="&lt;b style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Enc&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#999999;" parent="1" vertex="1">
<mxGeometry x="366.7275362318841" y="226" width="14.55072463768116" height="9" as="geometry" />
</mxCell>
<mxCell id="EWl4Vt8T4nABZOOH1jeO-89" value="export" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0">
<mxGeometry x="373.2722852334374" y="105.99805506002437" as="geometry" />
</mxCell>
<mxCell id="Z6IZM2XFgX0QcQ6djccE-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Z6IZM2XFgX0QcQ6djccE-1" target="EWl4Vt8T4nABZOOH1jeO-27">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Z6IZM2XFgX0QcQ6djccE-1" value="Process" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="212" y="140" width="86" height="20" as="geometry" />
</mxCell>
<mxCell id="Z6IZM2XFgX0QcQ6djccE-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="Z6IZM2XFgX0QcQ6djccE-3" target="EWl4Vt8T4nABZOOH1jeO-31">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Z6IZM2XFgX0QcQ6djccE-3" value="Memory" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="212" y="273" width="86" height="20" as="geometry" />
</mxCell>
<mxCell id="Z6IZM2XFgX0QcQ6djccE-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Z6IZM2XFgX0QcQ6djccE-5" target="EWl4Vt8T4nABZOOH1jeO-29">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Z6IZM2XFgX0QcQ6djccE-5" value="RadomAesKey" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="212" y="59.06999999999999" width="86" height="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,34 @@
<mxfile host="Electron" modified="2024-03-19T14:15:33.858Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="nsauMS-Bb3EQ0e3xKdih" version="24.0.4" type="device">
<diagram name="Page-1" id="pwQ3DnKjZfOrOexWHG-k">
<mxGraphModel dx="607" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="vgbR90Qxcx-sTvoote5e-1" value="socketConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="990" y="140" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="vgbR90Qxcx-sTvoote5e-1" target="vgbR90Qxcx-sTvoote5e-4" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1050.5" y="174" as="sourcePoint" />
<mxPoint x="1049.5" y="256" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="vgbR90Qxcx-sTvoote5e-4" target="vgbR90Qxcx-sTvoote5e-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-4" value="MessageConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="990" y="185" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="Rs4bW3xzFFLv7pWNUvat-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="vgbR90Qxcx-sTvoote5e-5" target="Rs4bW3xzFFLv7pWNUvat-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-5" value="MessageReceived" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="960" y="232.10000000000002" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="Rs4bW3xzFFLv7pWNUvat-1" value="add to socket_list" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="990" y="280" width="120" height="28.9" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,175 @@
<mxfile host="Electron" modified="2024-03-19T14:12:52.210Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="J1LRXOkTAi91c4G0mT7G" version="24.0.4" type="device">
<diagram name="Page-1" id="wKya6_9cVaX_OwqrHy0P">
<mxGraphModel dx="819" dy="479" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lUtrUhSS5DsyC9wEvYwb-7" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="820" y="91" width="360" height="630" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-1" value="MessageReceived" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontStyle=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="827" y="91" width="158" height="30" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-4" target="OJyx8rHUgYEJOKxLf1JB-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-3" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-2" connectable="0" vertex="1">
<mxGeometry x="-0.3576" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-4" value="pow_hash_verify (without peer_list &amp;amp; process_list)" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="344.74999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-6" value="pow_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="424.38999999999993" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-9" target="OJyx8rHUgYEJOKxLf1JB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-8" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-7" connectable="0" vertex="1">
<mxGeometry x="-0.0896" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-9" value="data_size_max_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="266.09999999999997" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="978" y="533.0999999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-11" value="peer_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="492.09999999999997" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-13" target="OJyx8rHUgYEJOKxLf1JB-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-31" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="978" y="475" />
<mxPoint x="978" y="481" />
<mxPoint x="1250" y="481" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-13" value="process_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="573.2100000000002" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.529;entryY=0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="lUtrUhSS5DsyC9wEvYwb-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="636" />
<mxPoint x="976" y="671" />
</Array>
<mxPoint x="975.24" y="737.44" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.484;exitY=1.026;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="lUtrUhSS5DsyC9wEvYwb-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="641" />
<mxPoint x="1110" y="641" />
</Array>
<mxPoint x="1116" y="736" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-14" value="sp_tx_faucet_send" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="613.2400000000001" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-16" target="OJyx8rHUgYEJOKxLf1JB-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-16" value="new_peer_connect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="530.3899999999999" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-19" target="OJyx8rHUgYEJOKxLf1JB-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-18" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-17" connectable="0" vertex="1">
<mxGeometry x="-0.34" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-19" value="pow_timestamp_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919.5" y="190.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-20" target="OJyx8rHUgYEJOKxLf1JB-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-22" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="OJyx8rHUgYEJOKxLf1JB-21" vertex="1" connectable="0">
<mxGeometry x="0.0303" y="-1" relative="1" as="geometry">
<mxPoint y="-5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-20" value="message hash&lt;div&gt;exist in memory ?&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="120.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="OJyx8rHUgYEJOKxLf1JB-29" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="840" y="712" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-31" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1189" y="492.1" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-12" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-1" value="socketConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="10" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-14" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry">
<mxPoint x="980" y="111" as="targetPoint" />
<mxPoint x="1142" y="80" as="sourcePoint" />
<Array as="points">
<mxPoint x="1142" y="101" />
<mxPoint x="979" y="101" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-2" value="socketMessage" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1081.5" y="10" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-5" value="Message process_list update" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="912" y="671" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-6" value="Message peer_list update" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1050" y="671" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-8" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1280" y="111" />
<mxPoint x="979" y="111" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-8" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1221.5" y="10.000000000000007" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-1" target="lUtrUhSS5DsyC9wEvYwb-12">
<mxGeometry relative="1" as="geometry">
<mxPoint x="980" y="39" as="sourcePoint" />
<mxPoint x="979" y="121" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-12" value="MessageConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="50" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-14" value="Message" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1082" y="50" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.486;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-2" target="lUtrUhSS5DsyC9wEvYwb-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

@ -1,677 +0,0 @@
<mxfile host="Electron" modified="2024-03-15T20:31:24.051Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="furMGE3c5KUf9ZHwuKLI" version="24.0.4" type="device">
<diagram id="bWoO5ACGZIaXrIiKNTKd" name="Page-1">
<mxGraphModel dx="3088" dy="2010" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="274" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="2" target="4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="275" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="2" target="5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="2" value="&lt;b&gt;KeyRecover&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-761.7619217081851" y="44" width="88.8134519572954" height="28.999999999999993" as="geometry" />
</mxCell>
<mxCell id="4" value="Part2&lt;br&gt;128 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-524.36" y="83.92" width="103.81" height="29" as="geometry" />
</mxCell>
<mxCell id="5" value="Part1&lt;br&gt;128 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1089" y="84" width="88.8134519572954" height="28.999999999999993" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-285" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="258" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1090" y="235" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-287" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="6" target="282" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="6" value="Part2Enc" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-524.3599999999999" y="219" width="103.81" height="29" as="geometry" />
</mxCell>
<mxCell id="8" value="Part1Enc" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1089" y="217.29" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="20" value="" style="endArrow=none;html=1;rounded=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;startArrow=classic;startFill=1;endFill=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="276" target="5" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-1017.308192620023" y="60" as="sourcePoint" />
<mxPoint x="-985.593274021352" y="28" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="21" value="" style="endArrow=none;html=1;rounded=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;startArrow=classic;startFill=1;endFill=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" target="4" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-473.30499999999984" y="188" as="sourcePoint" />
<mxPoint x="-594.905" y="31.210000000000264" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="32" value="Shard" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-516.4195321963339" y="323" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="281" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="278" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-717" y="113" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="77" value="ImageRevoke" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontStyle=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
<mxGeometry x="-770.93" y="83.92" width="110" height="29" as="geometry" />
</mxCell>
<mxCell id="154" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="155" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-717" y="-10" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-290" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="155" target="5h_mtuP3TllbSGRXwFMH-287" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="155" value="WalletCreate" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-761.76" y="-235" width="88.81" height="33" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-294" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="160" target="HEAZNrv7IqFEUBU4v7G9-289" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-295" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HEAZNrv7IqFEUBU4v7G9-294" vertex="1" connectable="0">
<mxGeometry x="-0.4499" relative="1" as="geometry">
<mxPoint x="-26" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-296" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="160" target="167" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-297" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HEAZNrv7IqFEUBU4v7G9-296" vertex="1" connectable="0">
<mxGeometry x="-0.8623" y="1" relative="1" as="geometry">
<mxPoint x="10" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="160" value="ImageRecover in cache ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1244.5500000000002" y="-334" width="170" height="49" as="geometry" />
</mxCell>
<mxCell id="161" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=none;fontColor=#000000;entryX=0.501;entryY=0.044;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="162" target="164" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1374.98" y="-151" as="sourcePoint" />
<mxPoint x="-1280" y="-198" as="targetPoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="162" value="NewDevice" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1354.98" y="-241" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="163" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="164" target="HEAZNrv7IqFEUBU4v7G9-305" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1264.98" y="-140" as="sourcePoint" />
<mxPoint x="-1295.03" y="-122" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="164" value="ImageRecoverUpload" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1352.89" y="-193.21" width="115.48" height="29" as="geometry" />
</mxCell>
<mxCell id="165" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1294.28" y="-76" as="sourcePoint" />
<mxPoint x="-1294.73" y="-60" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="166" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1351.59" y="-106" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="167" value="WalletRecover" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1350" y="-61" width="110.54" height="33" as="geometry" />
</mxCell>
<mxCell id="280" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="181" target="279" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="181" value="ImageRecover" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontStyle=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
<mxGeometry x="-772" y="252.71000000000004" width="110" height="29" as="geometry" />
</mxCell>
<mxCell id="259" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="189" target="202" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1171" y="390" />
<mxPoint x="-1171" y="390" />
<mxPoint x="-1171" y="491" />
</Array>
<mxPoint x="-1190" y="390" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="189" value="PreId" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1215.921944604848" y="345.99999999999994" width="88.8134519572954" height="28.999999999999993" as="geometry" />
</mxCell>
<mxCell id="190" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="258" target="189" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-367.91" y="256.15" as="targetPoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="192" value="Shard" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-506.4195321963339" y="333" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="193" target="202" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1184" y="426" as="targetPoint" />
<Array as="points">
<mxPoint x="-449" y="392" />
<mxPoint x="-1170" y="392" />
<mxPoint x="-1170" y="491" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="193" value="Shard" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-493.4195321963339" y="346" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="200" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="196" target="197" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-286" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="196" target="202" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-80" y="186" />
<mxPoint x="-80" y="680" />
<mxPoint x="-1274" y="680" />
<mxPoint x="-1274" y="513" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="196" value="SharedProcessSelected" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-269.55999999999995" y="171.00000000000006" width="170" height="30.71" as="geometry" />
</mxCell>
<mxCell id="197" value="SpAddress" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-230.55953219633375" y="233.29000000000002" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="198" value="SpAddress" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-220.55953219633375" y="243.29000000000002" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="205" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.553;entryY=0.011;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="199" target="202" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-166" y="392" />
<mxPoint x="-1170" y="392" />
<mxPoint x="-1170" y="491" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-288" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="199" target="282" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-211" y="280" />
<mxPoint x="-360" y="280" />
<mxPoint x="-360" y="279" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="199" value="SpAddress" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-210.55953219633375" y="253.29000000000002" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="202" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1254" y="491" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="203" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1235.7457165981" y="501" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="233" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="204" target="228" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="558" />
<mxPoint x="-1199" y="558" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="234" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="204" target="230" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="558" />
<mxPoint x="-1158" y="558" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="235" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="204" target="231" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="558" />
<mxPoint x="-1119" y="558" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="236" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="204" target="232" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="558" />
<mxPoint x="-1080" y="558" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-287" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" source="204" target="U1iS4aTrDNJz4kT7s3QN-288" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-780" y="525.8333333333335" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="204" value="RequestPrdList" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1217.49" y="511" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="228" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1213.97" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="230" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1172.9" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="231" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1133.97" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="232" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1094.03" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="245" value="Relay WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1172.9" y="628.71" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="258" value="SHA256" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1234.0199999999998" y="274" width="125" height="30" as="geometry" />
</mxCell>
<mxCell id="269" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="6" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-473.30499999999984" y="195" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="277" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="276" target="8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XqTc7s29-gL46L3V4mSs-302" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="276" target="181" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-821.8800000000001" y="179.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XqTc7s29-gL46L3V4mSs-307" value="SeedRand1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="XqTc7s29-gL46L3V4mSs-302" vertex="1" connectable="0">
<mxGeometry x="-0.1098" y="1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="276" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;Encrypt&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1113.29" y="165" width="137.39" height="30" as="geometry" />
</mxCell>
<mxCell id="278" value="Download" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-772.45" y="128" width="110" height="28" as="geometry" />
</mxCell>
<mxCell id="279" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-769.8" y="299" width="110" height="29" as="geometry" />
</mxCell>
<mxCell id="284" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="282" target="32" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="282" value="Shamir Secret Sharing" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-567.45" y="263.86" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-290" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-289" target="155" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-292" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HEAZNrv7IqFEUBU4v7G9-290" vertex="1" connectable="0">
<mxGeometry x="-0.7216" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-303" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-289" target="162" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1071" y="-261" />
<mxPoint x="-1295" y="-261" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-304" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HEAZNrv7IqFEUBU4v7G9-303" vertex="1" connectable="0">
<mxGeometry x="-0.4442" y="4" relative="1" as="geometry">
<mxPoint x="48" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-289" value="new device ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1070.68" y="-284" width="170" height="49" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-301" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-299" target="160" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-299" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="-1169.55" y="-372" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-306" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-305" target="166" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-305" value="ImageRecover" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1349.98" y="-149.07999999999998" width="110" height="29" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-314" value="5" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-762" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-315" value="6" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-720.9300000000001" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-316" value="7" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-682" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-317" value="8" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-642.06" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-318" value="Relay WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-720.9300000000001" y="628.71" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-329" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-759.8" y="309" width="110" height="29" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-334" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-333" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-184.55999999999995" y="127.57999999999997" as="targetPoint" />
<Array as="points">
<mxPoint x="-185" y="104.29" />
<mxPoint x="-185" y="112.29" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-333" value="SDK" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-241.16" y="76.29" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-337" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="196" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-184.83999999999992" y="158.29000000000002" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-336" value="SharedProcessList" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-277.55999999999995" y="127.57999999999997" width="180" height="30.71" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-341" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-338" target="HEAZNrv7IqFEUBU4v7G9-340" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-853" y="442" />
<mxPoint x="-911" y="442" />
<mxPoint x="-911" y="462" />
<mxPoint x="-907" y="462" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-338" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-910.42" y="402" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-342" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-339" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-910" y="462" as="targetPoint" />
<Array as="points">
<mxPoint x="-981" y="442" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-339" value="SDK" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1038.8300000000002" y="402" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-343" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-340" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1040" y="582" as="targetPoint" />
<Array as="points">
<mxPoint x="-916" y="582" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-344" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="HEAZNrv7IqFEUBU4v7G9-340" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-790" y="582" as="targetPoint" />
<Array as="points">
<mxPoint x="-916" y="582" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-340" value="SharedPeerListMerged" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1005.8499999999999" y="460.29" width="180" height="30.71" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-371" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="XqTc7s29-gL46L3V4mSs-309" target="77" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-800" y="98" />
</Array>
<mxPoint x="-827.2399999999998" y="142.5" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-372" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="XqTc7s29-gL46L3V4mSs-310" target="77" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-810" y="81" as="targetPoint" />
<Array as="points">
<mxPoint x="-808" y="146" />
<mxPoint x="-800" y="146" />
<mxPoint x="-800" y="98" />
</Array>
<mxPoint x="-828.2399999999998" y="185.5" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="AH83P5LbfY0wmGR11IUw-284" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="XqTc7s29-gL46L3V4mSs-304" target="181" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-730" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="AH83P5LbfY0wmGR11IUw-285" value="SeedRand2" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="AH83P5LbfY0wmGR11IUw-284" vertex="1" connectable="0">
<mxGeometry x="0.0577" y="3" relative="1" as="geometry">
<mxPoint x="48" y="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="XqTc7s29-gL46L3V4mSs-304" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;Encrypt&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-542" y="165" width="137.39" height="30" as="geometry" />
</mxCell>
<mxCell id="XqTc7s29-gL46L3V4mSs-309" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;KeyRevokeSpend&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-971.1" y="83" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="XqTc7s29-gL46L3V4mSs-310" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;KeyRevokeScan&lt;/b&gt;&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-971.0000000000001" y="128" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-286" value="Message" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-722.0000000000001" y="643" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-288" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-795.8000000000001" y="511" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-289" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-777.5457165981001" y="521" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-291" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-314" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-292" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-315" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-293" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-316" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-294" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-317" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-290" value="RequestPrdMessage&lt;br&gt;(+ TxSp)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-759.2914331962005" y="531" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-295" value="To all roles" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1320" y="517" width="60" height="33" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-305" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1519" y="737.0699999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-307" value="Relay - side chain node not required" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1483.3200000000002" y="736" width="214.32" height="30" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-310" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1520" y="772.07" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-311" value="Relay - side chain node required" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1484.3200000000002" y="771.0000000000001" width="214.32" height="30" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-284" value="&lt;b&gt;`item_member_enc_by_sp_shared_secret`&lt;/b&gt;&lt;br&gt;(only for member managers)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1320" y="423" width="260" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-285" value="Members" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-300" y="243.29000000000002" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-288" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="KGCLxLdSfCaxDo2TsfCf-284" target="KGCLxLdSfCaxDo2TsfCf-284" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-289" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1320" y="440" as="targetPoint" />
<Array as="points">
<mxPoint x="-1360" y="440" />
<mxPoint x="-1320" y="440" />
</Array>
<mxPoint x="-1360" y="441.8600000000001" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-290" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.591;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="KGCLxLdSfCaxDo2TsfCf-284" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1322" y="438" as="targetPoint" />
<Array as="points">
<mxPoint x="-1340" y="486" />
<mxPoint x="-1340" y="440" />
<mxPoint x="-1322" y="440" />
</Array>
<mxPoint x="-1360" y="485.5" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-291" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.001;entryY=0.587;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="KGCLxLdSfCaxDo2TsfCf-284" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1340" y="523" />
<mxPoint x="-1340" y="440" />
</Array>
<mxPoint x="-1360" y="523.21" as="sourcePoint" />
<mxPoint x="-1322" y="438" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-292" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;KeyRecoverScan&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;private metadata&lt;/span&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1524.1" y="426.07" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-293" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;KeyMainSpend&lt;/b&gt;&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;private metadata&lt;/span&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1524" y="467.07" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-294" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;KeyMainScan&lt;br&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;private metadata&lt;/span&gt;&lt;br&gt;&lt;/div&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1524" y="505.78" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-295" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-952.03" y="741" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-316" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1157.1499999999999" y="741" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-318" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-942.03" y="751" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-319" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1147.1499999999999" y="751" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-321" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-932.03" y="761" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-322" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1137.1499999999999" y="761" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-324" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-922.03" y="771" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-325" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1127.1499999999999" y="771" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-327" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-912.03" y="781" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-328" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1117.1499999999999" y="781" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-330" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-902.03" y="791" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-331" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1107.1499999999999" y="791" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-333" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-892.03" y="801" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-334" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1097.1499999999999" y="801" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-336" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-882.03" y="811" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-337" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1087.1499999999999" y="811" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-339" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-872.03" y="821" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-340" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1077.1499999999999" y="821" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="KGCLxLdSfCaxDo2TsfCf-342" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-930" y="690" as="sourcePoint" />
<mxPoint x="-930" y="730" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="mM1gybHHXk3-ZNENjHdL-284" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.224;entryY=0.065;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8" target="181" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xSIgGbmu95QqtSGV3vQQ-285" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="xSIgGbmu95QqtSGV3vQQ-284" target="258" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="xSIgGbmu95QqtSGV3vQQ-284" value="Password&lt;br&gt;18 characters" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1229.39" y="81" width="115.75" height="32" as="geometry" />
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-284" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Lj3ro7yhdUhcsVQ_hEMl-284" target="2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-286" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="Lj3ro7yhdUhcsVQ_hEMl-284" target="KGCLxLdSfCaxDo2TsfCf-292" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-717" y="30" />
<mxPoint x="-1544" y="30" />
<mxPoint x="-1544" y="441" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Lj3ro7yhdUhcsVQ_hEMl-284" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;KeyGenRecover&lt;/span&gt;&lt;/div&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-798.7099999999999" y="-30" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-288" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="5h_mtuP3TllbSGRXwFMH-287" target="KGCLxLdSfCaxDo2TsfCf-293" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1075" y="10" />
<mxPoint x="-1580" y="10" />
<mxPoint x="-1580" y="482" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-289" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="5h_mtuP3TllbSGRXwFMH-287" target="KGCLxLdSfCaxDo2TsfCf-294" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1075" y="10" />
<mxPoint x="-1580" y="10" />
<mxPoint x="-1580" y="521" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-287" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;KeyGenMainnet&lt;/span&gt;&lt;/div&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1157.15" y="-30" width="163.42" height="30" as="geometry" />
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-292" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#999999;" parent="1" source="5h_mtuP3TllbSGRXwFMH-291" target="XqTc7s29-gL46L3V4mSs-309" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-894" y="50" />
<mxPoint x="-991" y="50" />
<mxPoint x="-991" y="98" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-293" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#999999;" parent="1" source="5h_mtuP3TllbSGRXwFMH-291" target="XqTc7s29-gL46L3V4mSs-310" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-894" y="50" />
<mxPoint x="-991" y="50" />
<mxPoint x="-991" y="143" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="5h_mtuP3TllbSGRXwFMH-291" value="&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;KeyGenRevoke&lt;/span&gt;&lt;/div&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-975.9000000000001" y="-30" width="163.42" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -1,561 +0,0 @@
<mxfile host="Electron" modified="2024-03-11T10:55:49.008Z" 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="LjOszHhD9lxtHp7PAO87" version="23.1.5" type="device">
<diagram id="bWoO5ACGZIaXrIiKNTKd" name="Page-1">
<mxGraphModel dx="2959" dy="290" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="202" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1254" y="491" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="203" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1235.7457165981" y="501" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="233" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="204" target="228" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="560" />
<mxPoint x="-1199" y="560" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="234" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="204" target="230" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="560" />
<mxPoint x="-1158" y="560" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="235" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="204" target="231" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="560" />
<mxPoint x="-1119" y="560" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="236" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="204" target="232" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="540" />
<mxPoint x="-1140" y="560" />
<mxPoint x="-1080" y="560" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-287" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" source="204" target="U1iS4aTrDNJz4kT7s3QN-288" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-780" y="525.8333333333335" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="204" value="RequestPrdUpdate&lt;br&gt;&lt;b&gt;member&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1217.4914331962004" y="511" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="228" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1213.97" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="230" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1172.9" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="231" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1133.97" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="232" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1094.03" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="DLJctxT3D2mWswRGw-9P-316" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="245" edge="1" target="fIN9LJIhpEY6EGzNKIPz-322">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-950" y="700" as="targetPoint" />
<Array as="points">
<mxPoint x="-1143" y="679" />
<mxPoint x="-1140" y="679" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="245" value="Relay WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1172.9" y="628.71" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-314" value="5" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1001" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-315" value="6" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-959.9300000000001" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-316" value="7" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-921" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-317" value="8" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-881.06" y="597.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="HEAZNrv7IqFEUBU4v7G9-318" value="Relay&amp;nbsp;WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-959.9300000000001" y="628.71" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="DLJctxT3D2mWswRGw-9P-317" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-286" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1140" y="700" as="targetPoint" />
<Array as="points">
<mxPoint x="-930" y="673" />
<mxPoint x="-930" y="680" />
<mxPoint x="-1140" y="680" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-286" value="Message" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-961.0000000000001" y="643" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-288" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1034.8000000000002" y="511" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-289" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1016.5457165981002" y="521" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-291" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-314" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-292" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-315" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-293" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-316" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-294" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U1iS4aTrDNJz4kT7s3QN-290" target="HEAZNrv7IqFEUBU4v7G9-317" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U1iS4aTrDNJz4kT7s3QN-290" value="RequestPrdMessage&lt;br&gt;(+ TxSp)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-998.2914331962005" y="531" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-315" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1501" y="490.93" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-316" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1482.7457165981" y="500.93" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-317" value="RequestPcd&lt;br&gt;&lt;b&gt;member&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1464.4914331962004" y="510.93" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-318" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="228" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1400" y="540" />
<mxPoint x="-1400" y="560" />
<mxPoint x="-1199" y="560" />
</Array>
<mxPoint x="-1341" y="539.78" as="sourcePoint" />
<mxPoint x="-1400" y="597.78" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-319" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="230" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1400" y="540" />
<mxPoint x="-1400" y="560" />
<mxPoint x="-1158" y="560" />
</Array>
<mxPoint x="-1341" y="539.78" as="sourcePoint" />
<mxPoint x="-1358" y="597.78" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-320" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="231" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1400" y="540" />
<mxPoint x="-1400" y="560" />
<mxPoint x="-1119" y="560" />
</Array>
<mxPoint x="-1341" y="539.78" as="sourcePoint" />
<mxPoint x="-1320" y="597.78" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-321" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="232" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1400" y="540" />
<mxPoint x="-1400" y="560" />
<mxPoint x="-1080" y="560" />
</Array>
<mxPoint x="-1341" y="539.78" as="sourcePoint" />
<mxPoint x="-1280" y="597.78" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-322" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1254" y="700.0699999999999" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-323" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1235.7457165981" y="710.0699999999999" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-324" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-329" target="fIN9LJIhpEY6EGzNKIPz-330" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="749.0699999999999" />
<mxPoint x="-1140" y="769.0699999999999" />
<mxPoint x="-1199" y="769.0699999999999" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-325" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-329" target="fIN9LJIhpEY6EGzNKIPz-331" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="749.0699999999999" />
<mxPoint x="-1140" y="769.0699999999999" />
<mxPoint x="-1158" y="769.0699999999999" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-326" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-329" target="fIN9LJIhpEY6EGzNKIPz-332" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="749.0699999999999" />
<mxPoint x="-1140" y="769.0699999999999" />
<mxPoint x="-1119" y="769.0699999999999" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-327" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-329" target="fIN9LJIhpEY6EGzNKIPz-333" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1140" y="749.0699999999999" />
<mxPoint x="-1140" y="769.0699999999999" />
<mxPoint x="-1080" y="769.0699999999999" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-328" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-329" target="fIN9LJIhpEY6EGzNKIPz-343" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-780" y="734.9033333333334" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-329" value="RequestPrdUpdate&lt;br&gt;&lt;b style=&quot;border-color: var(--border-color);&quot;&gt;process&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1217.4914331962004" y="720.0699999999999" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-330" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1213.97" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-331" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1172.9" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-332" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1133.97" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-333" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1094.03" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-334" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-335" edge="1" target="fIN9LJIhpEY6EGzNKIPz-357">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1120" y="910" as="targetPoint" />
<Array as="points">
<mxPoint x="-1143" y="888" />
<mxPoint x="-1140" y="888" />
<mxPoint x="-1140" y="910" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-335" value="Relay&amp;nbsp;WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1172.9" y="837.78" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-336" value="5" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1001" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-337" value="6" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-959.9300000000001" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-338" value="7" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-921" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-339" value="8" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-881.06" y="806.8499999999999" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-340" value="Relay&amp;nbsp;WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-959.9300000000001" y="837.78" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-341" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.799;entryY=-0.046;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-342" edge="1" target="fIN9LJIhpEY6EGzNKIPz-357">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-950" y="909.0699999999999" as="targetPoint" />
<Array as="points">
<mxPoint x="-931" y="889" />
<mxPoint x="-1140" y="889" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-342" value="Message" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-961.0000000000001" y="852.0699999999999" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-343" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1034.8000000000002" y="720.0699999999999" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-344" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1016.5457165981002" y="730.0699999999999" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-345" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-349" target="fIN9LJIhpEY6EGzNKIPz-336" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-346" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-349" target="fIN9LJIhpEY6EGzNKIPz-337" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-347" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-349" target="fIN9LJIhpEY6EGzNKIPz-338" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-348" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-349" target="fIN9LJIhpEY6EGzNKIPz-339" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-349" value="RequestPrdMessage&lt;br&gt;(+ TxSp)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-998.2914331962005" y="740.0699999999999" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-350" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1517" y="700" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-351" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1498.7457165981" y="710" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-352" value="RequestPcd&lt;br&gt;&lt;b&gt;process&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1480.4914331962004" y="720" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-353" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="fIN9LJIhpEY6EGzNKIPz-330" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1410" y="769" />
<mxPoint x="-1199" y="769" />
</Array>
<mxPoint x="-1410" y="750" as="sourcePoint" />
<mxPoint x="-1400" y="806.8499999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-354" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" target="fIN9LJIhpEY6EGzNKIPz-331" edge="1" source="fIN9LJIhpEY6EGzNKIPz-352">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1410" y="749" />
<mxPoint x="-1410" y="769" />
<mxPoint x="-1158" y="769" />
</Array>
<mxPoint x="-1400" y="750" as="sourcePoint" />
<mxPoint x="-1358" y="806.8499999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-355" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="fIN9LJIhpEY6EGzNKIPz-332" edge="1" source="fIN9LJIhpEY6EGzNKIPz-352">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1410" y="749" />
<mxPoint x="-1410" y="769" />
<mxPoint x="-1119" y="769" />
</Array>
<mxPoint x="-1341" y="748.8499999999999" as="sourcePoint" />
<mxPoint x="-1320" y="806.8499999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-356" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="fIN9LJIhpEY6EGzNKIPz-333" edge="1" source="fIN9LJIhpEY6EGzNKIPz-352">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1410" y="749" />
<mxPoint x="-1410" y="769" />
<mxPoint x="-1080" y="769" />
</Array>
<mxPoint x="-1341" y="748.8499999999999" as="sourcePoint" />
<mxPoint x="-1280" y="806.8499999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-357" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1261.75" y="910" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-358" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1243.4957165981" y="920" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-359" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-364" target="fIN9LJIhpEY6EGzNKIPz-365" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1147.75" y="959" />
<mxPoint x="-1147.75" y="979" />
<mxPoint x="-1206.75" y="979" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-360" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-364" target="fIN9LJIhpEY6EGzNKIPz-366" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1147.75" y="959" />
<mxPoint x="-1147.75" y="979" />
<mxPoint x="-1165.75" y="979" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-361" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-364" target="fIN9LJIhpEY6EGzNKIPz-367" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1147.75" y="959" />
<mxPoint x="-1147.75" y="979" />
<mxPoint x="-1126.75" y="979" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-362" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-364" target="fIN9LJIhpEY6EGzNKIPz-368" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1147.75" y="959" />
<mxPoint x="-1147.75" y="979" />
<mxPoint x="-1087.75" y="979" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-363" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-364" target="fIN9LJIhpEY6EGzNKIPz-375" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-761.75" y="944.8333333333335" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-364" value="RequestPrdList" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1225.2414331962004" y="930" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-365" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1221.72" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-366" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1180.65" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-367" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1141.72" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-368" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1101.78" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-369" value="Relay&amp;nbsp;WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1180.65" y="1047.71" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-370" value="5" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-998.75" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-371" value="6" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-957.6800000000001" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-372" value="7" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-918.75" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-373" value="8" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-878.81" y="1016.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-374" value="Relay&amp;nbsp;WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-957.6800000000001" y="1047.71" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-375" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1032.5500000000002" y="930" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-376" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1014.2957165981001" y="940" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-377" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-381" target="fIN9LJIhpEY6EGzNKIPz-370" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-378" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-381" target="fIN9LJIhpEY6EGzNKIPz-371" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-379" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-381" target="fIN9LJIhpEY6EGzNKIPz-372" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-380" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-381" target="fIN9LJIhpEY6EGzNKIPz-373" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-381" value="RequestPrdMessage&lt;br&gt;(+ TxSp)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-996.0414331962005" y="950" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-382" value="All Roles" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1339" y="929" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-384" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-383" edge="1" target="fIN9LJIhpEY6EGzNKIPz-315">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1384" y="490" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-383" value="&lt;b&gt;ItemMember&lt;/b&gt;&lt;br&gt;(this user)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1468.8" y="410" width="88.8" height="29" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-385" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-386" edge="1" target="fIN9LJIhpEY6EGzNKIPz-350">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1375.2" y="700.0699999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-386" value="&lt;b&gt;ItemProcess&lt;/b&gt;&lt;br&gt;(with this new sp_address for the selected role)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1510" y="590" width="140" height="59.07" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-388" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-387" target="fIN9LJIhpEY6EGzNKIPz-386" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-391" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-387" edge="1" target="fIN9LJIhpEY6EGzNKIPz-394">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1380" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-387" value="selected role" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1730" y="139.99999999999994" width="100" height="29" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-390" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#999999;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-389" target="fIN9LJIhpEY6EGzNKIPz-386" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-389" value="last ItemProcess version" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1620" y="139.99999999999994" width="100" height="29" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-393" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-392" target="fIN9LJIhpEY6EGzNKIPz-383" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-392" value="&lt;b&gt;Add new fields&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1468.8" y="350" width="88.8" height="29" as="geometry" />
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-250" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="fIN9LJIhpEY6EGzNKIPz-394" target="fIN9LJIhpEY6EGzNKIPz-392">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-394" value="&lt;b&gt;HTML form&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1468.8" y="280" width="88.8" height="29" as="geometry" />
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-396" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="fIN9LJIhpEY6EGzNKIPz-395" target="fIN9LJIhpEY6EGzNKIPz-383" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1309" y="390" />
<mxPoint x="-1424" y="390" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fIN9LJIhpEY6EGzNKIPz-395" value="&lt;b&gt;Inital ItemMember&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1347.35" y="350" width="76.25" height="29" as="geometry" />
</mxCell>
<mxCell id="3oxP2IrQZiT_M8X3yCe1-245" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1699" y="983.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="3oxP2IrQZiT_M8X3yCe1-246" value="Relay - side chain node not required" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1663.3200000000002" y="982.71" width="214.32" height="30" as="geometry" />
</mxCell>
<mxCell id="3oxP2IrQZiT_M8X3yCe1-247" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1700" y="1018.7800000000001" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="3oxP2IrQZiT_M8X3yCe1-248" value="Relay - side chain node required" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1664.3200000000002" y="1017.7100000000002" width="214.32" height="30" as="geometry" />
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-246" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="W0tqueod3XqBArbf31HU-245" target="fIN9LJIhpEY6EGzNKIPz-387">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-248" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="W0tqueod3XqBArbf31HU-247">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1680" y="118" as="sourcePoint" />
<mxPoint x="-940" y="169" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-245" value="selected process" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-1730" y="79.99999999999994" width="100" height="29" as="geometry" />
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-249" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="W0tqueod3XqBArbf31HU-247" target="202">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1178" y="209" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-247" value="member managers" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="-1225.72" y="179.99999999999994" width="100" height="29" as="geometry" />
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-252" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="W0tqueod3XqBArbf31HU-251" target="fIN9LJIhpEY6EGzNKIPz-350">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="W0tqueod3XqBArbf31HU-251" value="&lt;b&gt;Inital ItemMember&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="-1347.35" y="590" width="76.25" height="59.07" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -1,702 +0,0 @@
<mxfile host="Electron" modified="2024-03-11T10:09:58.446Z" 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="jp5a0OvhGgTlv9Kz8rrx" version="23.1.5" type="device">
<diagram name="Page-1" id="nezTab6434Mr3TNqJTht">
<mxGraphModel dx="3341" dy="2193" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-6" value="WalletCreate" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-855.97" y="-281" width="88.81" height="33" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-11" target="sHT8GTnQFrlxJ-m2nGzn-23" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-8" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="sHT8GTnQFrlxJ-m2nGzn-7" vertex="1" connectable="0">
<mxGeometry x="-0.4499" relative="1" as="geometry">
<mxPoint x="-26" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-11" target="sHT8GTnQFrlxJ-m2nGzn-34" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1353.9" y="47.50000000000023" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-10" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="sHT8GTnQFrlxJ-m2nGzn-9" vertex="1" connectable="0">
<mxGeometry x="-0.8623" y="1" relative="1" as="geometry">
<mxPoint x="10" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-11" value="ImageRecover in cache ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1244.5500000000002" y="-339" width="170" height="49" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-23" target="sHT8GTnQFrlxJ-m2nGzn-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-20" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="sHT8GTnQFrlxJ-m2nGzn-19" vertex="1" connectable="0">
<mxGeometry x="-0.7216" y="-1" relative="1" as="geometry">
<mxPoint x="12" y="-1" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-23" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1071" y="-266" />
<mxPoint x="-1295" y="-266" />
</Array>
<mxPoint x="-1294.98" y="-246" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-22" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="sHT8GTnQFrlxJ-m2nGzn-21" vertex="1" connectable="0">
<mxGeometry x="-0.4442" y="4" relative="1" as="geometry">
<mxPoint x="48" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-23" value="new device ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1070.68" y="-289" width="170" height="49" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-25" target="sHT8GTnQFrlxJ-m2nGzn-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-25" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="-1169.55" y="-377" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=none;fontColor=#000000;entryX=0.501;entryY=0.044;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-29" target="sHT8GTnQFrlxJ-m2nGzn-31" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1374.98" y="-153" as="sourcePoint" />
<mxPoint x="-1280" y="-200" as="targetPoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-29" value="NewDevice" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1354.98" y="-243" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-31" target="sHT8GTnQFrlxJ-m2nGzn-36" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1264.98" y="-142" as="sourcePoint" />
<mxPoint x="-1295.03" y="-124" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-31" value="ImageRecoverUpload" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1352.89" y="-195.21" width="115.48" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-33" target="sHT8GTnQFrlxJ-m2nGzn-34" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1354.98" y="-62.21000000000001" as="sourcePoint" />
<mxPoint x="-1294.85" y="-39.99999999999997" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-33" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1351.59" y="-108" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-306" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-34" target="sHT8GTnQFrlxJ-m2nGzn-301" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1220" y="-43" />
<mxPoint x="-1220" y="-158" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-34" value="WalletRecover" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1349.98" y="-60" width="114.44" height="33" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-36" target="sHT8GTnQFrlxJ-m2nGzn-33" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-36" value="ImageRecover" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1349.98" y="-151.07999999999998" width="110" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-38" target="sHT8GTnQFrlxJ-m2nGzn-39" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-38" value="SharedProcessSelected" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1409" y="114.71" width="170" height="30.71" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-39" value="SpAddress" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1369.9995321963338" y="177" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-40" value="SpAddress" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1359.9995321963338" y="187" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-41" value="SpAddress" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1349.9995321963338" y="197" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-43" target="sHT8GTnQFrlxJ-m2nGzn-47" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1279" y="60" />
<mxPoint x="-1324" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-43" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1320" y="21" width="83.03" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-45" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1379" y="48" />
<mxPoint x="-1380" y="48" />
<mxPoint x="-1380" y="60" />
<mxPoint x="-1324" y="60" />
</Array>
<mxPoint x="-1324" y="70" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-45" value="SDK" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1414.28" y="21" width="70.44" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-47" target="sHT8GTnQFrlxJ-m2nGzn-38" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-47" value="SharedProcessListMerged" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1414.28" y="71.28999999999999" width="180" height="30.71" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-41" target="sHT8GTnQFrlxJ-m2nGzn-50" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1306" y="330" />
<mxPoint x="-1201" y="330" />
</Array>
<mxPoint x="-1279.612463584234" y="322.04781" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-50" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1275.89" y="352" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-51" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1257.6357165981" y="362.00000000000006" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="sHT8GTnQFrlxJ-m2nGzn-58" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1170" y="429" />
<mxPoint x="-1181" y="429" />
</Array>
<mxPoint x="-1170.0439590436406" y="418" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="sHT8GTnQFrlxJ-m2nGzn-59" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1170" y="429" />
<mxPoint x="-1142" y="429" />
</Array>
<mxPoint x="-1170.0439590436406" y="418" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" target="sHT8GTnQFrlxJ-m2nGzn-60" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1170" y="429" />
<mxPoint x="-1103" y="429" />
</Array>
<mxPoint x="-1170.0439590436406" y="418" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-365" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-56" target="sHT8GTnQFrlxJ-m2nGzn-57" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1170" y="429" />
<mxPoint x="-1222" y="429" />
</Array>
<mxPoint x="-1170" y="418" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-56" value="RequestPrdList" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1246.2414331962004" y="373.00000000000006" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-57" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1236.97" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-58" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1195.9" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-59" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1156.97" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-60" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1117.03" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-62" value="Relay WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1195.9" y="475.71000000000004" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-71" value="5" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-791" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-72" value="6" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-749.9300000000001" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-73" value="7" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-711" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-74" value="8" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-671.06" y="444.78" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-77" value="Relay WS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-749.9300000000001" y="475.71000000000004" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-85" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-86" target="sHT8GTnQFrlxJ-m2nGzn-91" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-878.94" y="298" />
<mxPoint x="-936.94" y="298" />
<mxPoint x="-936.94" y="318" />
<mxPoint x="-932.94" y="318" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-86" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-936.36" y="258" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-87" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-88" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-935.94" y="318" as="targetPoint" />
<Array as="points">
<mxPoint x="-1006.94" y="298" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-88" value="SDK" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1064.7700000000002" y="258" width="114.62" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-89" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-91" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1060" y="438" as="targetPoint" />
<Array as="points">
<mxPoint x="-942" y="414" />
<mxPoint x="-942" y="436" />
<mxPoint x="-942" y="438" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-91" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-830" y="438" as="targetPoint" />
<Array as="points">
<mxPoint x="-942" y="414" />
<mxPoint x="-942" y="438" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-91" value="SharedPeerListMerged" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1031.79" y="316.29" width="180" height="30.71" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-314" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-284" target="sHT8GTnQFrlxJ-m2nGzn-313" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-949.56" y="714" as="sourcePoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-284" value="Controls" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1031.7914331962004" y="681" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-337" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-297" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-989.8649999999998" y="69.99999999999977" as="targetPoint" />
<Array as="points">
<mxPoint x="-1009" y="40" />
<mxPoint x="-990" y="40" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-297" target="sHT8GTnQFrlxJ-m2nGzn-317" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-297" value="Part1Enc" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1036.07" y="-68.5" width="60" height="30.71" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-336" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-298" target="sHT8GTnQFrlxJ-m2nGzn-339" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-871.2999999999997" y="-30" as="targetPoint" />
<Array as="points">
<mxPoint x="-921" y="40" />
<mxPoint x="-990" y="40" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-298" value="SeedRand1&lt;br&gt;256 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
<mxGeometry x="-961.73" y="-68.5" width="81.73" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-308" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-300" target="sHT8GTnQFrlxJ-m2nGzn-297" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1007" y="-83" />
<mxPoint x="-1006" y="-83" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-309" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-300" target="sHT8GTnQFrlxJ-m2nGzn-298" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1007" y="-83" />
<mxPoint x="-921" y="-83" />
</Array>
<mxPoint x="-930" y="-114" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-359" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-325" target="5Ne0HzyGfQl-3uoNr5Rs-33" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-396.4199999999996" y="171.13999999999987" as="targetPoint" />
<mxPoint x="-431" y="171.6300000000001" as="sourcePoint" />
<Array as="points">
<mxPoint x="-514" y="150" />
<mxPoint x="-430" y="150" />
<mxPoint x="-430" y="57" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-360" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-325" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-514" y="150" />
<mxPoint x="-430" y="150" />
<mxPoint x="-430" y="133" />
</Array>
<mxPoint x="-396.4199999999996" y="133.43000000000006" as="targetPoint" />
<mxPoint x="-431" y="171.6300000000001" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="Q8MjV8EZblA_sCvqo5JG-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-325" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-514" y="150" />
<mxPoint x="-430" y="150" />
<mxPoint x="-430" y="91" />
</Array>
<mxPoint x="-511" y="170" as="sourcePoint" />
<mxPoint x="-397" y="91" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-300" target="I9sp5S672SgGMplcR-zX-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1007" y="-83" />
<mxPoint x="-834" y="-83" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-300" value="ImageRecover" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1066.07" y="-128.87" width="118.1" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-312" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-301" target="sHT8GTnQFrlxJ-m2nGzn-300" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-301" value="Cache" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="-1066.8899999999999" y="-173" width="118.85" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-327" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-284" target="sHT8GTnQFrlxJ-m2nGzn-325" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-218.0564848910808" y="1001.5" as="sourcePoint" />
<Array as="points">
<mxPoint x="-430" y="696" />
<mxPoint x="-430" y="150" />
<mxPoint x="-514" y="150" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-313" value="Rendering" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1031.7914331962004" y="733" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-321" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-316" target="sHT8GTnQFrlxJ-m2nGzn-50" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-1152" y="330" />
<mxPoint x="-1200" y="330" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-316" value="PreId" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1196.1919446048478" y="119.99999999999999" width="88.8134519572954" height="28.999999999999993" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-320" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-317" target="sHT8GTnQFrlxJ-m2nGzn-316" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-317" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;SHA256&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1218.8500000000001" y="72.21" width="125" height="30" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-349" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-322" target="sHT8GTnQFrlxJ-m2nGzn-341" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-496.9999999999998" y="-18.62999999999974" as="sourcePoint" />
<mxPoint x="-556.1442857142856" y="148.66" as="targetPoint" />
<Array as="points">
<mxPoint x="-736" y="-37" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-322" value="Part2Enc" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-779.4" y="-65.79000000000002" width="103.81" height="29" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-328" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-323" target="sHT8GTnQFrlxJ-m2nGzn-326" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-323" value="Shard" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-581.0295321963339" y="72.21" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-324" value="Shard" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-571.0295321963339" y="82.21" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-325" value="Shard" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-558.0295321963339" y="95.21" width="88.8134519572954" height="30.709999999999994" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-329" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-326" target="sHT8GTnQFrlxJ-m2nGzn-322" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-326" value="Shamir Secret Sharing" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-632.0600000000001" y="13.070000000000007" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-331" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-965.5899999999999" y="775" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-332" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-313" target="sHT8GTnQFrlxJ-m2nGzn-331" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-345" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-333" target="sHT8GTnQFrlxJ-m2nGzn-343" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-830" y="170" as="targetPoint" />
<Array as="points">
<mxPoint x="-991" y="160" />
<mxPoint x="-832" y="160" />
<mxPoint x="-832" y="169" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-333" value="Part1" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1048.1" y="120.00000000000004" width="117.85" height="30.71" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-340" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="sHT8GTnQFrlxJ-m2nGzn-333" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-989.8649999999998" y="99.99999999999977" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-339" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;Decrypt&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-1058.56" y="70.00000000000001" width="137.39" height="30" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-352" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-341" target="sHT8GTnQFrlxJ-m2nGzn-342" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-652.1149999999998" y="180" as="sourcePoint" />
<mxPoint x="-649.5150000000003" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-341" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;Decrypt&lt;/b&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-804.81" y="70.00000000000001" width="137.39" height="30" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-344" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-342" target="sHT8GTnQFrlxJ-m2nGzn-343" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-734" y="160" />
<mxPoint x="-832" y="160" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-342" value="Part2" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-792.4399999999999" y="120.00000000000003" width="117.85" height="30.71" as="geometry" />
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-364" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#999999;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="sHT8GTnQFrlxJ-m2nGzn-343" target="sHT8GTnQFrlxJ-m2nGzn-313" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-790.7984697508899" y="170.5" as="sourcePoint" />
<mxPoint x="-970" y="1050" as="targetPoint" />
<Array as="points">
<mxPoint x="-580" y="193" />
<mxPoint x="-580" y="747" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="sHT8GTnQFrlxJ-m2nGzn-343" value="&lt;b&gt;KeyRecover&lt;/b&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-876.0019217081851" y="179" width="88.8134519572954" height="28.999999999999993" as="geometry" />
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.003;entryY=0.621;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryPerimeter=0;" parent="1" target="Y_iTnzTvrgFW2w7x7B82-6" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-681.17" y="388.98333333333346" as="targetPoint" />
<mxPoint x="-1090" y="378" as="sourcePoint" />
<Array as="points">
<mxPoint x="-832" y="378" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-6" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-832.19" y="363" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-7" value="PRDKeyBackip" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-813.9357165981" y="373" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-8" value="RequestPrdMessage&lt;br&gt;(+ TxSp)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-795.6814331962005" y="383" width="152.39494830511973" height="28.99999999999996" as="geometry" />
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-724.25" y="433" />
<mxPoint x="-735.25" y="433" />
</Array>
<mxPoint x="-724.25" y="422" as="sourcePoint" />
<mxPoint x="-735.25" y="449" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-724.25" y="433" />
<mxPoint x="-696.25" y="433" />
</Array>
<mxPoint x="-724.25" y="422" as="sourcePoint" />
<mxPoint x="-697.25" y="449" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-724.25" y="433" />
<mxPoint x="-657.25" y="433" />
</Array>
<mxPoint x="-724.25" y="422" as="sourcePoint" />
<mxPoint x="-657.25" y="449" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Y_iTnzTvrgFW2w7x7B82-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Y_iTnzTvrgFW2w7x7B82-8" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-724" y="412" />
<mxPoint x="-724" y="433" />
<mxPoint x="-777" y="433" />
</Array>
<mxPoint x="-724.25" y="422" as="sourcePoint" />
<mxPoint x="-777.25" y="449" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-1" value="&lt;b&gt;`pre_id_sp_enc_by_shared_secret`&lt;/b&gt;&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;(only for member managers)&lt;b&gt;&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="-1246.24" y="188.71" width="236.19" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-2" value="To all roles" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1341.19" y="346" width="60" height="33" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-3" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1066.07" y="540" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-4" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1271.1899999999998" y="540" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-5" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-856.2399999999999" y="540" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-6" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1056.07" y="550" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-7" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1261.1899999999998" y="550" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-8" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-846.2399999999999" y="550" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-9" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1046.07" y="560" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-10" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1251.1899999999998" y="560" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-11" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-836.2399999999999" y="560" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-12" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1036.07" y="570" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-13" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1241.1899999999998" y="570" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-14" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-826.2399999999999" y="570" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-15" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1026.07" y="580" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-16" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1231.1899999999998" y="580" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-17" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-816.2399999999999" y="580" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-18" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1016.0699999999999" y="590" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-19" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1221.1899999999998" y="590" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-20" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-806.2399999999999" y="590" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-21" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1006.0699999999999" y="600" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-22" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1211.1899999999998" y="600" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-23" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-796.2399999999999" y="600" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-24" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-996.0699999999999" y="610" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-25" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1201.1899999999998" y="610" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-26" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-786.2399999999999" y="610" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-27" value="RequestPrdResponse" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-986.0699999999999" y="620" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-28" value="RequestPcd" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-1191.1899999999998" y="620" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-29" value="RequestPrdMessage" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="-776.2399999999999" y="620" width="197.49" height="29" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-30" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-930" y="485" as="sourcePoint" />
<mxPoint x="-930" y="525" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-31" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;KeyMainSpend&lt;/b&gt;&lt;br style=&quot;border-color: var(--border-color); font-weight: 400; text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;privDecrypt&lt;/span&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-397" y="85.19" width="149.75" height="30" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-32" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;KeyMainScan&lt;/b&gt;&lt;br style=&quot;border-color: var(--border-color); font-weight: 400; text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;privDecrypt&lt;/span&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-396.14999999999986" y="123.38999999999999" width="148.9" height="30" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-33" value="&lt;b style=&quot;border-color: var(--border-color); text-align: center;&quot;&gt;KeyRecoverScan&lt;/b&gt;&lt;br style=&quot;border-color: var(--border-color); font-weight: 400; text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;privDecrypt&lt;/span&gt;" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="-396.9999999999999" y="42" width="149.75" height="30" as="geometry" />
</mxCell>
<mxCell id="5Ne0HzyGfQl-3uoNr5Rs-35" value="PCD item_name=member&lt;br&gt;-&amp;gt; ItemMember (sp addess of the user)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-558.03" y="177" width="250" height="30.71" as="geometry" />
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-1" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fontColor=#333333;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="-1610" y="403.06999999999994" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-2" value="Relay - side chain node not required" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1574.3200000000002" y="402" width="214.32" height="30" as="geometry" />
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;container=0;rounded=1;labelBackgroundColor=none;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="-1611" y="438.07000000000005" width="28.93" height="28.93" as="geometry" />
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-4" value="Relay - side chain node required" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-1575.3200000000002" y="437.0000000000001" width="214.32" height="30" as="geometry" />
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="I9sp5S672SgGMplcR-zX-5" target="sHT8GTnQFrlxJ-m2nGzn-341" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-834" y="40" />
<mxPoint x="-736" y="40" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="I9sp5S672SgGMplcR-zX-5" value="SeedRand2&lt;br&gt;256 bits" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
<mxGeometry x="-868.58" y="-66.79" width="70" height="29" as="geometry" />
</mxCell>
<mxCell id="VY5BnqjUr2LHQryPuXbw-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="VY5BnqjUr2LHQryPuXbw-1" target="sHT8GTnQFrlxJ-m2nGzn-317" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="VY5BnqjUr2LHQryPuXbw-1" value="Password" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="-1200.76" y="-65.79" width="88.81" height="33" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

View File

@ -0,0 +1,137 @@
<mxfile host="Electron" modified="2024-03-19T13:50:10.705Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="of1lD_YKM3JOw8BpwZVZ" version="24.0.4" type="device">
<diagram name="Page-1" id="wKya6_9cVaX_OwqrHy0P">
<mxGraphModel dx="574" dy="335" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="OJyx8rHUgYEJOKxLf1JB-1" value="Message reveived" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontStyle=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="918" y="40" width="158" height="30" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-4" target="OJyx8rHUgYEJOKxLf1JB-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-3" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" connectable="0" vertex="1" parent="OJyx8rHUgYEJOKxLf1JB-2">
<mxGeometry x="-0.3576" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-4" value="pow_hash_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919" y="303.74999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-6" value="pow_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919" y="383.38999999999993" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-9" target="OJyx8rHUgYEJOKxLf1JB-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-8" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" connectable="0" vertex="1" parent="OJyx8rHUgYEJOKxLf1JB-7">
<mxGeometry x="-0.0896" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-9" value="data_size_max_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919" y="225.09999999999997" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-11">
<mxGeometry relative="1" as="geometry">
<mxPoint x="978" y="492.09999999999997" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-11" value="peer_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="918" y="451.09999999999997" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-13" target="OJyx8rHUgYEJOKxLf1JB-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-31">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="978" y="434" />
<mxPoint x="978" y="440" />
<mxPoint x="1250" y="440" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-13" value="process_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="918" y="532.2100000000002" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.477;entryY=0.03;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="OJyx8rHUgYEJOKxLf1JB-23">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="595" />
<mxPoint x="976" y="613" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.484;exitY=1.026;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="OJyx8rHUgYEJOKxLf1JB-25">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="600" />
<mxPoint x="1116" y="600" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-14" value="sp_tx_faucet_send" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="918" y="572.2400000000001" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-16" target="OJyx8rHUgYEJOKxLf1JB-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-16" value="new_peer_connect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="918" y="489.38999999999993" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-19" target="OJyx8rHUgYEJOKxLf1JB-9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-18" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" connectable="0" vertex="1" parent="OJyx8rHUgYEJOKxLf1JB-17">
<mxGeometry x="-0.34" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-19" value="pow_timestamp_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="149.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-20" target="OJyx8rHUgYEJOKxLf1JB-19">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-22" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="OJyx8rHUgYEJOKxLf1JB-21">
<mxGeometry x="0.0303" y="-1" relative="1" as="geometry">
<mxPoint y="-5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-20" value="message hash&lt;div&gt;exist in memory ?&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919" y="69.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.484;exitY=1.01;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitPerimeter=0;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="OJyx8rHUgYEJOKxLf1JB-27">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="600" />
<mxPoint x="840" y="600" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-23" value="Broadcast to&lt;br&gt;browser clients" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919" y="612" width="120" height="28" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-25" value="Broadcast to&lt;br&gt;relay clients" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1056" y="612" width="120" height="28" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="OJyx8rHUgYEJOKxLf1JB-27" target="OJyx8rHUgYEJOKxLf1JB-29">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-27" value="raw_transaction_list ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="780" y="620" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-29" value="Broadcast tx to&lt;br&gt;side chain" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="780" y="690" width="120" height="28" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-31" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1181" y="451.1" width="120" height="28.9" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,244 @@
<mxfile host="Electron" modified="2024-03-19T14:09:57.476Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="mgTr09pnt0ZXHHtO4P8J" version="24.0.4" type="device">
<diagram name="Page-1" id="wKya6_9cVaX_OwqrHy0P">
<mxGraphModel dx="819" dy="479" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lUtrUhSS5DsyC9wEvYwb-7" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="820" y="91" width="360" height="630" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-1" value="MessageReceived" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontStyle=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="827" y="91" width="158" height="30" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-4" target="OJyx8rHUgYEJOKxLf1JB-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-3" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-2" connectable="0" vertex="1">
<mxGeometry x="-0.3576" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-4" value="pow_hash_verify (without peer_list &amp;amp; process_list)" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="344.74999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-6" value="pow_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="424.38999999999993" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-9" target="OJyx8rHUgYEJOKxLf1JB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-8" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-7" connectable="0" vertex="1">
<mxGeometry x="-0.0896" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-9" value="data_size_max_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="266.09999999999997" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="978" y="533.0999999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-11" value="peer_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="492.09999999999997" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-13" target="OJyx8rHUgYEJOKxLf1JB-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-31" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="978" y="475" />
<mxPoint x="978" y="481" />
<mxPoint x="1250" y="481" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-13" value="process_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="573.2100000000002" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.529;entryY=0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="lUtrUhSS5DsyC9wEvYwb-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="636" />
<mxPoint x="976" y="671" />
</Array>
<mxPoint x="975.24" y="737.44" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.484;exitY=1.026;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="lUtrUhSS5DsyC9wEvYwb-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="641" />
<mxPoint x="1110" y="641" />
</Array>
<mxPoint x="1116" y="736" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-14" value="sp_tx_faucet_send" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="613.2400000000001" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-16" target="OJyx8rHUgYEJOKxLf1JB-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-16" value="new_peer_connect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="530.3899999999999" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-19" target="OJyx8rHUgYEJOKxLf1JB-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-18" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-17" connectable="0" vertex="1">
<mxGeometry x="-0.34" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-19" value="pow_timestamp_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919.5" y="190.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-20" target="OJyx8rHUgYEJOKxLf1JB-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-22" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="OJyx8rHUgYEJOKxLf1JB-21" vertex="1" connectable="0">
<mxGeometry x="0.0303" y="-1" relative="1" as="geometry">
<mxPoint y="-5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-20" value="message hash&lt;div&gt;exist in memory ?&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="120.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="OJyx8rHUgYEJOKxLf1JB-29" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="840" y="712" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-31" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1189" y="492.1" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-12" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-1" value="socketConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="10" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-14" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry">
<mxPoint x="980" y="111" as="targetPoint" />
<mxPoint x="1142" y="80" as="sourcePoint" />
<Array as="points">
<mxPoint x="1142" y="101" />
<mxPoint x="979" y="101" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-2" value="socketMessage" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1081.5" y="10" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-5" value="Message process_list update" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="912" y="671" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-6" value="Message peer_list update" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1050" y="671" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-8" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1280" y="111" />
<mxPoint x="979" y="111" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-8" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1221.5" y="10.000000000000007" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-1" target="lUtrUhSS5DsyC9wEvYwb-12">
<mxGeometry relative="1" as="geometry">
<mxPoint x="980" y="39" as="sourcePoint" />
<mxPoint x="979" y="121" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-12" value="MessageConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="50" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-14" value="Message" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1082" y="50" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.486;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-2" target="lUtrUhSS5DsyC9wEvYwb-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-19" value="socketConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1341.5" y="179" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-20" value="socketMessage" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580" y="179" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-19" target="lUtrUhSS5DsyC9wEvYwb-22">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1402" y="213" as="sourcePoint" />
<mxPoint x="1401" y="295" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-22" target="lUtrUhSS5DsyC9wEvYwb-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-22" value="MessageConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1341.5" y="224" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-23" target="lUtrUhSS5DsyC9wEvYwb-27">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-23" value="Message" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580.5" y="224" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.486;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-20" target="lUtrUhSS5DsyC9wEvYwb-23">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-25" value="MessageReceived" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="1311.5" y="271.1" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-27" target="lUtrUhSS5DsyC9wEvYwb-32">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-27" target="lUtrUhSS5DsyC9wEvYwb-29">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1640" y="320" />
<mxPoint x="1779" y="320" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-27" value="MessageReceived" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="1550" y="271.1" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-29" value="Broadcast message to&amp;nbsp;sockets browser clients" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1718.5" y="405" width="120" height="48" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-30" value="Broadcast message to&amp;nbsp;sockets relay clients" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1856.5" y="405" width="120" height="48" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-32" target="lUtrUhSS5DsyC9wEvYwb-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-32" value="raw_transaction_list ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580.5" y="330" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-33" value="Broadcast tx to&lt;br&gt;side chain" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580.5" y="405" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.536;entryY=0.006;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-27" target="lUtrUhSS5DsyC9wEvYwb-30">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1650" y="327" as="sourcePoint" />
<mxPoint x="1789" y="415" as="targetPoint" />
<Array as="points">
<mxPoint x="1640" y="320" />
<mxPoint x="1921" y="320" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,34 @@
<mxfile host="Electron" modified="2024-03-19T14:15:34.066Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="VZnW7qZe-reefh6eCohQ" version="24.0.4" type="device">
<diagram name="Page-1" id="pwQ3DnKjZfOrOexWHG-k">
<mxGraphModel dx="607" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="vgbR90Qxcx-sTvoote5e-1" value="socketConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="990" y="140" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="vgbR90Qxcx-sTvoote5e-1" target="vgbR90Qxcx-sTvoote5e-4" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1050.5" y="174" as="sourcePoint" />
<mxPoint x="1049.5" y="256" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="vgbR90Qxcx-sTvoote5e-4" target="vgbR90Qxcx-sTvoote5e-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-4" value="MessageConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="990" y="185" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="Rs4bW3xzFFLv7pWNUvat-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="vgbR90Qxcx-sTvoote5e-5" target="Rs4bW3xzFFLv7pWNUvat-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vgbR90Qxcx-sTvoote5e-5" value="MessageReceived" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" parent="1" vertex="1">
<mxGeometry x="960" y="232.10000000000002" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="Rs4bW3xzFFLv7pWNUvat-1" value="add to socket_list" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="990" y="280" width="120" height="28.9" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1,175 @@
<mxfile host="Electron" modified="2024-03-19T14:12:55.124Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="CQ2NUl4WAqZB3ja_v6j2" version="24.0.4" type="device">
<diagram name="Page-1" id="wKya6_9cVaX_OwqrHy0P">
<mxGraphModel dx="819" dy="479" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lUtrUhSS5DsyC9wEvYwb-7" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="820" y="91" width="360" height="630" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-1" value="MessageReceived" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontStyle=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="827" y="91" width="158" height="30" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-4" target="OJyx8rHUgYEJOKxLf1JB-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-3" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-2" connectable="0" vertex="1">
<mxGeometry x="-0.3576" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-4" value="pow_hash_verify (without peer_list &amp;amp; process_list)" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="344.74999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-6" value="pow_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="424.38999999999993" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-9" target="OJyx8rHUgYEJOKxLf1JB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-8" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-7" connectable="0" vertex="1">
<mxGeometry x="-0.0896" y="1" relative="1" as="geometry">
<mxPoint x="-1" y="-2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-9" value="data_size_max_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="266.09999999999997" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="978" y="533.0999999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-11" value="peer_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="492.09999999999997" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-13" target="OJyx8rHUgYEJOKxLf1JB-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-6" target="OJyx8rHUgYEJOKxLf1JB-31" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="978" y="475" />
<mxPoint x="978" y="481" />
<mxPoint x="1250" y="481" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-13" value="process_list_merge" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="573.2100000000002" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.529;entryY=0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="lUtrUhSS5DsyC9wEvYwb-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="636" />
<mxPoint x="976" y="671" />
</Array>
<mxPoint x="975.24" y="737.44" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.484;exitY=1.026;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-14" target="lUtrUhSS5DsyC9wEvYwb-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="976" y="641" />
<mxPoint x="1110" y="641" />
</Array>
<mxPoint x="1116" y="736" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-14" value="sp_tx_faucet_send" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="613.2400000000001" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-16" target="OJyx8rHUgYEJOKxLf1JB-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-16" value="new_peer_connect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="918" y="530.3899999999999" width="120" height="23" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=#000000;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-19" target="OJyx8rHUgYEJOKxLf1JB-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-18" value="OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;fontColor=#000000;" parent="OJyx8rHUgYEJOKxLf1JB-17" connectable="0" vertex="1">
<mxGeometry x="-0.34" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-19" value="pow_timestamp_verify" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919.5" y="190.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="OJyx8rHUgYEJOKxLf1JB-20" target="OJyx8rHUgYEJOKxLf1JB-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-22" value="KO" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="OJyx8rHUgYEJOKxLf1JB-21" vertex="1" connectable="0">
<mxGeometry x="0.0303" y="-1" relative="1" as="geometry">
<mxPoint y="-5" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-20" value="message hash&lt;div&gt;exist in memory ?&lt;/div&gt;" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="919" y="120.99999999999994" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="OJyx8rHUgYEJOKxLf1JB-29" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="840" y="712" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="OJyx8rHUgYEJOKxLf1JB-31" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="1189" y="492.1" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-12" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-1" value="socketConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="10" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-14" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry">
<mxPoint x="980" y="111" as="targetPoint" />
<mxPoint x="1142" y="80" as="sourcePoint" />
<Array as="points">
<mxPoint x="1142" y="101" />
<mxPoint x="979" y="101" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-2" value="socketMessage" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1081.5" y="10" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-5" value="Message process_list update" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="912" y="671" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-6" value="Message peer_list update" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1050" y="671" width="120" height="33" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-8" target="OJyx8rHUgYEJOKxLf1JB-20">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1280" y="111" />
<mxPoint x="979" y="111" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-8" value="message hash saved in memery" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1221.5" y="10.000000000000007" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-13" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-1" target="lUtrUhSS5DsyC9wEvYwb-12">
<mxGeometry relative="1" as="geometry">
<mxPoint x="980" y="39" as="sourcePoint" />
<mxPoint x="979" y="121" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-12" value="MessageConnect" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="919.5" y="50" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-14" value="Message" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1082" y="50" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="lUtrUhSS5DsyC9wEvYwb-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.486;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="lUtrUhSS5DsyC9wEvYwb-2" target="lUtrUhSS5DsyC9wEvYwb-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

View File

@ -0,0 +1,61 @@
<mxfile host="Electron" modified="2024-03-19T14:10:20.586Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.0.4 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="x4eIeIPCKNQDZIvEvXCX" version="24.0.4" type="device">
<diagram name="Page-1" id="cCesTAvkPiH-HlJbL294">
<mxGraphModel dx="607" dy="870" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="QUBPNAYGt3iMPZFeMMTn-1" value="socketMessage" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580" y="179" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="QUBPNAYGt3iMPZFeMMTn-3" target="QUBPNAYGt3iMPZFeMMTn-7">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-3" value="Message" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580.5" y="224" width="120" height="28.9" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.486;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="QUBPNAYGt3iMPZFeMMTn-1" target="QUBPNAYGt3iMPZFeMMTn-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="QUBPNAYGt3iMPZFeMMTn-7" target="QUBPNAYGt3iMPZFeMMTn-11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="QUBPNAYGt3iMPZFeMMTn-7" target="QUBPNAYGt3iMPZFeMMTn-8">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1640" y="320" />
<mxPoint x="1779" y="320" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-7" value="MessageReceived" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png" vertex="1" parent="1">
<mxGeometry x="1550" y="271.1" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-8" value="Broadcast message to&amp;nbsp;sockets browser clients" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1718.5" y="405" width="120" height="48" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-9" value="Broadcast message to&amp;nbsp;sockets relay clients" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1856.5" y="405" width="120" height="48" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="QUBPNAYGt3iMPZFeMMTn-11" target="QUBPNAYGt3iMPZFeMMTn-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-11" value="raw_transaction_list ?" style="rhombus;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580.5" y="330" width="120" height="51" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-12" value="Broadcast tx to&lt;br&gt;side chain" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontColor=#000000;" vertex="1" parent="1">
<mxGeometry x="1580.5" y="405" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="QUBPNAYGt3iMPZFeMMTn-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.536;entryY=0.006;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="QUBPNAYGt3iMPZFeMMTn-7" target="QUBPNAYGt3iMPZFeMMTn-9">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1650" y="327" as="sourcePoint" />
<mxPoint x="1789" y="415" as="targetPoint" />
<Array as="points">
<mxPoint x="1640" y="320" />
<mxPoint x="1921" y="320" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>