@maci-protocol/website 0.0.0-ci.26f28d6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/.eslintrc.js +157 -0
  2. package/CHANGELOG.md +566 -0
  3. package/LICENSE +22 -0
  4. package/README.md +58 -0
  5. package/babel.config.js +3 -0
  6. package/blog/2021-10-12-maci-v1.md +100 -0
  7. package/blog/2022-09-22-maci-v1-technical-introduction.md +180 -0
  8. package/blog/2023-01-18-maci-v1.1.1.md +121 -0
  9. package/blog/2024-01-18-roadmap.md +106 -0
  10. package/blog/2024-02-28-maci-v1.2.0.md +121 -0
  11. package/blog/2024-04-10-roadmap-q2.md +96 -0
  12. package/blog/2024-05-08-ethdam.md +169 -0
  13. package/blog/2024-05-22-the-origins-of-maci.md +38 -0
  14. package/blog/2024-05-28-upcoming-grants.md +85 -0
  15. package/blog/2024-06-17-understanding-maci.md +63 -0
  16. package/blog/2024-06-21-deciphering-maci.md +48 -0
  17. package/blog/2024-06-28-revolusioning-public-goods-funding.md +32 -0
  18. package/blog/2024-07-23-q2-review.md +72 -0
  19. package/blog/2024-07-30-roadmap-q3.md +61 -0
  20. package/blog/2024-08-10-maci-v2.md +102 -0
  21. package/blog/2024-08-29-anonymous-poll-joining.md +47 -0
  22. package/blog/2024-10-29-q3-review.md +63 -0
  23. package/blog/2024-11-20-maci-platform.md +93 -0
  24. package/blog/2024-12-01-maci-getting-started.md +294 -0
  25. package/blog/2025-03-21-roadmap-2025.md +112 -0
  26. package/blog/assets/MACI_Bob_SignUp_1.png +0 -0
  27. package/blog/assets/MACI_Bob_SignUp_2.png +0 -0
  28. package/blog/assets/MACI_Complex_Message.png +0 -0
  29. package/blog/assets/MACI_Contracts.png +0 -0
  30. package/blog/assets/MACI_Sign_Up.png +0 -0
  31. package/blog/assets/MACI_Simple_Message.png +0 -0
  32. package/blog/assets/MACI_Verifier_1.png +0 -0
  33. package/blog/authors.yml +5 -0
  34. package/docusaurus.config.ts +213 -0
  35. package/package.json +65 -0
  36. package/src/components/ActionCard/index.tsx +30 -0
  37. package/src/components/ActionCard/styles.module.css +96 -0
  38. package/src/components/HomepageFeatures/index.tsx +91 -0
  39. package/src/components/HomepageFeatures/styles.module.css +17 -0
  40. package/src/components/ProjectCard/index.tsx +74 -0
  41. package/src/components/ProjectCard/styles.module.css +77 -0
  42. package/src/components/ProjectList/index.tsx +218 -0
  43. package/src/components/ProjectList/styles.module.css +180 -0
  44. package/src/content/projects.json +294 -0
  45. package/src/css/card.module.css +130 -0
  46. package/src/css/custom.css +91 -0
  47. package/src/icons/IconDiscord.tsx +16 -0
  48. package/src/icons/IconGithub.tsx +16 -0
  49. package/src/icons/IconWebsite.tsx +16 -0
  50. package/src/pages/blogs.tsx +58 -0
  51. package/src/pages/index.module.css +152 -0
  52. package/src/pages/index.tsx +66 -0
  53. package/src/pages/projects.tsx +44 -0
  54. package/src/pages/roadmap.md +150 -0
  55. package/src/pages/typedoc.tsx +11 -0
  56. package/src/plugins/blog-plugin/index.ts +86 -0
  57. package/src/react-app-env.d.ts +1 -0
  58. package/src/scripts/setupSolidityDocs.ts +67 -0
  59. package/src/scripts/setupTypedoc.ts +112 -0
  60. package/src/scripts/utils.ts +115 -0
  61. package/src/utils/getProjectsByFilter.ts +40 -0
  62. package/static/.nojekyll +0 -0
  63. package/static/audit_reports/20210922_Hashcloak_audit_report.pdf +0 -0
  64. package/static/audit_reports/202220930_Hashcloak_audit_report.pdf +0 -0
  65. package/static/audit_reports/20240223_PSE_Audit_audit_report.pdf +0 -0
  66. package/static/audit_reports/20240731_PSE_Audit_audit_report.pdf +0 -0
  67. package/static/fonts/DM_Sans.woff2 +0 -0
  68. package/static/fonts/Share_Tech_Mono.woff2 +0 -0
  69. package/static/img/box.png +0 -0
  70. package/static/img/box_dark.png +0 -0
  71. package/static/img/chain.png +0 -0
  72. package/static/img/chain_dark.png +0 -0
  73. package/static/img/chart.png +0 -0
  74. package/static/img/chart_dark.png +0 -0
  75. package/static/img/circuits/MACI-Circuits.excalidraw +39652 -0
  76. package/static/img/circuits/calculateTotal.svg +21 -0
  77. package/static/img/circuits/ecdh.svg +21 -0
  78. package/static/img/circuits/messageToCommand.svg +21 -0
  79. package/static/img/circuits/messageValidator.svg +21 -0
  80. package/static/img/circuits/poseidonHasher13.svg +21 -0
  81. package/static/img/circuits/privToPubkey.svg +21 -0
  82. package/static/img/circuits/processMessages.svg +21 -0
  83. package/static/img/circuits/processMessagesInputHasher.svg +21 -0
  84. package/static/img/circuits/processMessages_2_0.svg +21 -0
  85. package/static/img/circuits/processOne.svg +21 -0
  86. package/static/img/circuits/processTopup.svg +21 -0
  87. package/static/img/circuits/processingAfterPollEnds.svg +21 -0
  88. package/static/img/circuits/quinBatchLeavesExists.svg +21 -0
  89. package/static/img/circuits/quinCheckRoot.svg +21 -0
  90. package/static/img/circuits/quinGeneratePathIndices.svg +21 -0
  91. package/static/img/circuits/quinSelector.svg +21 -0
  92. package/static/img/circuits/resultsCommitmentVerifier.svg +21 -0
  93. package/static/img/circuits/splicer.svg +21 -0
  94. package/static/img/circuits/tallyInputHasher.svg +21 -0
  95. package/static/img/circuits/tallyVotes.svg +21 -0
  96. package/static/img/circuits/unpackElement.svg +21 -0
  97. package/static/img/circuits/verifySignature.svg +21 -0
  98. package/static/img/completingAPoll.svg +4 -0
  99. package/static/img/contracts.svg +16 -0
  100. package/static/img/coordinatorComponents.svg +21 -0
  101. package/static/img/favicon.ico +0 -0
  102. package/static/img/generateProofs.svg +4 -0
  103. package/static/img/hero.svg +9 -0
  104. package/static/img/maci-card.png +0 -0
  105. package/static/img/maci-rpgf-design.jpg +0 -0
  106. package/static/img/messageProcessingLocal.svg +21 -0
  107. package/static/img/offlineProcessing.svg +21 -0
  108. package/static/img/pse-logo-round.png +0 -0
  109. package/static/img/tallyCommitments.svg +4 -0
  110. package/static/img/voteTallyingLocal.svg +21 -0
  111. package/tsconfig.json +34 -0
  112. package/versioned_docs/version-v0.x/circuits.md +22 -0
  113. package/versioned_docs/version-v0.x/contract.md +186 -0
  114. package/versioned_docs/version-v0.x/faq.md +67 -0
  115. package/versioned_docs/version-v0.x/introduction.md +119 -0
  116. package/versioned_docs/version-v0.x/quadratic-vote-tallying-circuit.md +138 -0
  117. package/versioned_docs/version-v0.x/state-root-transition-circuit.md +230 -0
  118. package/versioned_docs/version-v1.2/audit.md +160 -0
  119. package/versioned_docs/version-v1.2/ci-pipeline.md +38 -0
  120. package/versioned_docs/version-v1.2/circuits.md +508 -0
  121. package/versioned_docs/version-v1.2/cli.md +689 -0
  122. package/versioned_docs/version-v1.2/contracts.md +445 -0
  123. package/versioned_docs/version-v1.2/contributing/code-of-conduct.md +91 -0
  124. package/versioned_docs/version-v1.2/contributing/contributing.md +129 -0
  125. package/versioned_docs/version-v1.2/coordinator-processing.md +46 -0
  126. package/versioned_docs/version-v1.2/deployment.md +122 -0
  127. package/versioned_docs/version-v1.2/installation.md +175 -0
  128. package/versioned_docs/version-v1.2/integrating.md +200 -0
  129. package/versioned_docs/version-v1.2/introduction.md +94 -0
  130. package/versioned_docs/version-v1.2/key-change.md +182 -0
  131. package/versioned_docs/version-v1.2/overview.md +47 -0
  132. package/versioned_docs/version-v1.2/poll-types.md +68 -0
  133. package/versioned_docs/version-v1.2/primitives.md +216 -0
  134. package/versioned_docs/version-v1.2/project-ideas.md +14 -0
  135. package/versioned_docs/version-v1.2/purpose.md +62 -0
  136. package/versioned_docs/version-v1.2/solidity-docs/MACI.md +345 -0
  137. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessor.md +266 -0
  138. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessorFactory.md +26 -0
  139. package/versioned_docs/version-v1.2/solidity-docs/Poll.md +381 -0
  140. package/versioned_docs/version-v1.2/solidity-docs/PollFactory.md +50 -0
  141. package/versioned_docs/version-v1.2/solidity-docs/SignUpToken.md +27 -0
  142. package/versioned_docs/version-v1.2/solidity-docs/Subsidy.md +218 -0
  143. package/versioned_docs/version-v1.2/solidity-docs/SubsidyFactory.md +27 -0
  144. package/versioned_docs/version-v1.2/solidity-docs/Tally.md +311 -0
  145. package/versioned_docs/version-v1.2/solidity-docs/TallyFactory.md +27 -0
  146. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQv.md +296 -0
  147. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQvFactory.md +27 -0
  148. package/versioned_docs/version-v1.2/solidity-docs/TopupCredit.md +61 -0
  149. package/versioned_docs/version-v1.2/solidity-docs/VkRegistry.md +457 -0
  150. package/versioned_docs/version-v1.2/solidity-docs/benchmarks/HasherBenchmarks.md +44 -0
  151. package/versioned_docs/version-v1.2/solidity-docs/crypto/Hasher.md +125 -0
  152. package/versioned_docs/version-v1.2/solidity-docs/crypto/IVerifier.md +11 -0
  153. package/versioned_docs/version-v1.2/solidity-docs/crypto/MockVerifier.md +17 -0
  154. package/versioned_docs/version-v1.2/solidity-docs/crypto/Pairing.md +85 -0
  155. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT3.md +9 -0
  156. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT4.md +9 -0
  157. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT5.md +9 -0
  158. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT6.md +9 -0
  159. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkCommon.md +16 -0
  160. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkConstants.md +40 -0
  161. package/versioned_docs/version-v1.2/solidity-docs/crypto/Verifier.md +61 -0
  162. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/EASGatekeeper.md +121 -0
  163. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/FreeForAllSignUpGatekeeper.md +40 -0
  164. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpGatekeeper.md +26 -0
  165. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpTokenGatekeeper.md +93 -0
  166. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperBase.md +79 -0
  167. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperMultiple.md +48 -0
  168. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperSingle.md +42 -0
  169. package/versioned_docs/version-v1.2/solidity-docs/index.md +4 -0
  170. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/ConstantInitialVoiceCreditProxy.md +40 -0
  171. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/InitialVoiceCreditProxy.md +26 -0
  172. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IEAS.md +40 -0
  173. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IHats.md +103 -0
  174. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMPFactory.md +26 -0
  175. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMessageProcessor.md +31 -0
  176. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPoll.md +217 -0
  177. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPollFactory.md +29 -0
  178. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallyFactory.md +28 -0
  179. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallySubsidyFactory.md +27 -0
  180. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVerifier.md +25 -0
  181. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVkRegistry.md +70 -0
  182. package/versioned_docs/version-v1.2/solidity-docs/mocks/MockHatsProtocol.md +133 -0
  183. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueue.md +464 -0
  184. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary.md +60 -0
  185. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary0.md +40 -0
  186. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinaryMaci.md +34 -0
  187. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary.md +75 -0
  188. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary0.md +40 -0
  189. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryBlankSl.md +40 -0
  190. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryMaci.md +40 -0
  191. package/versioned_docs/version-v1.2/solidity-docs/trees/EmptyBallotRoots.md +13 -0
  192. package/versioned_docs/version-v1.2/solidity-docs/utilities/CommonUtilities.md +25 -0
  193. package/versioned_docs/version-v1.2/solidity-docs/utilities/DomainObjs.md +40 -0
  194. package/versioned_docs/version-v1.2/solidity-docs/utilities/Params.md +36 -0
  195. package/versioned_docs/version-v1.2/solidity-docs/utilities/Utilities.md +79 -0
  196. package/versioned_docs/version-v1.2/spec.md +944 -0
  197. package/versioned_docs/version-v1.2/testing-in-detail.md +209 -0
  198. package/versioned_docs/version-v1.2/testing.md +472 -0
  199. package/versioned_docs/version-v1.2/topup.md +43 -0
  200. package/versioned_docs/version-v1.2/troubleshooting.md +51 -0
  201. package/versioned_docs/version-v1.2/trusted-setup.md +76 -0
  202. package/versioned_docs/version-v1.2/typedoc/cli/.nojekyll +1 -0
  203. package/versioned_docs/version-v1.2/typedoc/cli/index.md +15 -0
  204. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/AirdropArgs.md +89 -0
  205. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployArgs.md +154 -0
  206. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployPollArgs.md +154 -0
  207. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployedContracts.md +130 -0
  208. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenLocalStateArgs.md +168 -0
  209. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenProofsArgs.md +388 -0
  210. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IGenKeypairArgs.md +37 -0
  211. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IRegisteredUserArgs.md +63 -0
  212. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeMessagesArgs.md +76 -0
  213. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeSignupsArgs.md +76 -0
  214. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PollContracts.md +53 -0
  215. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/ProveOnChainArgs.md +128 -0
  216. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PublishArgs.md +154 -0
  217. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SignupArgs.md +89 -0
  218. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SubsidyData.md +73 -0
  219. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TallyData.md +166 -0
  220. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TopupArgs.md +89 -0
  221. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/VerifyArgs.md +128 -0
  222. package/versioned_docs/version-v1.2/typedoc/cli/modules.md +556 -0
  223. package/versioned_docs/version-v1.2/typedoc/core/.nojekyll +1 -0
  224. package/versioned_docs/version-v1.2/typedoc/core/classes/MaciState.md +295 -0
  225. package/versioned_docs/version-v1.2/typedoc/core/classes/Poll.md +1098 -0
  226. package/versioned_docs/version-v1.2/typedoc/core/index.md +110 -0
  227. package/versioned_docs/version-v1.2/typedoc/core/interfaces/BatchSizes.md +50 -0
  228. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IJsonMaciState.md +77 -0
  229. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IProcessMessagesCircuitInputs.md +242 -0
  230. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ISubsidyCircuitInputs.md +198 -0
  231. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ITallyCircuitInputs.md +231 -0
  232. package/versioned_docs/version-v1.2/typedoc/core/interfaces/MaxValues.md +37 -0
  233. package/versioned_docs/version-v1.2/typedoc/core/interfaces/TreeDepths.md +63 -0
  234. package/versioned_docs/version-v1.2/typedoc/core/modules.md +289 -0
  235. package/versioned_docs/version-v1.2/typedoc/crypto/.nojekyll +1 -0
  236. package/versioned_docs/version-v1.2/typedoc/crypto/classes/AccQueue.md +770 -0
  237. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G1Point.md +115 -0
  238. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G2Point.md +140 -0
  239. package/versioned_docs/version-v1.2/typedoc/crypto/classes/IncrementalQuinTree.md +470 -0
  240. package/versioned_docs/version-v1.2/typedoc/crypto/index.md +44 -0
  241. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Keypair.md +33 -0
  242. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/PoseidonFuncs.md +115 -0
  243. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Queue.md +33 -0
  244. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Signature.md +37 -0
  245. package/versioned_docs/version-v1.2/typedoc/crypto/modules.md +913 -0
  246. package/versioned_docs/version-v1.2/typedoc/domainobjs/.nojekyll +1 -0
  247. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Ballot.md +274 -0
  248. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Keypair.md +181 -0
  249. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Message.md +244 -0
  250. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PCommand.md +409 -0
  251. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PrivKey.md +206 -0
  252. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PubKey.md +289 -0
  253. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/StateLeaf.md +340 -0
  254. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/TCommand.md +200 -0
  255. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/VerifyingKey.md +240 -0
  256. package/versioned_docs/version-v1.2/typedoc/domainobjs/index.md +81 -0
  257. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/ICommand.md +104 -0
  258. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG1ContractParams.md +31 -0
  259. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG2ContractParams.md +31 -0
  260. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonBallot.md +42 -0
  261. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonCommand.md +32 -0
  262. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonKeyPair.md +31 -0
  263. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonPCommand.md +111 -0
  264. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonStateLeaf.md +42 -0
  265. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonTCommand.md +67 -0
  266. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IMessageContractParams.md +31 -0
  267. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeaf.md +39 -0
  268. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeafContractParams.md +42 -0
  269. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkContractParams.md +64 -0
  270. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkObjectParams.md +108 -0
  271. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/Proof.md +46 -0
  272. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/VoteOptionTreeLeaf.md +24 -0
  273. package/versioned_docs/version-v1.2/typedoc/domainobjs/modules.md +110 -0
  274. package/versioned_docs/version-v1.2/typedoc/index.md +4 -0
  275. package/versioned_docs/version-v1.2/versioning.md +94 -0
  276. package/versioned_docs/version-v1.2/workflow.md +142 -0
  277. package/versioned_docs/version-v2.x/case-studies.md +35 -0
  278. package/versioned_docs/version-v2.x/contributing/_category_.json +4 -0
  279. package/versioned_docs/version-v2.x/contributing/code-of-conduct.md +92 -0
  280. package/versioned_docs/version-v2.x/contributing/contributing.md +149 -0
  281. package/versioned_docs/version-v2.x/contributing/project-ideas.md +78 -0
  282. package/versioned_docs/version-v2.x/core-concepts/_category_.json +4 -0
  283. package/versioned_docs/version-v2.x/core-concepts/ballot.md +19 -0
  284. package/versioned_docs/version-v2.x/core-concepts/coordinator-processing.md +46 -0
  285. package/versioned_docs/version-v2.x/core-concepts/hashing-and-encryption.md +45 -0
  286. package/versioned_docs/version-v2.x/core-concepts/key-change.md +179 -0
  287. package/versioned_docs/version-v2.x/core-concepts/maci-keys.md +84 -0
  288. package/versioned_docs/version-v2.x/core-concepts/maci-messages.md +44 -0
  289. package/versioned_docs/version-v2.x/core-concepts/merkle-trees.md +23 -0
  290. package/versioned_docs/version-v2.x/core-concepts/poll-types.md +106 -0
  291. package/versioned_docs/version-v2.x/core-concepts/spec.md +883 -0
  292. package/versioned_docs/version-v2.x/core-concepts/state-leaf.md +42 -0
  293. package/versioned_docs/version-v2.x/core-concepts/workflow.md +142 -0
  294. package/versioned_docs/version-v2.x/getting-started.md +313 -0
  295. package/versioned_docs/version-v2.x/guides/_category_.json +4 -0
  296. package/versioned_docs/version-v2.x/guides/compile-circuits.md +163 -0
  297. package/versioned_docs/version-v2.x/guides/frontend.md +99 -0
  298. package/versioned_docs/version-v2.x/guides/integrating.md +73 -0
  299. package/versioned_docs/version-v2.x/guides/maciWrapper.md +173 -0
  300. package/versioned_docs/version-v2.x/guides/subgraph.md +79 -0
  301. package/versioned_docs/version-v2.x/guides/testing/_category_.json +4 -0
  302. package/versioned_docs/version-v2.x/guides/testing/testing-in-detail.md +203 -0
  303. package/versioned_docs/version-v2.x/guides/testing/testing.md +163 -0
  304. package/versioned_docs/version-v2.x/guides/troubleshooting.md +161 -0
  305. package/versioned_docs/version-v2.x/introduction.md +146 -0
  306. package/versioned_docs/version-v2.x/processes/_category_.json +4 -0
  307. package/versioned_docs/version-v2.x/processes/ci-pipeline.md +38 -0
  308. package/versioned_docs/version-v2.x/processes/versioning.md +94 -0
  309. package/versioned_docs/version-v2.x/resources.md +33 -0
  310. package/versioned_docs/version-v2.x/security/_category_.json +4 -0
  311. package/versioned_docs/version-v2.x/security/audit.md +167 -0
  312. package/versioned_docs/version-v2.x/security/trusted-setup.md +166 -0
  313. package/versioned_docs/version-v2.x/supported-networks/_category_.json +4 -0
  314. package/versioned_docs/version-v2.x/supported-networks/deployed-contracts.md +1108 -0
  315. package/versioned_docs/version-v2.x/supported-networks/supported-networks.md +47 -0
  316. package/versioned_docs/version-v2.x/technical-references/_category_.json +4 -0
  317. package/versioned_docs/version-v2.x/technical-references/smart-contracts/AccQueue.md +21 -0
  318. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Gatekeepers.md +40 -0
  319. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MACI.md +152 -0
  320. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  321. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Params.md +32 -0
  322. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Poll.md +104 -0
  323. package/versioned_docs/version-v2.x/technical-references/smart-contracts/PollFactory.md +43 -0
  324. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Tally.md +45 -0
  325. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VkRegistry.md +57 -0
  326. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  327. package/versioned_docs/version-v2.x/technical-references/smart-contracts/_category_.json +8 -0
  328. package/versioned_docs/version-v2.x/technical-references/technical-references.md +47 -0
  329. package/versioned_docs/version-v2.x/technical-references/typescript-code/_category_.json +4 -0
  330. package/versioned_docs/version-v2.x/technical-references/typescript-code/cli.md +699 -0
  331. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  332. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/processMessages.md +107 -0
  333. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/setup.md +101 -0
  334. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  335. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  336. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +37 -0
  337. package/versioned_docs/version-v2.x/use-cases/_category_.json +4 -0
  338. package/versioned_docs/version-v2.x/use-cases/governance.md +18 -0
  339. package/versioned_docs/version-v2.x/use-cases/polling.md +10 -0
  340. package/versioned_docs/version-v2.x/use-cases/public-goods.md +65 -0
  341. package/versioned_docs/version-v3.x/case-studies.md +35 -0
  342. package/versioned_docs/version-v3.x/contributing/_category_.json +4 -0
  343. package/versioned_docs/version-v3.x/contributing/code-of-conduct.md +92 -0
  344. package/versioned_docs/version-v3.x/contributing/contributing.md +149 -0
  345. package/versioned_docs/version-v3.x/contributing/project-ideas.md +78 -0
  346. package/versioned_docs/version-v3.x/core-concepts/_category_.json +4 -0
  347. package/versioned_docs/version-v3.x/core-concepts/ballot.md +19 -0
  348. package/versioned_docs/version-v3.x/core-concepts/coordinator-processing.md +46 -0
  349. package/versioned_docs/version-v3.x/core-concepts/hashing-and-encryption.md +45 -0
  350. package/versioned_docs/version-v3.x/core-concepts/key-change.md +179 -0
  351. package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +84 -0
  352. package/versioned_docs/version-v3.x/core-concepts/maci-messages.md +44 -0
  353. package/versioned_docs/version-v3.x/core-concepts/merkle-trees.md +16 -0
  354. package/versioned_docs/version-v3.x/core-concepts/poll-types.md +58 -0
  355. package/versioned_docs/version-v3.x/core-concepts/polls.md +81 -0
  356. package/versioned_docs/version-v3.x/core-concepts/spec.md +883 -0
  357. package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +42 -0
  358. package/versioned_docs/version-v3.x/core-concepts/workflow.md +143 -0
  359. package/versioned_docs/version-v3.x/guides/_category_.json +4 -0
  360. package/versioned_docs/version-v3.x/guides/compile-circuits.md +175 -0
  361. package/versioned_docs/version-v3.x/guides/integrating.md +137 -0
  362. package/versioned_docs/version-v3.x/guides/subgraph.md +79 -0
  363. package/versioned_docs/version-v3.x/guides/testing/_category_.json +4 -0
  364. package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +191 -0
  365. package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +158 -0
  366. package/versioned_docs/version-v3.x/guides/troubleshooting.md +161 -0
  367. package/versioned_docs/version-v3.x/introduction.md +153 -0
  368. package/versioned_docs/version-v3.x/processes/_category_.json +4 -0
  369. package/versioned_docs/version-v3.x/processes/ci-pipeline.md +38 -0
  370. package/versioned_docs/version-v3.x/processes/versioning.md +94 -0
  371. package/versioned_docs/version-v3.x/quick-start.md +318 -0
  372. package/versioned_docs/version-v3.x/resources.md +33 -0
  373. package/versioned_docs/version-v3.x/security/_category_.json +4 -0
  374. package/versioned_docs/version-v3.x/security/audit.md +167 -0
  375. package/versioned_docs/version-v3.x/security/trusted-setup.md +172 -0
  376. package/versioned_docs/version-v3.x/supported-networks/_category_.json +4 -0
  377. package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +112 -0
  378. package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +53 -0
  379. package/versioned_docs/version-v3.x/technical-references/_category_.json +4 -0
  380. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +160 -0
  381. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  382. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +33 -0
  383. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Policies.md +39 -0
  384. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +170 -0
  385. package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +33 -0
  386. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +43 -0
  387. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +62 -0
  388. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  389. package/versioned_docs/version-v3.x/technical-references/smart-contracts/_category_.json +8 -0
  390. package/versioned_docs/version-v3.x/technical-references/technical-references.md +48 -0
  391. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  392. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +53 -0
  393. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +106 -0
  394. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +96 -0
  395. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  396. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  397. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +42 -0
  398. package/versioned_docs/version-v3.x/use-cases/_category_.json +4 -0
  399. package/versioned_docs/version-v3.x/use-cases/governance.md +18 -0
  400. package/versioned_docs/version-v3.x/use-cases/polling.md +10 -0
  401. package/versioned_docs/version-v3.x/use-cases/public-goods.md +65 -0
  402. package/versioned_sidebars/version-v0.x-sidebars.json +8 -0
  403. package/versioned_sidebars/version-v1.2-sidebars.json +8 -0
  404. package/versioned_sidebars/version-v2.x-sidebars.json +8 -0
  405. package/versioned_sidebars/version-v3.x-sidebars.json +8 -0
  406. package/versions.json +1 -0
Binary file
Binary file
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3640.35197975109 5057.409449500157" width="10921.05593925327" height="15172.228348500472">
2
+ <!-- svg-source:excalidraw -->
3
+
4
+ <defs>
5
+ <style class="style-fonts">
6
+ @font-face {
7
+ font-family: "Virgil";
8
+ src: url("https://excalidraw.com/Virgil.woff2");
9
+ }
10
+ @font-face {
11
+ font-family: "Cascadia";
12
+ src: url("https://excalidraw.com/Cascadia.woff2");
13
+ }
14
+ @font-face {
15
+ font-family: "Assistant";
16
+ src: url("https://excalidraw.com/Assistant-Regular.woff2");
17
+ }
18
+ </style>
19
+
20
+ </defs>
21
+ <rect x="0" y="0" width="3640.35197975109" height="5057.409449500157" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(1010.1799456205746 645.3376645780652) rotate(0 286.29637423351704 208.0482333386976)"><path d="M358.75 52.25 C402.14 91.22, 451.86 120.19, 500.84 156.75 C569.36 208.39, 569.59 210.08, 500.84 261.25 C469.51 286.42, 438.9 303.13, 358.75 363.85 C286.07 415.8, 290.58 418.82, 215.25 363.85 C162.86 326.77, 106.34 286.61, 71.75 261.25 C-2.62 208.3, 0.3 206.91, 71.75 156.75 C106.87 127.7, 143.78 105.75, 215.25 52.25 C289.49 -0.71, 286.51 -2.61, 358.75 52.25" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M358.75 52.25 C404.31 87.77, 454.22 121.91, 500.84 156.75 M358.75 52.25 C416.63 93.29, 471.03 134.26, 500.84 156.75 M500.84 156.75 C573.58 209.84, 573.28 208.74, 500.84 261.25 M500.84 156.75 C570.46 207.58, 574.16 210.35, 500.84 261.25 M500.84 261.25 C464.27 286, 428.39 313.95, 358.75 363.85 M500.84 261.25 C461.11 288.08, 423.85 315.86, 358.75 363.85 M358.75 363.85 C288.48 417.16, 287.44 417.78, 215.25 363.85 M358.75 363.85 C285 416.21, 285.35 415.74, 215.25 363.85 M215.25 363.85 C183.78 342.13, 152.37 319.58, 71.75 261.25 M215.25 363.85 C158.08 323.54, 101.39 285.12, 71.75 261.25 M71.75 261.25 C-0.8 210.39, -1.4 208.16, 71.75 156.75 M71.75 261.25 C1.35 207.16, -0.41 210.34, 71.75 156.75 M71.75 156.75 C118.44 119.28, 165.84 85.38, 215.25 52.25 M71.75 156.75 C106.02 132.93, 140.35 107.77, 215.25 52.25 M215.25 52.25 C285.81 0.36, 288.57 -1.31, 358.75 52.25 M215.25 52.25 C286.44 -0.31, 286.96 -1.51, 358.75 52.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1177.444801438505 782.3524986699748) rotate(0 118.88333129882812 71.0092825774392)"><text x="118.88333129882812" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. generate </text><text x="118.88333129882812" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Maci state </text><text x="118.88333129882812" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">locally </text></g><g stroke-linecap="round" transform="translate(1063.5522194221023 50.18384965914788) rotate(0 228.6801562186679 247.21750230664009)"><path d="M286.25 62 C326.6 110.55, 370.69 160, 400.11 186 C454.43 249.05, 458.2 247.21, 400.11 310 C358.1 351.62, 321.71 398.61, 286.25 432.44 C231.89 491.35, 230.68 495.03, 171.75 432.44 C133.3 392.29, 99.57 351.71, 57.25 310 C-1.83 248.37, 2.28 247.57, 57.25 186 C89.19 151.37, 116.11 117.07, 171.75 62 C228.67 -1.43, 226.96 1.62, 286.25 62" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M286.25 62 C331.75 110.14, 373.23 158.03, 400.11 186 M286.25 62 C316.82 97.01, 347.76 130.32, 400.11 186 M400.11 186 C455.51 246.76, 458.72 249.18, 400.11 310 M400.11 186 C456.42 248.78, 455.92 247.85, 400.11 310 M400.11 310 C371.14 339.35, 342.94 371.67, 286.25 432.44 M400.11 310 C378.45 334.65, 354.56 360.1, 286.25 432.44 M286.25 432.44 C227.26 494.53, 227.56 494.12, 171.75 432.44 M286.25 432.44 C227.02 496.5, 230.37 494.64, 171.75 432.44 M171.75 432.44 C143.02 399.43, 111.55 364.85, 57.25 310 M171.75 432.44 C148.21 408.58, 123.9 381.79, 57.25 310 M57.25 310 C1.17 246.4, -0.36 249.17, 57.25 186 M57.25 310 C0.64 246.77, 2.07 246.95, 57.25 186 M57.25 186 C79.72 161.31, 103.49 136.42, 171.75 62 M57.25 186 C94.71 144.48, 134.6 101.94, 171.75 62 M171.75 62 C228.51 -0.27, 228.97 -1.31, 286.25 62 M171.75 62 C229.69 -0.38, 227.75 -2.06, 286.25 62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1188.3422944796785 178.94379651673603) rotate(0 104.05000305175781 118.34880429573195)"><text x="104.05000305175781" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. merge </text><text x="104.05000305175781" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the </text><text x="104.05000305175781" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message </text><text x="104.05000305175781" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">tree and </text><text x="104.05000305175781" y="189.35808687317115" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">state tree</text></g><g stroke-linecap="round" transform="translate(1561.2451697377412 10) rotate(0 220.57905148379405 80.67880927362341)"><path d="M32 0 C136.96 -0.6, 245.97 -1.71, 409.16 0 C432.62 -0.32, 437.56 9.74, 441.16 32 C445.79 57.31, 444.58 89.39, 441.16 129.36 C441.88 149.33, 430.07 158.74, 409.16 161.36 C302.27 159.2, 198.98 158.72, 32 161.36 C9.27 162.11, 2.68 153.19, 0 129.36 C-0.09 100.64, -1.8 76.4, 0 32 C0.74 10.42, 10.34 -0.45, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C169.19 -3.24, 306.27 -1.65, 409.16 0 M32 0 C160.47 -0.08, 290.48 0.65, 409.16 0 M409.16 0 C429.67 0.68, 439.91 10.54, 441.16 32 M409.16 0 C429.42 0.92, 441.68 9.98, 441.16 32 M441.16 32 C439.3 53.3, 439.41 72.9, 441.16 129.36 M441.16 32 C440.5 66.41, 440.65 100.57, 441.16 129.36 M441.16 129.36 C439.44 152.49, 431.69 161.53, 409.16 161.36 M441.16 129.36 C440.46 150.11, 429.13 163.5, 409.16 161.36 M409.16 161.36 C281.57 159.53, 157.35 159.91, 32 161.36 M409.16 161.36 C270.18 159.91, 130.39 160.75, 32 161.36 M32 161.36 C11.22 160.29, 1.8 149.78, 0 129.36 M32 161.36 C8.46 160.72, -1.8 149.25, 0 129.36 M0 129.36 C1.14 102.19, 0.41 72.36, 0 32 M0 129.36 C-1.01 98.25, -0.78 66.76, 0 32 M0 32 C0.6 10.34, 9.58 -1.79, 32 0 M0 32 C1.96 10.39, 9.09 -2.07, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1569.2575555721212 19.66952669618422) rotate(0 212.56666564941406 71.0092825774392)"><text x="212.56666564941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message tree holds all</text><text x="212.56666564941406" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages posted via </text><text x="212.56666564941406" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">a Poll contract</text></g><g stroke-linecap="round" transform="translate(1669.0914624988816 275.0184988154724) rotate(0 188.51867415214997 83.97408279882444)"><path d="M32 0 C136.52 0.66, 235.45 0.22, 345.04 0 C366.07 3.58, 379.76 13.56, 377.04 32 C378.64 52.91, 377.49 73.93, 377.04 135.95 C376.33 157.59, 364.28 166.11, 345.04 167.95 C246.95 168, 152.76 169.25, 32 167.95 C9.96 167.46, -2.61 156.95, 0 135.95 C1.8 108.63, 0.73 81.37, 0 32 C3.2 7.34, 13.92 1.91, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C100.92 -0.61, 168.46 -2.42, 345.04 0 M32 0 C106.25 -1.07, 180.63 -1.36, 345.04 0 M345.04 0 C365.44 0.8, 377.49 10.07, 377.04 32 M345.04 0 C364.13 0.09, 376.26 8.49, 377.04 32 M377.04 32 C377.17 71.91, 377.8 109.21, 377.04 135.95 M377.04 32 C375.43 64.58, 376.89 95.45, 377.04 135.95 M377.04 135.95 C376.43 156.78, 365.19 169.81, 345.04 167.95 M377.04 135.95 C377.85 158.75, 365.4 165.87, 345.04 167.95 M345.04 167.95 C274.43 166.06, 201.25 167.89, 32 167.95 M345.04 167.95 C276.39 168.87, 207.99 168.92, 32 167.95 M32 167.95 C8.75 167.39, -1.56 156.03, 0 135.95 M32 167.95 C10.36 166.97, 0.18 158.12, 0 135.95 M0 135.95 C0.37 102.52, -1.31 65.46, 0 32 M0 135.95 C0.32 105.99, -0.53 75.46, 0 32 M0 32 C1.7 10.43, 9.29 -1.8, 32 0 M0 32 C-0.39 8.75, 11.36 -1.87, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1688.510130547516 287.9832990368577) rotate(0 169.10000610351562 71.0092825774392)"><text x="169.10000610351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">state tree holds </text><text x="169.10000610351562" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">all of the signed </text><text x="169.10000610351562" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">up users</text></g><g stroke-linecap="round"><g transform="translate(1401.9672002699574 116.19527903263429) rotate(0 71.67764690220747 -25.7876728134853)"><path d="M-1.11 -0.74 C22.85 -9.19, 120.18 -42.46, 144.17 -50.87 M0.5 1.48 C24.34 -7.3, 120.1 -43.49, 143.66 -52.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1401.9672002699574 116.19527903263429) rotate(0 71.67764690220747 -25.7876728134853)"><path d="M120.98 -32.98 C127.35 -37.97, 137.35 -46.72, 143.66 -52.62 M120.98 -32.98 C128.21 -39.12, 136.47 -46.38, 143.66 -52.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1401.9672002699574 116.19527903263429) rotate(0 71.67764690220747 -25.7876728134853)"><path d="M113.66 -52.15 C122.45 -50.66, 134.9 -53.01, 143.66 -52.62 M113.66 -52.15 C123.21 -51.89, 133.92 -52.74, 143.66 -52.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1492.4761573868848 360.1459615162071) rotate(0 85.1790241846004 13.894323841225685)"><path d="M0.82 0.71 C29.31 5.53, 141.73 23.69, 169.87 28.2 M-0.21 0.03 C28.18 4.55, 139.94 21.46, 168.66 26.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1492.4761573868848 360.1459615162071) rotate(0 85.1790241846004 13.894323841225685)"><path d="M139.21 32 C146.53 29.8, 152.13 28.18, 168.66 26.29 M139.21 32 C148.11 29.91, 155.55 28.57, 168.66 26.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1492.4761573868848 360.1459615162071) rotate(0 85.1790241846004 13.894323841225685)"><path d="M142.42 11.73 C148.95 13.75, 153.89 16.34, 168.66 26.29 M142.42 11.73 C150.29 15.61, 156.79 20.21, 168.66 26.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1001.3544310467742 1189.1806388496793) rotate(0 286.296374233517 208.0482333386976)"><path d="M358.75 52.25 C413.84 93.62, 474.27 134.4, 500.84 156.75 C571.23 208.58, 569.97 208.3, 500.84 261.25 C456.31 293.87, 411.69 321.84, 358.75 363.85 C287.75 418.78, 289.49 415.39, 215.25 363.85 C174.08 332.2, 136.03 305.6, 71.75 261.25 C-0.25 208.67, -0.45 212.2, 71.75 156.75 C99.41 136.22, 131.99 114.76, 215.25 52.25 C286.07 -0.52, 287.15 1.13, 358.75 52.25" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M358.75 52.25 C412.36 90.06, 463.88 128.86, 500.84 156.75 M358.75 52.25 C406.3 88.22, 455.22 122.75, 500.84 156.75 M500.84 156.75 C574.19 207.22, 574.07 210.06, 500.84 261.25 M500.84 156.75 C573.1 210.94, 570.59 209.11, 500.84 261.25 M500.84 261.25 C470.07 284.63, 436.04 306.23, 358.75 363.85 M500.84 261.25 C461.53 291.41, 421.69 318.08, 358.75 363.85 M358.75 363.85 C285.57 418.07, 286.2 417.48, 215.25 363.85 M358.75 363.85 C285.39 415.13, 288.35 414.25, 215.25 363.85 M215.25 363.85 C173.11 337.11, 132.8 304.46, 71.75 261.25 M215.25 363.85 C176.85 334.59, 137.99 307.44, 71.75 261.25 M71.75 261.25 C0.73 208.99, -1.19 209.36, 71.75 156.75 M71.75 261.25 C1.8 207.49, -0.56 208.69, 71.75 156.75 M71.75 156.75 C114.92 124.05, 156.27 95.66, 215.25 52.25 M71.75 156.75 C113.64 127.1, 155.45 97.01, 215.25 52.25 M215.25 52.25 C287.58 0.47, 286.56 1.18, 358.75 52.25 M215.25 52.25 C286.8 -2.3, 286.41 -0.19, 358.75 52.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1181.7359479364818 1349.8652338007353) rotate(0 105.76667022705078 47.33952171829279)"><text x="105.76667022705078" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. process </text><text x="105.76667022705078" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages</text></g><g stroke-linecap="round" transform="translate(1855.0624411597832 1072.469680570097) rotate(0 188.51867415214986 99.93899029417365)"><path d="M32 0 C139.57 -1.11, 247.21 -1.31, 345.04 0 C366.67 -2.09, 375.2 11.03, 377.04 32 C377.49 84.03, 379.24 129.99, 377.04 167.88 C376.55 186.6, 366.04 198.45, 345.04 199.88 C268.68 200.47, 192.36 202.98, 32 199.88 C7.34 203.13, 1.91 188.79, 0 167.88 C-2.55 117.04, -1.46 68.37, 0 32 C-1.29 14.08, 12.61 0.99, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C106.93 1.36, 180.31 -0.35, 345.04 0 M32 0 C127.64 1.48, 222.67 2.49, 345.04 0 M345.04 0 C366.81 1.69, 375.3 10.76, 377.04 32 M345.04 0 C364.72 -0.36, 375.06 12.73, 377.04 32 M377.04 32 C376.66 79.69, 379.02 130.46, 377.04 167.88 M377.04 32 C375.75 82.43, 376.06 131.59, 377.04 167.88 M377.04 167.88 C375.64 188.37, 367.54 198.28, 345.04 199.88 M377.04 167.88 C376.62 190.55, 367.01 198.65, 345.04 199.88 M345.04 199.88 C222.53 196.63, 99.93 197.55, 32 199.88 M345.04 199.88 C264.76 200.68, 183.53 200.82, 32 199.88 M32 199.88 C12.24 198.56, -0.49 188.94, 0 167.88 M32 199.88 C10.63 198.37, 0.69 188.83, 0 167.88 M0 167.88 C0.98 133.15, -0.58 100.82, 0 32 M0 167.88 C-0.12 138.67, -0.63 109.59, 0 32 M0 32 C-0.18 8.67, 10.15 -0.17, 32 0 M0 32 C2.29 12.4, 12.51 -1.97, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1876.7977748578317 1077.729627427685) rotate(0 166.78334045410156 94.67904343658557)"><text x="166.78334045410156" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Calculate the </text><text x="166.78334045410156" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index of the </text><text x="166.78334045410156" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message to </text><text x="166.78334045410156" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">process</text></g><g stroke-linecap="round"><g transform="translate(1569.2011319193032 1207.723894337289) rotate(0 119.25533339183016 -18.58449023423772)"><path d="M-1.17 0.04 C38.47 -6.28, 198 -31.93, 238.11 -38.31 M0.42 -0.98 C39.84 -7.17, 197.15 -31.28, 236.95 -37.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1569.2011319193032 1207.723894337289) rotate(0 119.25533339183016 -18.58449023423772)"><path d="M210.64 -22.95 C219.24 -28.02, 225.77 -30.4, 236.95 -37.36 M210.64 -22.95 C216.3 -25.29, 220.76 -29.13, 236.95 -37.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1569.2011319193032 1207.723894337289) rotate(0 119.25533339183016 -18.58449023423772)"><path d="M207.53 -43.24 C217.08 -41.73, 224.6 -37.57, 236.95 -37.36 M207.53 -43.24 C214 -41.31, 219.12 -40.87, 236.95 -37.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(1605.3429702590336 1082.969013186051) rotate(0 52.17867122206542 23.66976085914638)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Steps</text></g><g transform="translate(283.1571124412595 1939.2371850386232) rotate(0 54.01965262222126 23.66976085914638)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Notes</text></g><g stroke-linecap="round" transform="translate(479.7350590197376 2002.4421619564253) rotate(0 188.5186741521499 123.60875115332004)"><path d="M32 0 C128.1 1.01, 228.08 2.25, 345.04 0 C365.66 -0.49, 374.42 10.34, 377.04 32 C375.91 79.46, 374.84 126.97, 377.04 215.22 C380.23 233.22, 369.63 249.13, 345.04 247.22 C256.78 249.2, 164.22 249.97, 32 247.22 C11.79 245.93, 3.41 238.49, 0 215.22 C2.98 152.09, -0.11 93.42, 0 32 C-0.12 13.28, 13.39 2.34, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C151.63 -1.33, 270.95 -2.88, 345.04 0 M32 0 C126.79 0.99, 223.23 0.41, 345.04 0 M345.04 0 C365.77 -0.5, 375.85 12.53, 377.04 32 M345.04 0 C367.19 1.47, 376.07 8.59, 377.04 32 M377.04 32 C380.23 72.5, 378 116.98, 377.04 215.22 M377.04 32 C376.99 71.76, 377.61 112.13, 377.04 215.22 M377.04 215.22 C375.12 236, 364.81 245.96, 345.04 247.22 M377.04 215.22 C376.73 235.57, 366.55 248.05, 345.04 247.22 M345.04 247.22 C239.9 247.01, 133.32 245.54, 32 247.22 M345.04 247.22 C255.52 245.64, 165.18 245.12, 32 247.22 M32 247.22 C12.37 246.98, -1.37 234.75, 0 215.22 M32 247.22 C10.28 245.3, 0.69 234.68, 0 215.22 M0 215.22 C0.75 154.75, -2.43 94.13, 0 32 M0 215.22 C-1.02 160.92, -1.35 108.5, 0 32 M0 32 C0.4 9.91, 10.43 -1.46, 32 0 M0 32 C-0.45 10.86, 9.33 -1.17, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(485.6870675224735 2007.7021088140132) rotate(0 182.56666564941406 118.34880429573195)"><text x="182.56666564941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages are </text><text x="182.56666564941406" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">processed in </text><text x="182.56666564941406" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batches to reduce </text><text x="182.56666564941406" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the computing </text><text x="182.56666564941406" y="189.35808687317115" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">resources needed</text></g><g stroke-linecap="round"><g transform="translate(1046.010585694584 1546.3424252429936) rotate(0 -268.64905003741046 180.46748315828788)"><path d="M-1.04 0.06 C-90.78 60.01, -448.61 300.42, -538.16 360.75 M0.61 -0.96 C-88.77 59.71, -446.47 301.99, -535.9 362.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1046.010585694584 1546.3424252429936) rotate(0 -268.64905003741046 180.46748315828788)"><path d="M-518.29 337.9 C-523.66 344.13, -529.74 351.67, -535.9 362.19 M-518.29 337.9 C-525.31 347.14, -532.47 357.78, -535.9 362.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1046.010585694584 1546.3424252429936) rotate(0 -268.64905003741046 180.46748315828788)"><path d="M-506.8 354.91 C-516.01 355.56, -525.79 357.62, -535.9 362.19 M-506.8 354.91 C-518.4 357.52, -530.04 361.54, -535.9 362.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(10 2000.598313964344) rotate(0 188.51867415214994 123.60875115332004)"><path d="M32 0 C145.74 0.31, 262.19 -0.9, 345.04 0 C367.99 0.74, 376.79 10.34, 377.04 32 C383.22 86.6, 379.54 139.92, 377.04 215.22 C379.41 239.31, 365.44 246.7, 345.04 247.22 C252.25 247.17, 155.31 244.22, 32 247.22 C9.84 248.18, -3.14 234.43, 0 215.22 C2.83 171.91, -3.48 124.99, 0 32 C-3.22 7.66, 8.39 1.62, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C98.48 0.38, 166.69 2.45, 345.04 0 M32 0 C128.25 1.22, 225.59 1.01, 345.04 0 M345.04 0 C365.53 -1.81, 375.61 12.64, 377.04 32 M345.04 0 C365.45 1.6, 375.43 9.7, 377.04 32 M377.04 32 C376.74 98.26, 374.5 165.21, 377.04 215.22 M377.04 32 C374.5 77.97, 375.15 124.76, 377.04 215.22 M377.04 215.22 C377.19 237.28, 367.1 247.21, 345.04 247.22 M377.04 215.22 C375.67 236.97, 368.17 245.71, 345.04 247.22 M345.04 247.22 C257.88 247.61, 172.35 246.41, 32 247.22 M345.04 247.22 C278.64 246.31, 213.1 246.36, 32 247.22 M32 247.22 C11.27 245.59, 0.58 237.02, 0 215.22 M32 247.22 C10.16 248.58, -0.2 234.25, 0 215.22 M0 215.22 C1.66 166.59, -1.56 115.68, 0 32 M0 215.22 C-0.49 156.49, -0.56 99.3, 0 32 M0 32 C-1.16 9.65, 10.87 1.26, 32 0 M0 32 C-0.27 9.77, 11.14 1.71, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(62.318677203907754 2053.197782540225) rotate(0 136.1999969482422 71.0092825774392)"><text x="136.1999969482422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages are </text><text x="136.1999969482422" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">processed in </text><text x="136.1999969482422" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">reverse order</text></g><g stroke-linecap="round" transform="translate(1852.769274011127 874.6456511627878) rotate(0 188.51867415214986 83.97408279882444)"><path d="M32 0 C108 -1.06, 184.05 1.45, 345.04 0 C363.04 3.26, 378.95 10.24, 377.04 32 C377.34 69.97, 378.42 110.11, 377.04 135.95 C375.75 160.69, 368.31 168.93, 345.04 167.95 C268 167.51, 194.13 168.94, 32 167.95 C13.28 170.67, 2.34 153.69, 0 135.95 C-0.6 103.28, 4.41 68.52, 0 32 C-1.18 7.64, 13.01 2.86, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C144.24 -0.17, 258.52 1.18, 345.04 0 M32 0 C145.41 2.71, 259.54 2.51, 345.04 0 M345.04 0 C364.97 -0.84, 378.21 9.07, 377.04 32 M345.04 0 C365.96 1.34, 377.68 9.44, 377.04 32 M377.04 32 C376.01 70.99, 375.31 112.83, 377.04 135.95 M377.04 32 C377.49 58.74, 376.52 85.67, 377.04 135.95 M377.04 135.95 C378.61 155.97, 365.88 167.68, 345.04 167.95 M377.04 135.95 C377 155.78, 367.07 167.57, 345.04 167.95 M345.04 167.95 C268.02 168.87, 190.05 169.6, 32 167.95 M345.04 167.95 C277.42 166.3, 209.23 166.56, 32 167.95 M32 167.95 C10.49 165.95, -0.52 157.12, 0 135.95 M32 167.95 C12.95 169.69, 1.85 155.31, 0 135.95 M0 135.95 C-0.93 99.67, -1.63 63.47, 0 32 M0 135.95 C0.7 104.52, 0.48 71.44, 0 32 M0 32 C0.42 12.15, 12.05 -0.39, 32 0 M0 32 C-0.31 9, 10.46 -0.91, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1867.3212886173785 911.2802122433194) rotate(0 173.96665954589844 47.33952171829279)"><text x="173.96665954589844" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Loop from 0 to </text><text x="173.96665954589844" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchSize</text></g><g stroke-linecap="round"><g transform="translate(2298.3762380789058 1167.9209292974335) rotate(0 101.98766126183295 0)"><path d="M0.42 0.77 C34.45 0.4, 169.69 -1.15, 203.47 -1.08 M-0.81 0.12 C33.08 0.38, 167.86 0, 202.26 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2298.3762380789058 1167.9209292974335) rotate(0 101.98766126183295 0)"><path d="M174.09 10.23 C182.06 6.79, 185.75 3.72, 202.26 -0.11 M174.09 10.23 C184.66 5.49, 197.17 0.99, 202.26 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2298.3762380789058 1167.9209292974335) rotate(0 101.98766126183295 0)"><path d="M174.04 -10.3 C182.2 -8.79, 185.91 -6.92, 202.26 -0.11 M174.04 -10.3 C184.54 -6.86, 197.07 -3.18, 202.26 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2563.7564758882254 1060.9293621635825) rotate(0 188.51867415214997 99.93899029417365)"><path d="M32 0 C155.07 -3.93, 277.22 -1.93, 345.04 0 C369.13 -0.93, 376.52 10.82, 377.04 32 C378.1 78.01, 373.97 121.22, 377.04 167.88 C378 186.07, 364.25 198.05, 345.04 199.88 C253.82 200.36, 160.03 200.61, 32 199.88 C7.66 197.6, 1.62 191.95, 0 167.88 C3.14 125.58, -2.22 76.77, 0 32 C1.18 12.88, 9.57 -3.48, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C135.71 -0.08, 243.39 0.37, 345.04 0 M32 0 C148.06 0.37, 263.15 1.36, 345.04 0 M345.04 0 C366.93 -1.07, 378.84 9.75, 377.04 32 M345.04 0 C364.17 -0.64, 375.24 9.22, 377.04 32 M377.04 32 C377.18 71.68, 376.45 108.7, 377.04 167.88 M377.04 32 C377.86 75.09, 378.09 117.79, 377.04 167.88 M377.04 167.88 C377.64 188.88, 365.28 198.09, 345.04 199.88 M377.04 167.88 C379 188.94, 364.79 197.81, 345.04 199.88 M345.04 199.88 C255.3 200.96, 168.2 200.23, 32 199.88 M345.04 199.88 C232.44 197.59, 120.91 198.19, 32 199.88 M32 199.88 C12.27 198.16, 0.93 189.54, 0 167.88 M32 199.88 C11.13 199.01, -0.27 187.54, 0 167.88 M0 167.88 C-1.13 129.97, 1.15 91.42, 0 32 M0 167.88 C0.41 132.19, -0.42 96.17, 0 32 M0 32 C-0.18 9.87, 9.53 0.9, 32 0 M0 32 C0.47 10.51, 10.46 -0.29, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2570.0251500403756 1066.1893090211706) rotate(0 182.25 94.67904343658557)"><text x="182.25" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge"> index = </text><text x="182.25" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchStartIndex -</text><text x="182.25" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge"> batchSize - i (loop</text><text x="182.25" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">counter) - 1</text></g><g stroke-linecap="round"><g transform="translate(2724.6815226914987 1005.2295303408384) rotate(0 0 -40.97558356215529)"><path d="M-0.48 0.83 C-0.48 -13.11, -1.04 -68.5, -0.84 -82.46 M1.47 0.22 C1.92 -13.05, 1.62 -67.47, 1.43 -81.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2724.6815226914987 1005.2295303408384) rotate(0 0 -40.97558356215529)"><path d="M11.93 -53.08 C10.64 -60.95, 6.01 -64.81, 1.43 -81.19 M11.93 -53.08 C9.95 -59.74, 8.26 -65.84, 1.43 -81.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2724.6815226914987 1005.2295303408384) rotate(0 0 -40.97558356215529)"><path d="M-8.59 -52.91 C-5.19 -60.74, -5.13 -64.63, 1.43 -81.19 M-8.59 -52.91 C-6.06 -59.72, -3.23 -65.86, 1.43 -81.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2537.014988189295 670.1112090256706) rotate(0 188.51867415214997 99.93899029417366)"><path d="M32 0 C146.21 1.14, 261.96 0.12, 345.04 0 C369.78 1.94, 378.02 8.47, 377.04 32 C375.57 67.82, 377.57 109.91, 377.04 167.88 C379.76 191.55, 362.78 200.95, 345.04 199.88 C280.3 199.29, 214.08 196.5, 32 199.88 C7.64 202.22, 2.86 186.19, 0 167.88 C-1.9 126.67, -0.91 89.58, 0 32 C-0.84 7.18, 12.02 -2.31, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C112.78 2.39, 193.62 1.3, 345.04 0 M32 0 C144.82 0.86, 255.67 0.99, 345.04 0 M345.04 0 C364.81 -1.25, 376.77 9.81, 377.04 32 M345.04 0 C366.55 0.84, 377.88 10.66, 377.04 32 M377.04 32 C375.97 64.2, 377.02 97.35, 377.04 167.88 M377.04 32 C376.9 62.98, 378.3 95.62, 377.04 167.88 M377.04 167.88 C375.67 187.41, 366.03 198.21, 345.04 199.88 M377.04 167.88 C377.73 187.34, 367.04 200.42, 345.04 199.88 M345.04 199.88 C256.6 199.31, 170.9 201.09, 32 199.88 M345.04 199.88 C227.81 198.09, 110.06 197.7, 32 199.88 M32 199.88 C10.43 198.42, -0.39 189.38, 0 167.88 M32 199.88 C9.33 198.71, 0.23 190.67, 0 167.88 M0 167.88 C2.02 130.11, 0.13 89.31, 0 32 M0 167.88 C-0.44 137.43, 0.33 106.01, 0 32 M0 32 C-0.18 10.42, 12.44 -1.85, 32 0 M0 32 C2.08 11.89, 10.4 1.62, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2567.9336562379294 675.3711558832587) rotate(0 157.60000610351562 94.67904343658557)"><text x="157.60000610351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">start from the </text><text x="157.60000610351562" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">last item in the </text><text x="157.60000610351562" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batch and work </text><text x="157.60000610351562" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">your way down</text></g><g stroke-linecap="round" transform="translate(1855.101445684661 1313.0057254538835) rotate(0 188.51867415214986 123.60875115332004)"><path d="M32 0 C129.64 2.81, 223.13 -0.13, 345.04 0 C365.55 0.96, 373.89 8.54, 377.04 32 C379.65 79.99, 373.34 124.38, 377.04 215.22 C373.82 233.54, 364.09 248.84, 345.04 247.22 C225.16 247.57, 111.62 243.75, 32 247.22 C9.86 248.4, 2.22 235.45, 0 215.22 C-0.73 174.49, 1.46 138.43, 0 32 C1.78 7.97, 14.19 -2.76, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C145.09 0.8, 255.76 1.68, 345.04 0 M32 0 C111.05 0.17, 191.12 0.31, 345.04 0 M345.04 0 C366.53 0.73, 377.77 10.66, 377.04 32 M345.04 0 C365 0.42, 378.84 9.16, 377.04 32 M377.04 32 C375.48 83.07, 376.47 131.85, 377.04 215.22 M377.04 32 C377.91 69.68, 378.43 108.32, 377.04 215.22 M377.04 215.22 C377.64 234.93, 366.95 247.69, 345.04 247.22 M377.04 215.22 C376.53 237.91, 366.17 244.92, 345.04 247.22 M345.04 247.22 C260.28 250.57, 172.15 250.1, 32 247.22 M345.04 247.22 C245.86 245.86, 146.7 246.44, 32 247.22 M32 247.22 C9.51 246.2, 0.2 237.81, 0 215.22 M32 247.22 C10.39 246.33, 0.48 238.26, 0 215.22 M0 215.22 C-1.09 147.37, -0.43 78.76, 0 32 M0 215.22 C-0.47 151.88, 0.51 87.87, 0 32 M0 32 C1.81 11.73, 10.43 1.41, 32 0 M0 32 C1.52 12.43, 10.07 -0.33, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1867.686785486225 1318.2656723114717) rotate(0 175.93333435058594 118.34880429573195)"><text x="175.93333435058594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Check the </text><text x="175.93333435058594" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message type as </text><text x="175.93333435058594" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the processing will </text><text x="175.93333435058594" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">be slightly </text><text x="175.93333435058594" y="189.35808687317115" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">different</text></g><g stroke-linecap="round" transform="translate(2627.9094137506663 1648.1228575831226) rotate(0 188.51867415214997 123.60875115332004)"><path d="M32 0 C142.2 3.13, 251.33 0.94, 345.04 0 C364.54 -0.12, 379.65 13.39, 377.04 32 C370.53 95.88, 371.47 167.4, 377.04 215.22 C379.78 237.71, 365.19 244.19, 345.04 247.22 C230.19 244.69, 118.06 243.07, 32 247.22 C7.18 247.1, -2.86 235.71, 0 215.22 C0.53 175.31, 2.29 138.04, 0 32 C-1.4 12.62, 10.06 1.35, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C133.98 -3.37, 236.86 -3.12, 345.04 0 M32 0 C106.33 1.21, 180.81 0.95, 345.04 0 M345.04 0 C365.18 0.36, 378.61 9.35, 377.04 32 M345.04 0 C365.81 -0.31, 377 9.16, 377.04 32 M377.04 32 C374.95 94.2, 376.5 151.63, 377.04 215.22 M377.04 32 C377.03 69.69, 377.02 109.24, 377.04 215.22 M377.04 215.22 C376.6 237.73, 366.19 245.22, 345.04 247.22 M377.04 215.22 C376.44 236.36, 368.66 248.96, 345.04 247.22 M345.04 247.22 C226.24 248.55, 106.43 248.09, 32 247.22 M345.04 247.22 C273.5 247.04, 202.87 247.86, 32 247.22 M32 247.22 C10.43 246.44, 0.42 238.04, 0 215.22 M32 247.22 C12.26 246.76, -0.31 234.88, 0 215.22 M0 215.22 C1.63 162.34, 0.59 108.45, 0 32 M0 215.22 C-0.72 163.05, -1.75 110.53, 0 32 M0 32 C1.32 12.2, 10.15 -0.29, 32 0 M0 32 C0.1 11.39, 9.84 2.18, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2674.7947566039884 1724.3920870181498) rotate(0 141.63333129882812 47.33952171829279)"><text x="141.63333129882812" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Process topup </text><text x="141.63333129882812" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messsage</text></g><g stroke-linecap="round"><g transform="translate(2235.4412399849443 1604.7097740771205) rotate(0 50.119266253341266 36.552306037112714)"><path d="M-0.94 -0.75 C15.93 11.4, 83.2 60.21, 100.08 72.59 M0.77 1.47 C17.57 13.81, 82.57 62.2, 99.05 73.86" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2235.4412399849443 1604.7097740771205) rotate(0 50.119266253341266 36.552306037112714)"><path d="M70.22 65.55 C74.83 67.21, 81.11 69.33, 99.05 73.86 M70.22 65.55 C79.35 68.53, 90.42 70.49, 99.05 73.86" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2235.4412399849443 1604.7097740771205) rotate(0 50.119266253341266 36.552306037112714)"><path d="M82.3 48.97 C84.4 53.91, 88.22 59.42, 99.05 73.86 M82.3 48.97 C87.43 57.52, 94.44 65.06, 99.05 73.86" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2136.7448123552813 1752.8662970733508) rotate(0 188.51867415214997 123.60875115332004)"><path d="M32 0 C109.29 2.07, 184.53 -2.42, 345.04 0 C367.45 -3.22, 374.03 8.39, 377.04 32 C378.37 92.19, 381.89 161.29, 377.04 215.22 C374.01 235.74, 367.55 249.43, 345.04 247.22 C258.65 246.49, 173.85 248.05, 32 247.22 C8.35 248.99, -2.7 240.08, 0 215.22 C0.67 175.65, -0.56 130.29, 0 32 C-1.41 9.59, 7.48 2.3, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C100.86 0.41, 171.45 0.82, 345.04 0 M32 0 C126.32 -0.87, 219.36 -0.5, 345.04 0 M345.04 0 C366.34 -1.31, 377.64 10.34, 377.04 32 M345.04 0 C365.12 -2.06, 379 10.39, 377.04 32 M377.04 32 C373.72 75, 373.77 117.37, 377.04 215.22 M377.04 32 C376.54 90.26, 376.38 150.44, 377.04 215.22 M377.04 215.22 C379.03 238.06, 367.98 245.5, 345.04 247.22 M377.04 215.22 C378.11 236.93, 366.83 246.35, 345.04 247.22 M345.04 247.22 C254.89 245.96, 163.78 246.93, 32 247.22 M345.04 247.22 C231.49 246.88, 118.14 246.21, 32 247.22 M32 247.22 C10.39 245.77, -0.18 235.76, 0 215.22 M32 247.22 C9.36 248.25, 0.47 236.39, 0 215.22 M0 215.22 C-1.62 163.73, 1.29 108.39, 0 32 M0 215.22 C-1.47 147.22, -1.17 79.84, 0 32 M0 32 C-0.71 12.56, 11.74 0.55, 32 0 M0 32 C-1.4 10.14, 11.28 -2.01, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2192.8301521568455 1829.135526508378) rotate(0 132.43333435058594 47.33952171829276)"><text x="132.43333435058594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Process vote </text><text x="132.43333435058594" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messsage</text></g><g stroke-linecap="round"><g transform="translate(2253.706180639686 1430.591408132283) rotate(0 225.97822096714367 95.22301546484307)"><path d="M0.44 -0.01 C75.63 31.7, 375.83 159.05, 451.24 190.66 M-0.79 -1.05 C74.78 30.23, 378.01 156.72, 453.58 188.65" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2253.706180639686 1430.591408132283) rotate(0 225.97822096714367 95.22301546484307)"><path d="M423.62 187.21 C432.84 186.36, 442.43 189.56, 453.58 188.65 M423.62 187.21 C430.62 186.94, 437.96 187.77, 453.58 188.65" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2253.706180639686 1430.591408132283) rotate(0 225.97822096714367 95.22301546484307)"><path d="M431.55 168.29 C438.4 173.29, 445.55 182.32, 453.58 188.65 M431.55 168.29 C436.65 172.44, 442.13 177.7, 453.58 188.65" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2811.71810831747 1926.585565386315) rotate(0 -10.352120648023174 121.91080012614748)"><path d="M-0.71 0.22 C-4.08 40.72, -16.38 202.46, -19.76 243.03 M1.11 -0.71 C-2.37 39.93, -16.38 203.22, -20.22 244.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2811.71810831747 1926.585565386315) rotate(0 -10.352120648023174 121.91080012614748)"><path d="M-27.93 215.17 C-24.97 226.54, -24.05 234.24, -20.22 244.16 M-27.93 215.17 C-25.42 223.36, -24.06 230.94, -20.22 244.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2811.71810831747 1926.585565386315) rotate(0 -10.352120648023174 121.91080012614748)"><path d="M-7.49 216.99 C-11.42 227.63, -17.38 234.72, -20.22 244.16 M-7.49 216.99 C-10.84 224.53, -15.34 231.59, -20.22 244.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2615.2212257993724 2209.09812844682) rotate(0 188.51867415214997 123.6087511533201)"><path d="M32 0 C99.05 4.49, 164.62 1.7, 345.04 0 C363.34 2.34, 379.89 7.64, 377.04 32 C377.02 79.38, 378 130.87, 377.04 215.22 C376.2 233.06, 367.73 244.9, 345.04 247.22 C233.72 250.15, 127.72 250.71, 32 247.22 C12.02 245.38, -3.1 235.14, 0 215.22 C1.52 163.94, 3.3 116.37, 0 32 C-0.82 8.64, 13.19 -1.26, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C106.38 -2.1, 182.43 -1.77, 345.04 0 M32 0 C105.04 -0.27, 179.46 0.28, 345.04 0 M345.04 0 C365 -1.8, 376.7 9, 377.04 32 M345.04 0 C367.06 -1.87, 377.71 11.21, 377.04 32 M377.04 32 C376.12 82.41, 377.95 135.84, 377.04 215.22 M377.04 32 C378.97 100.97, 378.71 169.24, 377.04 215.22 M377.04 215.22 C376.8 235.09, 365.98 247.39, 345.04 247.22 M377.04 215.22 C375.7 235.38, 366.6 248.67, 345.04 247.22 M345.04 247.22 C255.9 248.67, 164.37 247.49, 32 247.22 M345.04 247.22 C273.45 246.66, 202.82 246.29, 32 247.22 M32 247.22 C10.48 246.97, 1.78 234.7, 0 215.22 M32 247.22 C12.75 248.44, -0.27 238.17, 0 215.22 M0 215.22 C-1.69 148.24, -0.78 80.38, 0 32 M0 215.22 C-1.6 142.67, -0.72 69.7, 0 32 M0 32 C-1.18 9.65, 10.6 1.45, 32 0 M0 32 C1.74 12.16, 8.38 0.69, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2621.706559497421 2285.367357881847) rotate(0 182.03334045410156 47.33952171829276)"><text x="182.03334045410156" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ensure that the </text><text x="182.03334045410156" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateIndex is valid</text></g><g stroke-linecap="round" transform="translate(2631.2710056732194 2583.6299866329286) rotate(0 188.51867415214997 170.94827287161286)"><path d="M32 0 C147.57 2.98, 269.48 -0.84, 345.04 0 C365.56 1.18, 379.25 9.57, 377.04 32 C376.27 85.8, 377.96 143.18, 377.04 309.9 C378.81 328.53, 369.9 339.14, 345.04 341.9 C264.22 339.91, 179.28 340.21, 32 341.9 C9.59 338.71, 2.3 329.83, 0 309.9 C-1.04 238.9, 1.53 170.07, 0 32 C2.31 12.66, 9.82 -2.73, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C117.3 0.47, 204.22 -0.74, 345.04 0 M32 0 C97.42 -0.37, 163.7 -0.33, 345.04 0 M345.04 0 C366.97 -1.63, 377.62 11.14, 377.04 32 M345.04 0 C365.86 1.36, 376.83 8.37, 377.04 32 M377.04 32 C378.02 109.43, 375.54 185.11, 377.04 309.9 M377.04 32 C377.38 119.41, 377.32 208.01, 377.04 309.9 M377.04 309.9 C375.88 330.21, 366.57 343.16, 345.04 341.9 M377.04 309.9 C376.76 330.34, 366.85 343.61, 345.04 341.9 M345.04 341.9 C228.4 341.46, 113.26 340.79, 32 341.9 M345.04 341.9 C236.97 341.65, 129.67 341.09, 32 341.9 M32 341.9 C12.48 342.96, -0.24 332.64, 0 309.9 M32 341.9 C12.19 343.66, -0.6 330.9, 0 309.9 M0 309.9 C0.79 226.2, -0.25 139.9, 0 32 M0 309.9 C-1.03 232.51, -0.6 156.46, 0 32 M0 32 C1.51 11.97, 8.67 0.6, 32 0 M0 32 C-2.06 8.74, 9.21 1.04, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2636.4230111241977 2588.889933490517) rotate(0 183.36666870117188 165.68832601402482)"><text x="183.36666870117188" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">extract the </text><text x="183.36666870117188" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeaf at </text><text x="183.36666870117188" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">position </text><text x="183.36666870117188" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateIndex, then </text><text x="183.36666870117188" y="189.35808687317115" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">add to the balance</text><text x="183.36666870117188" y="236.69760859146393" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the amount part </text><text x="183.36666870117188" y="284.0371303097567" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">of the message</text></g><g stroke-linecap="round"><g transform="translate(2808.723922201236 2497.506935524259) rotate(0 0 32.92603770586868)"><path d="M-0.65 -1.07 C-0.54 9.91, 1.05 54.73, 1.02 65.71 M1.2 0.98 C1.21 12.17, 0.54 56.41, 0.61 67.17" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2808.723922201236 2497.506935524259) rotate(0 0 32.92603770586868)"><path d="M-9.49 38.92 C-7.99 50.01, -3.1 56.26, 0.61 67.17 M-9.49 38.92 C-7.11 44.13, -5 51.11, 0.61 67.17" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2808.723922201236 2497.506935524259) rotate(0 0 32.92603770586868)"><path d="M11.03 39.04 C5.76 49.98, 3.87 56.19, 0.61 67.17 M11.03 39.04 C9.1 44.05, 6.9 51.01, 0.61 67.17" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(3271.947837549178 2580.2300388669073) rotate(0 179.2020711009559 162.5)"><path d="M32 0 C97.23 -2.1, 156.58 -1.37, 326.4 0 C344.88 -0.84, 354.92 12.02, 358.4 32 C363.07 91.32, 359.14 156.61, 358.4 293 C357.8 315.68, 345.9 321.9, 326.4 325 C251.36 320.48, 171.54 321.8, 32 325 C10.76 324.18, -2.03 316.85, 0 293 C-3.09 221.63, -4.14 152.52, 0 32 C2.83 10.32, 10.1 -2.26, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C104.1 -2.88, 175.22 -2.11, 326.4 0 M32 0 C96.01 1.95, 159.42 2.22, 326.4 0 M326.4 0 C347.56 -2, 357.89 10.5, 358.4 32 M326.4 0 C350.02 1.74, 360.25 8.7, 358.4 32 M358.4 32 C358.15 122.31, 357.59 212.68, 358.4 293 M358.4 32 C357.28 113.01, 357.1 192.69, 358.4 293 M358.4 293 C358.82 315.82, 349.12 324.61, 326.4 325 M358.4 293 C358.09 312.66, 347.53 324.09, 326.4 325 M326.4 325 C254.65 325.32, 182.93 326.77, 32 325 M326.4 325 C265.21 326.68, 204.69 326.73, 32 325 M32 325 C10.15 324.71, 0.08 314.96, 0 293 M32 325 C9.84 327.18, 1.24 314.96, 0 293 M0 293 C-0.92 229.69, -0.33 168.21, 0 32 M0 293 C-2.37 196, -2.29 97.85, 0 32 M0 32 C-1.27 11.57, 12.19 0.65, 32 0 M0 32 C-0.75 8.73, 12.16 1.82, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3278.24991475365 2630.2300388669073) rotate(0 172.89999389648438 112.5)"><text x="172.89999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">we want to store </text><text x="172.89999389648438" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">both the state </text><text x="172.89999389648438" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">before and after </text><text x="172.89999389648438" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the action, to feed</text><text x="172.89999389648438" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to the circuit</text></g><g stroke-linecap="round"><g transform="translate(3078.8421675217487 2693.6867630571965) rotate(0 57.916276643960146 6.0360818089138775)"><path d="M-0.2 -1 C19.3 1.03, 96.8 8.87, 116.19 11.1 M-1.77 1.09 C17.68 3.33, 95.87 10, 115.43 12.12" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3078.8421675217487 2693.6867630571965) rotate(0 57.916276643960146 6.0360818089138775)"><path d="M86.39 19.65 C91.52 18.56, 98.28 16.8, 115.43 12.12 M86.39 19.65 C95.72 16.05, 104.94 14.53, 115.43 12.12" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3078.8421675217487 2693.6867630571965) rotate(0 57.916276643960146 6.0360818089138775)"><path d="M88.35 -0.78 C92.83 2.86, 99.14 5.82, 115.43 12.12 M88.35 -0.78 C96.99 2.24, 105.58 7.32, 115.43 12.12" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2286.413866448428 2059.285465576622) rotate(0 -26.705208981386477 63.47381782819252)"><path d="M0.36 -0.98 C-8.45 20.4, -44.06 105.79, -53.06 127.23 M-0.91 1.13 C-9.83 22.21, -44.88 104.49, -53.83 125.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2286.413866448428 2059.285465576622) rotate(0 -26.705208981386477 63.47381782819252)"><path d="M-52.17 95.3 C-54.51 104.36, -52.89 111.82, -53.83 125.25 M-52.17 95.3 C-53.05 105.96, -52.39 117.55, -53.83 125.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2286.413866448428 2059.285465576622) rotate(0 -26.705208981386477 63.47381782819252)"><path d="M-33.3 103.38 C-40.92 110.21, -44.63 115.38, -53.83 125.25 M-33.3 103.38 C-40.95 110.94, -47.07 119.64, -53.83 125.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2014.6939781560293 2230.514751881142) rotate(0 188.51867415214997 170.94827287161286)"><path d="M32 0 C116.99 -0.25, 203.34 1, 345.04 0 C363.61 -1.4, 378.99 10.06, 377.04 32 C373.98 124.97, 372.62 221.38, 377.04 309.9 C375.64 329.42, 366.75 341.99, 345.04 341.9 C257.35 346.35, 172.88 344.1, 32 341.9 C7.94 339.73, -2.63 334.06, 0 309.9 C0.29 229.53, 1.73 148.62, 0 32 C-0.73 9.68, 11.15 -0.8, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C135.65 -0.96, 239.47 -0.77, 345.04 0 M32 0 C95.33 0.72, 157.82 -0.42, 345.04 0 M345.04 0 C367.31 0.33, 377.44 9.91, 377.04 32 M345.04 0 C366.1 -1.67, 376.59 10.86, 377.04 32 M377.04 32 C376.92 99.09, 375.35 166.86, 377.04 309.9 M377.04 32 C378.42 135.49, 378.45 239.79, 377.04 309.9 M377.04 309.9 C375.9 332.13, 366.78 341.76, 345.04 341.9 M377.04 309.9 C376.83 330.94, 368.41 339.77, 345.04 341.9 M345.04 341.9 C223.82 342.57, 101.69 341.27, 32 341.9 M345.04 341.9 C255.41 343.27, 166.67 342.79, 32 341.9 M32 341.9 C9.45 341.44, 0.53 329.48, 0 309.9 M32 341.9 C9.31 340.73, -0.08 332.9, 0 309.9 M0 309.9 C-0.93 204.15, -2.68 100.19, 0 32 M0 309.9 C-1.88 213.36, -1.13 118.73, 0 32 M0 32 C-1.68 10.22, 11.32 1.23, 32 0 M0 32 C-0.7 8.44, 10.59 -1.82, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2034.0793210093511 2235.77469873873) rotate(0 169.133331298828 165.68832601402477)"><text x="169.13333129882812" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. generate the </text><text x="169.13333129882812" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ECDH shared key </text><text x="169.13333129882812" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">using the </text><text x="169.13333129882812" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">coordinator's </text><text x="169.13333129882812" y="189.35808687317115" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">private key, and </text><text x="169.13333129882812" y="236.69760859146393" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the encryption </text><text x="169.13333129882812" y="284.0371303097567" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">public key</text></g><g stroke-linecap="round" transform="translate(2030.8893952157098 2714.507080177846) rotate(0 188.51867415214997 170.94827287161286)"><path d="M32 0 C139.39 -4.92, 252.1 -4.36, 345.04 0 C367.72 -1.84, 373.94 9.25, 377.04 32 C372.56 105.65, 373.93 182.15, 377.04 309.9 C376.22 329.2, 368.89 340.64, 345.04 341.9 C229.1 339.41, 115.17 342.97, 32 341.9 C10.32 341.33, -2.26 330.82, 0 309.9 C-2.11 222.62, -1.18 136.26, 0 32 C-0.39 10.55, 13.23 1.94, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C117.59 -0.17, 205.9 1.61, 345.04 0 M32 0 C149.89 2.03, 267.27 1.64, 345.04 0 M345.04 0 C366.14 -1.46, 376.65 10.84, 377.04 32 M345.04 0 C365.04 -1.17, 377.27 12.12, 377.04 32 M377.04 32 C377.35 113.14, 375.9 191.92, 377.04 309.9 M377.04 32 C376.41 95.54, 377 158.33, 377.04 309.9 M377.04 309.9 C376.86 330.98, 368.15 340.05, 345.04 341.9 M377.04 309.9 C379.12 332.45, 366.1 343.51, 345.04 341.9 M345.04 341.9 C230.25 341.38, 116.33 340.81, 32 341.9 M345.04 341.9 C221.04 342.34, 98.1 341.89, 32 341.9 M32 341.9 C9.49 340.88, -0.07 332.68, 0 309.9 M32 341.9 C12.4 343.39, -2.29 331.92, 0 309.9 M0 309.9 C2.48 252.57, 2.29 192.4, 0 32 M0 309.9 C-2.04 249.75, -1.14 190.41, 0 32 M0 32 C-0.61 8.73, 10.6 -1.59, 32 0 M0 32 C-0.53 8.44, 11.53 -1.48, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2052.608066316102 2790.7763096128733) rotate(0 166.8000030517578 94.67904343658552)"><text x="166.8000030517578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Decrypt the </text><text x="166.8000030517578" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">command into its </text><text x="166.8000030517578" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">unencrypted part </text><text x="166.8000030517578" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and its signature</text></g><g stroke-linecap="round"><g transform="translate(2208.729721497951 2604.5416151719405) rotate(0 2.2938083295482556 39.35298390952141)"><path d="M1.19 0.91 C2.17 13.87, 4.89 64.68, 5.55 77.68 M0.36 0.34 C1.29 13.42, 4.39 65.34, 5.11 78.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2208.729721497951 2604.5416151719405) rotate(0 2.2938083295482556 39.35298390952141)"><path d="M-6.75 51.12 C-2.01 60.16, -1.99 67.05, 5.11 78.67 M-6.75 51.12 C-3.06 59.16, 0.62 68.69, 5.11 78.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2208.729721497951 2604.5416151719405) rotate(0 2.2938083295482556 39.35298390952141)"><path d="M13.74 49.94 C12.86 59.51, 7.27 66.72, 5.11 78.67 M13.74 49.94 C10.95 58.28, 8.14 68.19, 5.11 78.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1871.112625309743 2849.1644620172747) rotate(0 -80.43671596710237 0)"><path d="M0.96 -1.03 C-25.95 -1.15, -133.38 0.1, -160.31 0.2 M0.01 1.05 C-27.12 0.46, -134.09 -1.75, -160.97 -1.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1871.112625309743 2849.1644620172747) rotate(0 -80.43671596710237 0)"><path d="M-132.64 -11.71 C-145.6 -6.6, -154.86 -3.18, -160.97 -1.82 M-132.64 -11.71 C-140.28 -9.24, -148.09 -7.24, -160.97 -1.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1871.112625309743 2849.1644620172747) rotate(0 -80.43671596710237 0)"><path d="M-132.91 8.81 C-145.91 5.72, -155.07 0.95, -160.97 -1.82 M-132.91 8.81 C-140.45 5.9, -148.19 2.52, -160.97 -1.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1031.5915356940418 2681.7885216678346) rotate(0 307.8287424862365 170.94827287161286)"><path d="M32 0 C168.92 0.29, 307.62 1, 583.66 0 C603.19 0.38, 615.75 9.85, 615.66 32 C620.13 101.24, 617.7 165.3, 615.66 309.9 C613.49 328.6, 607.82 341.55, 583.66 341.9 C427.04 342.02, 270.14 341.15, 32 341.9 C9.68 342.38, -0.8 330.84, 0 309.9 C-2.31 225.88, -1.52 143.83, 0 32 C-2.86 11.15, 11.56 -1.33, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C241.9 -0.87, 451.24 -1.12, 583.66 0 M32 0 C157.1 -0.39, 282.71 0.07, 583.66 0 M583.66 0 C604.75 -0.78, 616.07 12.15, 615.66 32 M583.66 0 C606.58 -0.45, 615.34 9, 615.66 32 M615.66 32 C615.5 113.15, 614.7 193.53, 615.66 309.9 M615.66 32 C618.25 112.33, 617.47 192.39, 615.66 309.9 M615.66 309.9 C616.98 332.76, 604.47 341.61, 583.66 341.9 M615.66 309.9 C615.75 331.95, 604.17 344.08, 583.66 341.9 M583.66 341.9 C388.24 340.76, 192.5 340.08, 32 341.9 M583.66 341.9 C446.51 343.76, 308.35 343.62, 32 341.9 M32 341.9 C8.88 340.23, -1.27 332.13, 0 309.9 M32 341.9 C12.42 342.64, -0.75 329.29, 0 309.9 M0 309.9 C-2.04 208.95, -0.75 106.53, 0 32 M0 309.9 C-0.11 252.67, 0.36 196.44, 0 32 M0 32 C0.99 9.17, 12.63 -1.53, 32 0 M0 32 C-0.89 11.92, 10.28 0.86, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1039.8036094791064 2687.048468525423) rotate(0 299.6166687011719 165.68832601402482)"><text x="299.6166687011719" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">This step might fail if the </text><text x="299.6166687011719" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">provided encryption public key </text><text x="299.6166687011719" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">was wrong or the message was </text><text x="299.6166687011719" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">encrypted incorrectly - if that </text><text x="299.6166687011719" y="189.35808687317115" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">happens we return a no-op </text><text x="299.6166687011719" y="236.69760859146393" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message to the outer </text><text x="299.6166687011719" y="284.0371303097567" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">processing loop</text></g><g stroke-linecap="round" transform="translate(1954.4362511387885 3252.2018734519443) rotate(0 318.757009766416 59.37184200403328)"><path d="M29.69 0 C151.29 1.77, 274.38 1.29, 607.83 0 C625.59 2.52, 636.26 12.21, 637.51 29.69 C635.09 48.16, 640.09 71.54, 637.51 89.06 C636.95 106.59, 627.21 119.15, 607.83 118.74 C410.66 118.1, 213.97 117.75, 29.69 118.74 C9.78 121.31, 1.94 109.41, 0 89.06 C-3.33 75.03, 0.42 58.7, 0 29.69 C1.01 7.7, 8.76 2.41, 29.69 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M29.69 0 C214.21 0.11, 399.96 -0.19, 607.83 0 M29.69 0 C173.62 -1.62, 317.73 -1.16, 607.83 0 M607.83 0 C629 -0.39, 637.24 8.44, 637.51 29.69 M607.83 0 C627.41 -0.91, 636.21 10.93, 637.51 29.69 M637.51 29.69 C637.23 50.5, 635.62 69.57, 637.51 89.06 M637.51 29.69 C638.1 51.41, 637.19 71.46, 637.51 89.06 M637.51 89.06 C637.6 109.47, 626.9 120.64, 607.83 118.74 M637.51 89.06 C638.75 109.48, 626.21 118.22, 607.83 118.74 M607.83 118.74 C418.52 117.35, 230.6 117.98, 29.69 118.74 M607.83 118.74 C396.4 119.1, 185.44 119.62, 29.69 118.74 M29.69 118.74 C11.42 119.39, -0.66 107.16, 0 89.06 M29.69 118.74 C11.39 120.57, -1.93 108.33, 0 89.06 M0 89.06 C-2.3 69.24, -1.95 49.09, 0 29.69 M0 89.06 C0.27 76.25, 0.76 64.18, 0 29.69 M0 29.69 C-0.78 10.98, 9.56 0.75, 29.69 0 M0 29.69 C-1.17 7.91, 8.99 -0.69, 29.69 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1973.2099235028606 3264.234193737685) rotate(0 299.98333740234375 47.33952171829276)"><text x="299.98333740234375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Verify that the signature is </text><text x="299.98333740234375" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">valid s</text></g><g stroke-linecap="round"><g transform="translate(2218.3909847898067 3090.7435089798582) rotate(0 0.7998510868653739 65.88622173503472)"><path d="M-0.7 -0.61 C-0.37 21.46, 1.36 110.54, 1.72 132.53 M1.14 1.68 C1.34 23.41, 0.92 109.02, 0.84 130.81" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2218.3909847898067 3090.7435089798582) rotate(0 0.7998510868653739 65.88622173503472)"><path d="M-9.3 102.57 C-7.45 110.75, -2.33 118.23, 0.84 130.81 M-9.3 102.57 C-5.9 109.67, -4.08 116.52, 0.84 130.81" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2218.3909847898067 3090.7435089798582) rotate(0 0.7998510868653739 65.88622173503472)"><path d="M11.22 102.66 C7.31 110.7, 6.68 118.15, 0.84 130.81 M11.22 102.66 C9.26 109.89, 5.72 116.71, 0.84 130.81" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1978.7952590118525 3537.1080323263245) rotate(0 274.3509623780891 66.41943098560728)"><path d="M32 0 C165.85 -1.62, 301.61 -2.96, 516.7 0 C535.31 -2.17, 546.07 13.5, 548.7 32 C548.09 52.39, 549.96 72.07, 548.7 100.84 C547.98 121.18, 538.52 132.04, 516.7 132.84 C377.36 135.72, 235.52 136.16, 32 132.84 C9.23 129.98, 0.49 123.06, 0 100.84 C-1.48 85.14, -3.05 64.39, 0 32 C3.35 11.15, 12.82 -0.39, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C149.87 -0.31, 266.33 -0.03, 516.7 0 M32 0 C213.42 0.1, 394.91 0.24, 516.7 0 M516.7 0 C536.9 0.9, 549.11 10.53, 548.7 32 M516.7 0 C537.83 -0.29, 550.74 8.54, 548.7 32 M548.7 32 C550.47 60.2, 550.6 85.24, 548.7 100.84 M548.7 32 C548.37 52.6, 549.27 71.58, 548.7 100.84 M548.7 100.84 C547.48 121.71, 538.57 131.09, 516.7 132.84 M548.7 100.84 C547.34 121, 537.96 134.51, 516.7 132.84 M516.7 132.84 C334.92 130.02, 151.93 130.25, 32 132.84 M516.7 132.84 C349.32 133.15, 182.49 133.84, 32 132.84 M32 132.84 C8.99 132.39, 0.65 123.4, 0 100.84 M32 132.84 C9.96 130.61, -0.07 120.35, 0 100.84 M0 100.84 C-0.62 82.77, -0.83 64.7, 0 32 M0 100.84 C0.1 85.84, -0.24 69.23, 0 32 M0 32 C-0.79 10.07, 8.9 1.28, 32 0 M0 32 C-0.89 9.51, 10.91 0.06, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2077.8628809358397 3579.8577024527854) rotate(0 175.28334045410156 23.669760859146436)"><text x="175.28334045410156" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Verify the nonce</text></g><g stroke-linecap="round"><g transform="translate(2246.628670126953 3429.198538451929) rotate(0 -0.3057600380720942 41.01903958997559)"><path d="M0.25 0.89 C0.31 14.6, 0.39 68.42, 0.22 81.8 M-1.08 0.32 C-1.09 14.25, -0.2 69.6, -0.29 83.21" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2246.628670126953 3429.198538451929) rotate(0 -0.3057600380720942 41.01903958997559)"><path d="M-10.73 55.09 C-6.34 64.56, -5.22 71, -0.29 83.21 M-10.73 55.09 C-8.95 61.98, -5.8 67.85, -0.29 83.21" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2246.628670126953 3429.198538451929) rotate(0 -0.3057600380720942 41.01903958997559)"><path d="M9.79 54.96 C8.27 64.51, 3.48 70.99, -0.29 83.21 M9.79 54.96 C6.91 61.8, 5.39 67.7, -0.29 83.21" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1978.66543945638 3808.655817871037) rotate(0 274.350962378089 76.26922943502723)"><path d="M32 0 C164.84 3.44, 299.77 2, 516.7 0 C535.77 -0.41, 549.11 12.12, 548.7 32 C548.87 58, 547.99 85.49, 548.7 120.54 C551.27 143.81, 538.6 150.54, 516.7 152.54 C350.09 149.97, 182.51 150.02, 32 152.54 C8.47 151.4, 2.41 139.17, 0 120.54 C0.67 94.1, 1.35 71.38, 0 32 C-2.01 13.25, 13.12 3.15, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C187.31 -1.55, 342.34 -1.51, 516.7 0 M32 0 C158.29 -0.96, 284.38 -0.98, 516.7 0 M516.7 0 C539.81 -1.85, 550.51 11.73, 548.7 32 M516.7 0 C537.76 1.62, 550.22 12.43, 548.7 32 M548.7 32 C549.2 55.55, 550.47 81.62, 548.7 120.54 M548.7 32 C548.43 60.11, 547.57 89.46, 548.7 120.54 M548.7 120.54 C548.64 143.32, 539.55 153.84, 516.7 152.54 M548.7 120.54 C546.41 142.56, 535.98 150.62, 516.7 152.54 M516.7 152.54 C402.25 153.83, 286.54 154.66, 32 152.54 M516.7 152.54 C332.98 152.34, 148.85 151.67, 32 152.54 M32 152.54 C10.6 150.95, -0.46 139.93, 0 120.54 M32 152.54 C11.53 151.06, 1.13 140.15, 0 120.54 M0 120.54 C1.76 84.96, 1.43 49.04, 0 32 M0 120.54 C-0.54 102.25, -0.04 82.17, 0 32 M0 32 C0.21 10.72, 10.21 -1.13, 32 0 M0 32 C1.61 9.86, 12.14 1.28, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1984.3497453403286 3813.915764728625) rotate(0 268.6666564941406 71.00928257743908)"><text x="268.6666564941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Extract the voice credit </text><text x="268.6666564941406" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">spent and check if there's </text><text x="268.6666564941406" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">enough</text></g><g stroke-linecap="round" transform="translate(2747.0353849403737 3706.490475984102) rotate(0 274.3509623780892 99.93899029417366)"><path d="M32 0 C185.47 1.99, 340.9 4.19, 516.7 0 C539 -3.37, 549.6 11.49, 548.7 32 C548.3 79.4, 553.29 129.96, 548.7 167.88 C549.8 187.94, 539.11 198.27, 516.7 199.88 C390.48 201.34, 261.79 202.36, 32 199.88 C8.12 201.91, 2 191.61, 0 167.88 C5.56 138.59, 1.18 103.99, 0 32 C1.01 13.41, 11.86 2.85, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C164.1 -0.08, 297.39 -0.91, 516.7 0 M32 0 C137.6 1.4, 242.21 1.71, 516.7 0 M516.7 0 C539.98 -0.63, 548.59 8.7, 548.7 32 M516.7 0 C535.74 -1.97, 550.8 9.17, 548.7 32 M548.7 32 C548.33 69.89, 547.53 105.53, 548.7 167.88 M548.7 32 C550.22 63.56, 548.54 94.52, 548.7 167.88 M548.7 167.88 C550.61 188.5, 539.97 200.47, 516.7 199.88 M548.7 167.88 C549.33 188.57, 537.34 198.19, 516.7 199.88 M516.7 199.88 C418.09 201.22, 319.44 199.66, 32 199.88 M516.7 199.88 C331.08 201.4, 145.42 201.98, 32 199.88 M32 199.88 C9.78 201.24, 0.88 190.66, 0 167.88 M32 199.88 C12.59 199.58, 2.07 189.85, 0 167.88 M0 167.88 C1.41 135.54, 0.37 100.09, 0 32 M0 167.88 C0.8 133.6, 1.92 99.26, 0 32 M0 32 C-1.17 11.93, 8.67 -1.52, 32 0 M0 32 C-2.07 10.43, 11.67 0.69, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2780.1196847208066 3711.75042284169) rotate(0 241.26666259765625 94.67904343658552)"><text x="241.26666259765625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsLeft = </text><text x="241.26666259765625" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsBalance + </text><text x="241.26666259765625" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsSpent ** 2 - </text><text x="241.26666259765625" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newVoteWeight ** 2</text></g><g stroke-linecap="round" transform="translate(2758.8857871981 4002.78157608355) rotate(0 274.3509623780892 99.93899029417366)"><path d="M32 0 C225.5 0.02, 416.96 -2.66, 516.7 0 C536.67 -3.1, 549.15 9.17, 548.7 32 C546.28 65, 546.71 92.34, 548.7 167.88 C547.38 189.66, 537.42 202.2, 516.7 199.88 C379.33 202.54, 241.46 202.24, 32 199.88 C12.5 201.25, -1.02 185.94, 0 167.88 C-0.76 138.86, 4.08 106.05, 0 32 C3.55 7.54, 10.92 0.72, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C173 -0.32, 314.63 -0.72, 516.7 0 M32 0 C200.88 -0.43, 369.52 -1.04, 516.7 0 M516.7 0 C539.12 -0.13, 548.57 9, 548.7 32 M516.7 0 C540.11 -1.26, 550.32 9.72, 548.7 32 M548.7 32 C546.35 68.88, 550 108.43, 548.7 167.88 M548.7 32 C547 86.36, 547.11 139.51, 548.7 167.88 M548.7 167.88 C547.33 190.97, 537.19 201.58, 516.7 199.88 M548.7 167.88 C548.97 190.04, 538.63 200.47, 516.7 199.88 M516.7 199.88 C357.22 200.99, 197.39 200.84, 32 199.88 M516.7 199.88 C377.05 200.1, 237.81 199.92, 32 199.88 M32 199.88 C9.28 199.97, 1.54 189.86, 0 167.88 M32 199.88 C11.2 202.13, 0.79 188.43, 0 167.88 M0 167.88 C1.97 119.29, 0.07 72.6, 0 32 M0 167.88 C1.27 132.9, 1.34 96.39, 0 32 M0 32 C1.34 10.19, 10 -1.93, 32 0 M0 32 C-1.94 10.94, 11.51 0.5, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2827.0867556797048 4079.0508055185774) rotate(0 206.14999389648438 23.669760859146436)"><text x="206.14999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsLeft &gt;= 0</text></g><g stroke-linecap="round"><g transform="translate(3035.606830027734 3939.1850152211086) rotate(0 -1.2207534235501498 27.255925192769155)"><path d="M0.65 0.86 C0.16 10.08, -2.74 46.55, -3.31 55.45 M-0.47 0.27 C-0.55 9.15, -0.51 44.62, -1.06 53.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3035.606830027734 3939.1850152211086) rotate(0 -1.2207534235501498 27.255925192769155)"><path d="M-9.74 27.95 C-5.91 33.47, -3.43 41.33, -1.06 53.82 M-9.74 27.95 C-7.75 35.39, -3.68 42.23, -1.06 53.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3035.606830027734 3939.1850152211086) rotate(0 -1.2207534235501498 27.255925192769155)"><path d="M8.92 28.43 C7.69 33.92, 5.11 41.65, -1.06 53.82 M8.92 28.43 C5.67 35.68, 4.51 42.38, -1.06 53.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2568.7009810733407 3879.9330039324805) rotate(0 75.84257444944478 -18.96064361236131)"><path d="M0.79 -1.06 C25.8 -7.28, 126.03 -31.38, 150.99 -37.67 M-0.25 1 C25.06 -5.57, 127.82 -33.17, 153.33 -39.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2568.7009810733407 3879.9330039324805) rotate(0 75.84257444944478 -18.96064361236131)"><path d="M128.67 -22.58 C136.32 -30.39, 147.85 -37.6, 153.33 -39.67 M128.67 -22.58 C133.48 -26.86, 140.5 -31.29, 153.33 -39.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2568.7009810733407 3879.9330039324805) rotate(0 75.84257444944478 -18.96064361236131)"><path d="M123.46 -42.43 C133.02 -42.74, 146.53 -42.43, 153.33 -39.67 M123.46 -42.43 C129.57 -42.33, 137.76 -42.33, 153.33 -39.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2225.039315599295 3714.027372324321) rotate(0 -1.1537427068997204 33.932439340606834)"><path d="M-0.12 -0.57 C-0.33 10.9, -0.93 57.41, -1.35 68.97 M-1.65 1.74 C-1.92 12.9, -1.47 56.56, -1.79 67.43" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2225.039315599295 3714.027372324321) rotate(0 -1.1537427068997204 33.932439340606834)"><path d="M-11.85 39.17 C-9.86 48.97, -4.15 55.03, -1.79 67.43 M-11.85 39.17 C-8.91 49.19, -3.39 60.69, -1.79 67.43" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2225.039315599295 3714.027372324321) rotate(0 -1.1537427068997204 33.932439340606834)"><path d="M8.67 39.31 C4.71 49.05, 4.48 55.07, -1.79 67.43 M8.67 39.31 C3.8 49.47, 1.51 60.91, -1.79 67.43" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1991.6765692651986 4149.23095484456) rotate(0 274.350962378089 76.26922943502723)"><path d="M32 0 C135.9 -4.17, 241.6 -3.29, 516.7 0 C540.25 -0.37, 545.87 10.47, 548.7 32 C546.14 58.28, 545.68 77.3, 548.7 120.54 C545.67 144.44, 535.58 149.94, 516.7 152.54 C381.8 152.58, 247.9 154.53, 32 152.54 C11.34 152.89, -0.93 144.79, 0 120.54 C2.73 95.67, 2.84 76.92, 0 32 C-2.11 11.27, 10.67 -2.94, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C134.07 0.77, 235.26 0.83, 516.7 0 M32 0 C164.49 0.28, 297.41 -0.17, 516.7 0 M516.7 0 C539.29 -0.68, 549.08 11.34, 548.7 32 M516.7 0 C537.23 1.84, 550.89 12.67, 548.7 32 M548.7 32 C547.82 61.11, 549.08 86.89, 548.7 120.54 M548.7 32 C549.13 66.37, 550.16 100.9, 548.7 120.54 M548.7 120.54 C548.97 142.84, 538.55 152.88, 516.7 152.54 M548.7 120.54 C549.81 142.34, 537.58 150.74, 516.7 152.54 M516.7 152.54 C388.68 152.97, 260.74 154.05, 32 152.54 M516.7 152.54 C353.81 152.09, 191.22 152.44, 32 152.54 M32 152.54 C9.53 151.96, -0.82 142.6, 0 120.54 M32 152.54 C9.29 150.66, -0.76 143.89, 0 120.54 M0 120.54 C0.31 94.66, 1.11 70.67, 0 32 M0 120.54 C-0.27 90.18, 0.08 60.15, 0 32 M0 32 C1.62 8.73, 11.86 -1.31, 32 0 M0 32 C-1.87 12.22, 10.55 -2.19, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2016.0608720973894 4154.490901702148) rotate(0 249.96665954589844 71.00928257743908)"><text x="249.96665954589844" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. Validate if the vote </text><text x="249.96665954589844" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">option is correct &gt;= 0 &lt;= </text><text x="249.96665954589844" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">maxVoteOption</text></g><g stroke-linecap="round"><g transform="translate(2253.077392182724 4018.2979529105774) rotate(0 -1.6187674325703938 46.94425554454142)"><path d="M-0.66 0.57 C-1.24 16.55, -2.12 79.22, -2.6 94.86 M1.19 -0.18 C0.43 15.57, -2.27 77.82, -3.21 93.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2253.077392182724 4018.2979529105774) rotate(0 -1.6187674325703938 46.94425554454142)"><path d="M-12.03 64.57 C-8.03 76.39, -4.07 85.53, -3.21 93.25 M-12.03 64.57 C-8.07 73.75, -6.51 84.32, -3.21 93.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2253.077392182724 4018.2979529105774) rotate(0 -1.6187674325703938 46.94425554454142)"><path d="M8.47 65.62 C4.82 76.93, 1.13 85.68, -3.21 93.25 M8.47 65.62 C5.36 74.61, -0.15 84.82, -3.21 93.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1988.4390344000578 4505.3597900100485) rotate(0 274.3509623780892 99.93899029417366)"><path d="M32 0 C165.64 -1.25, 301.52 0.43, 516.7 0 C534.59 -1.97, 549.42 9.66, 548.7 32 C553.74 69.19, 549.28 99.95, 548.7 167.88 C545.84 187.36, 536.63 198.25, 516.7 199.88 C381.63 200.68, 247.87 198.25, 32 199.88 C12.68 200.69, -3.26 187.91, 0 167.88 C-2.08 131.93, -2.39 90.81, 0 32 C0.53 7.33, 13.62 -0.08, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C195.93 0.25, 358.83 1.06, 516.7 0 M32 0 C173.54 1.05, 314.91 0.69, 516.7 0 M516.7 0 C536.8 -1.55, 548.22 10.29, 548.7 32 M516.7 0 C536.35 -1.98, 547.25 10.08, 548.7 32 M548.7 32 C549.05 60.43, 548.27 93.49, 548.7 167.88 M548.7 32 C549.92 84.45, 549.44 138.4, 548.7 167.88 M548.7 167.88 C550.32 187.77, 538.39 200.23, 516.7 199.88 M548.7 167.88 C548.83 189.08, 536.78 198.6, 516.7 199.88 M516.7 199.88 C405.89 198.37, 293.68 197.69, 32 199.88 M516.7 199.88 C356.41 198.39, 195.85 198.05, 32 199.88 M32 199.88 C10.12 200.43, -0.08 187.79, 0 167.88 M32 199.88 C12.78 197.74, -0.17 189.36, 0 167.88 M0 167.88 C-0.24 119.57, -0.01 74.3, 0 32 M0 167.88 C0.95 122.61, -0.36 77.71, 0 32 M0 32 C-1.54 10.37, 12.27 -1.92, 32 0 M0 32 C0.99 11.64, 11.79 -1.68, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1999.6233402840064 4510.619736867637) rotate(0 263.1666564941406 94.67904343658552)"><text x="263.1666564941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">7. Create a new state leaf</text><text x="263.1666564941406" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">with the new public key (if </text><text x="263.1666564941406" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">any) and the new voice </text><text x="263.1666564941406" y="142.01856515487836" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">credit balance </text></g><g stroke-linecap="round"><g transform="translate(2233.65218299188 4380.901857806346) rotate(0 0 32.375348651407876)"><path d="M0.83 -1.08 C1.09 9.59, 1.34 53.57, 1.11 64.72 M-0.19 0.96 C0.04 11.78, 0.98 55.73, 0.74 66.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2233.65218299188 4380.901857806346) rotate(0 0 32.375348651407876)"><path d="M-9.61 38.08 C-8.51 47.33, -4.01 52.03, 0.74 66.24 M-9.61 38.08 C-6.6 48.35, -2.68 59.67, 0.74 66.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2233.65218299188 4380.901857806346) rotate(0 0 32.375348651407876)"><path d="M10.91 38.02 C6.57 47.42, 5.62 52.14, 0.74 66.24 M10.91 38.02 C5.97 48.14, 1.94 59.49, 0.74 66.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1994.9141041303392 4847.53146891181) rotate(0 274.3509623780891 99.93899029417366)"><path d="M32 0 C214.06 -0.11, 393.23 0.84, 516.7 0 C541.13 1.89, 551.06 7.66, 548.7 32 C545.6 69.69, 546.2 107.63, 548.7 167.88 C550.82 186.56, 537.8 197.47, 516.7 199.88 C359.09 202.75, 200.13 202.83, 32 199.88 C13.91 199.6, -0.51 189.66, 0 167.88 C3.68 140.54, -0.97 116.28, 0 32 C2.89 13.36, 11.08 -1.77, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C186.28 -2.75, 340.35 -2.54, 516.7 0 M32 0 C143.18 1.63, 255.27 1.51, 516.7 0 M516.7 0 C539.1 0.22, 550.63 9.92, 548.7 32 M516.7 0 C538.45 -0.32, 550.12 10.43, 548.7 32 M548.7 32 C547.88 64.19, 547.42 96.68, 548.7 167.88 M548.7 32 C548.87 67.08, 550.23 100.29, 548.7 167.88 M548.7 167.88 C547.73 187.45, 536.94 201.84, 516.7 199.88 M548.7 167.88 C546.87 190.44, 537.48 200.31, 516.7 199.88 M516.7 199.88 C419.05 201.28, 320.98 200.58, 32 199.88 M516.7 199.88 C329.75 198.89, 142.03 199.2, 32 199.88 M32 199.88 C10.08 201.63, 0.46 187.54, 0 167.88 M32 199.88 C9.41 201.95, -0.78 187.03, 0 167.88 M0 167.88 C1.34 121.01, 1.47 79.16, 0 32 M0 167.88 C0.23 133.68, 1.81 99.4, 0 32 M0 32 C1.21 8.87, 11.5 -1.66, 32 0 M0 32 C-0.21 12.86, 9.35 -1.76, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2005.2983917037407 4876.461176628545) rotate(0 263.9666748046875 71.00928257743908)"><text x="263.9666748046875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">8. Update the ballot with </text><text x="263.9666748046875" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the new votes and the new </text><text x="263.9666748046875" y="94.67904343658557" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nonce</text></g><g stroke-linecap="round"><g transform="translate(2230.414648126738 4743.505762702114) rotate(0 0 35.61288351654866)"><path d="M0.97 0.23 C0.93 12.11, 0.63 59.13, 0.63 70.96 M0.02 -0.69 C-0.2 11.39, -0.1 60.16, 0.01 72.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2230.414648126738 4743.505762702114) rotate(0 0 35.61288351654866)"><path d="M-10.39 44.21 C-6.19 55.64, -3.16 66.66, 0.01 72.36 M-10.39 44.21 C-7.41 53.43, -3.94 60.04, 0.01 72.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2230.414648126738 4743.505762702114) rotate(0 0 35.61288351654866)"><path d="M10.14 44.12 C6.69 55.75, 2.09 66.8, 0.01 72.36 M10.14 44.12 C6.98 53.57, 4.34 60.21, 0.01 72.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(999.2322366667775 1763.2214878934026) rotate(0 286.2963742335171 208.04823333869763)"><path d="M358.75 52.25 C409.15 92.05, 469.8 135.17, 500.84 156.75 C575.49 208.73, 570.94 208.23, 500.84 261.25 C470.05 282.43, 437.16 308.26, 358.75 363.85 C290.55 419.61, 290.14 415.41, 215.25 363.85 C161.69 325.74, 112.05 290.37, 71.75 261.25 C-0.27 208.57, 1.86 209.63, 71.75 156.75 C127.66 119.92, 180.49 80.89, 215.25 52.25 C284.71 -0.66, 289.56 -2.59, 358.75 52.25" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M358.75 52.25 C402.6 84.43, 448.03 116.07, 500.84 156.75 M358.75 52.25 C410.64 93.07, 462.99 131.97, 500.84 156.75 M500.84 156.75 C573.49 209.39, 571.25 209.37, 500.84 261.25 M500.84 156.75 C574.29 207.78, 571.4 210.73, 500.84 261.25 M500.84 261.25 C472.14 282.86, 442.1 304.99, 358.75 363.85 M500.84 261.25 C459.56 289.63, 420.04 318.08, 358.75 363.85 M358.75 363.85 C286.8 416.35, 287.07 416.4, 215.25 363.85 M358.75 363.85 C286.65 416.84, 288.62 417.62, 215.25 363.85 M215.25 363.85 C161.17 323.2, 102.2 283.74, 71.75 261.25 M215.25 363.85 C181.06 339.87, 147.05 315.3, 71.75 261.25 M71.75 261.25 C1.29 210.07, 0.97 207.62, 71.75 156.75 M71.75 261.25 C-2.26 208.66, 2.07 210.74, 71.75 156.75 M71.75 156.75 C114.43 124.4, 157.82 94.4, 215.25 52.25 M71.75 156.75 C118.43 123.52, 165.69 89.64, 215.25 52.25 M215.25 52.25 C285.59 0.05, 288.85 -0.97, 358.75 52.25 M215.25 52.25 C287.8 2.11, 287.65 1.5, 358.75 52.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1162.3970940105867 1923.9060828444585) rotate(0 122.98332977294922 47.339521718292815)"><text x="122.98332977294922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Generate </text><text x="122.98332977294922" y="47.33952171829279" font-family="Virgil, Segoe UI Emoji" font-size="37.871617374634226px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">circuit inputs</text></g><g stroke-linecap="round"><g transform="translate(1297.6014768254104 544.4055083837085) rotate(0 1.9698500380515043 25.608050494671943)"><path d="M-1.07 0.66 C-0.72 9.04, 2.23 42.39, 3.16 50.87 M0.57 -0.03 C1.21 8.47, 4.89 43.38, 5.47 52.23" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1297.6014768254104 544.4055083837085) rotate(0 1.9698500380515043 25.608050494671943)"><path d="M-5.4 28.95 C0.06 36.84, 2.62 48.18, 5.47 52.23 M-5.4 28.95 C-1.06 35.5, 1.25 43.94, 5.47 52.23" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1297.6014768254104 544.4055083837085) rotate(0 1.9698500380515043 25.608050494671943)"><path d="M12.1 27.41 C10.74 35.74, 6.47 47.69, 5.47 52.23 M12.1 27.41 C10.74 34.59, 7.33 43.53, 5.47 52.23" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1281.842676520997 1115.6620194186974) rotate(0 0 33.4874506468787)"><path d="M0.03 0.78 C0.03 11.85, -0.94 55.02, -0.99 65.86 M-1.41 0.14 C-0.96 11.37, 1.16 55.74, 1.2 66.81" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1281.842676520997 1115.6620194186974) rotate(0 0 33.4874506468787)"><path d="M-9.87 38.93 C-6.29 43.39, -7.01 50.75, 1.2 66.81 M-9.87 38.93 C-8.16 45.52, -5.08 50.29, 1.2 66.81" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1281.842676520997 1115.6620194186974) rotate(0 0 33.4874506468787)"><path d="M10.64 38.33 C9.72 42.94, 4.49 50.42, 1.2 66.81 M10.64 38.33 C8.18 45.19, 7.08 50.09, 1.2 66.81" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1297.6014768254104 1647.5215296926526) rotate(0 0 41.36685079908551)"><path d="M-0.56 -0.71 C-0.76 13.29, -0.37 69.35, -0.16 83.23 M1.35 1.54 C0.88 15.24, -1.01 67.66, -1.19 81.37" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1297.6014768254104 1647.5215296926526) rotate(0 0 41.36685079908551)"><path d="M-10.71 52.92 C-8.39 63.71, -2.7 76.13, -1.19 81.37 M-10.71 52.92 C-8.2 60.66, -5.57 68.19, -1.19 81.37" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1297.6014768254104 1647.5215296926526) rotate(0 0 41.36685079908551)"><path d="M9.8 53.45 C4.2 63.94, 1.95 76.15, -1.19 81.37 M9.8 53.45 C6.48 61.16, 3.27 68.54, -1.19 81.37" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask></svg>