diff --git a/demo/cli_demo.md b/demo/cli_demo.md index 6793ccb..b41b760 100644 --- a/demo/cli_demo.md +++ b/demo/cli_demo.md @@ -1,33 +1,72 @@ -### /api/generateProof +# Create DB -Send a POST request to the `/api/generateProof` endpoint with a JSON body containing the cicuit input of the desired circuit: +Instal postgresql -ProcessMessages: -``` -curl \ - -X POST \ - -H "Content-Type: application/json" \ - -d @demo/request_generateProof_ProcessMessages.json \ - http://localhost:8080/api/generateProof +```bash +createdb coordinatorservice +psql coordinatorservice +CREATE ROLE coordinator WITH LOGIN PASSWORD 'maci-coordinator'; +GRANT ALL PRIVILEGES ON DATABASE coordinatorservice TO coordinator; ``` -TallyVotes: -``` -curl \ - -X POST \ - -H "Content-Type: application/json" \ - -d @demo/request_generateProof_TallyVotes.json \ - http://localhost:8080/api/generateProof -``` +Schema: -### /api/getResult +```sql +CREATE TABLE circuits ( + name TEXT PRIMARY KEY, + description TEXT, + zKey_path TEXT, + wasm_path TEXT +); -``` -curl http://localhost:8080/api/getResult +CREATE TABLE Proofs ( + id INTEGER, + circuit_name TEXT REFERENCES circuits(name), + proof JSONB, + status TEXT, + public_inputs JSONB, + PRIMARY KEY(circuit_name, id) +); ``` -## Generate Proof using snarkjs +Copy and paste it in psql. +# Generate TLS certs + +```bash +openssl req -x509 -newkey rsa:4096 -keyout demo/server.key -out demo/server.crt -days 365 -nodes ``` -snarkjs groth16 prove instruments/TallyVotes_6-2-3_test.0.zkey data/TallyVotes/6-2-3/witness_wasm.wtns outputs/proof_TallyVotes_6-2-3.json outputs/public_TallyVotes_6-2-3.json -``` + +# Run the service (without Docker) + +`export JWT_SECRET=maci DB_NAME=coordinatorservice SQL_USER="coordinator" SQL_PASSWORD="maci-coordinator" && go run main.go` + +Make sure to copy the JWT token printed on screen (only for dev purposes) + +# register new circuit config + +`curl https://localhost:8080/api/registerNewCircuit -d @demo/registerCircuitRequest.json -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYWRtaW4iLCJ1c2VyX2lkIjoiYWRtaW4ifQ.a1XALB112S0zbkl3tE4e_QxO3PA3vutMO4bYc-mO06E" -k` + +# get all circuits + +`curl https://localhost:8080/api/registeredCircuits -k` + +# request a proof + +`curl https://localhost:8080/api/generateProof -H "Content-Type: application/json" -d @demo/requestProof.json -k` + +# request multiple proofs + +`curl https://localhost:8080/api/generateMultipleProofs -H "Content-Type: application/json" -d @demo/requestProofs.json -k` + +# get one result + +`curl 'https://localhost:8080/api/getResult?circuitName=multiplier&proofIds=0' -k` + +# get multiple results + +`curl https://localhost:8080/api/getResult -d @demo/getMultipleProofs.json -H "Content-Type: application/json" -k` + +# get all available proofs + +`curl https://localhost:8080/api/proofs/available -k` \ No newline at end of file diff --git a/demo/api_demo.html b/demo/deprecated_api_demo.html similarity index 100% rename from demo/api_demo.html rename to demo/deprecated_api_demo.html diff --git a/demo/getMultipleProofs.json b/demo/getMultipleProofs.json new file mode 100644 index 0000000..4493be2 --- /dev/null +++ b/demo/getMultipleProofs.json @@ -0,0 +1,13 @@ +{ + "circuits": + [ + { + "circuitName": "processMessages_6-8-2-3", + "proofIds": [ 0, 1 ] + }, + { + "circuitName": "tallyVotes_6-2-3", + "proofIds": [ 0, 1 ] + } + ] +} \ No newline at end of file diff --git a/demo/registerCircuitRequest.json b/demo/registerCircuitRequest.json new file mode 100644 index 0000000..ac5283d --- /dev/null +++ b/demo/registerCircuitRequest.json @@ -0,0 +1,5 @@ +{ + "circuitName": "tallyVotes_6-2-3", + "zKeyURL": "https://maci-staging-ceremony-pse-p0tion-staging.s3.eu-central-1.amazonaws.com/circuits/tallyvotes_6-2-3/contributions/tallyvotes_6-2-3_final.zkey", + "wasmURL": "https://maci-staging-ceremony-pse-p0tion-staging.s3.eu-central-1.amazonaws.com/circuits/tallyvotes_6-2-3/tallyvotes_6-2-3.wasm" +} \ No newline at end of file diff --git a/demo/requestProof.json b/demo/requestProof.json new file mode 100644 index 0000000..8fff544 --- /dev/null +++ b/demo/requestProof.json @@ -0,0 +1,7 @@ +{ + "circuitName": "multiplier2", + "circuitInput": { + "in1": "4", + "in2": "10" + } +} \ No newline at end of file diff --git a/demo/requestProofs.json b/demo/requestProofs.json new file mode 100644 index 0000000..d3bf17d --- /dev/null +++ b/demo/requestProofs.json @@ -0,0 +1,6757 @@ +{ + "proofs": [ + { + "circuitName": "processMessages_6-8-2-3", + "circuitInput": { + "coordPrivKey": "5295371881315902733793801394347811240903350725875505120020720335668584678596", + "coordPubKey": [ + "8102998172990000144730056031609155952430263751476094232651361319591262495898", + "21717336599636647803620741628883747878789981754557452936369745203176114779337" + ], + "currentBallotRoot": "19445814455012978799483892811950396383084183210860279923207176682490489907069", + "currentBallots": [ + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ] + ], + "currentBallotsPathElements": [ + [ + [ + "12354256633218467659616087364118538314455714118951063709319106925108793526017", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + [ + [ + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331", + "11002085070532745790866641011808251748658264477878624386768519129496684341331" + ], + [ + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108", + "12285655934450831378348201838267562537321978688152098450164776013774425070108" + ], + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ] + ], + "currentSbCommitment": "10612206996698359867967817191491610749228524764821259928233303715465088698649", + "currentSbSalt": "0", + "currentStateLeaves": [ + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "19639060828295389490792126910917254637880390573554279347878995186657278348527", + "7893507103578233499780049318585495917368807883269143422174489819144212609854", + "99", + "1686715634" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ], + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317", + "0", + "0" + ] + ], + "currentStateLeavesPathElements": [ + [ + [ + "7635111412834142742182440194825710269152802011005006256278750317343792681807", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ], + [ + [ + "9940951987125412674771994212218224130992952477498030022890484983312899203669", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762", + "6769006970205099520508948723718471724660867171122235270773600567925038008762" + ], + [ + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040", + "1817443256073160983037956906834195537015546107754139333779374752610409243040" + ], + [ + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139", + "5025334324706345710800763986625066818722194863275454698142520938431664775139" + ], + [ + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036", + "14192954438167108345302805021925904074255585459982294518284934685870159779036" + ], + [ + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696", + "20187882570958996766847085412101405873580281668670041750401431925441526137696" + ], + [ + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053", + "19003337309269317766726592380821628773167513668895143249995308839385810331053" + ] + ] + ], + "currentStateRoot": "20511925951335350742285074320379658136764075429437883559665893413289321007040", + "currentVoteWeights": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "currentVoteWeightsPathElements": [ + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ], + [ + [ + "0", + "0", + "0", + "0" + ], + [ + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156", + "14655542659562014735865511769057053982292279840403315552050801315682099828156" + ], + [ + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905", + "19261153649140605024552417994922546473530072875902678653210025980873274131905" + ] + ] + ], + "encPubKeys": [ + [ + "10457101036533406547632367118273992217979173478358440826365724437999023779287", + "19824078218392094440610104313265183977899662750282163392862422243483260492317" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ], + [ + "11754953161064831679776866692536020907683471024876938513660584235274865513197", + "15563947738871161761778413076138200825552621489416172159634680433856100168967" + ] + ], + "inputHash": "19784395132575436003843460985139659117122033640804477261392915489941582644088", + "msgRoot": "20062428959971980410074466372927705036859434356562601323483636589190559806996", + "msgSubrootPathElements": [ + [ + "15825388848727206932541662858173052318786639683743459477657913288690190505308", + "15825388848727206932541662858173052318786639683743459477657913288690190505308", + "15825388848727206932541662858173052318786639683743459477657913288690190505308", + "15825388848727206932541662858173052318786639683743459477657913288690190505308" + ], + [ + "20672917177817295069558894035958266756825295443848082659014905185716743537191", + "20672917177817295069558894035958266756825295443848082659014905185716743537191", + "20672917177817295069558894035958266756825295443848082659014905185716743537191", + "20672917177817295069558894035958266756825295443848082659014905185716743537191" + ], + [ + "448586013948167251740855715259393055429962470693972912240018559200278204556", + "448586013948167251740855715259393055429962470693972912240018559200278204556", + "448586013948167251740855715259393055429962470693972912240018559200278204556", + "448586013948167251740855715259393055429962470693972912240018559200278204556" + ], + [ + "3228865992178886480410396198366133115832717015233640381802715479176981303177", + "3228865992178886480410396198366133115832717015233640381802715479176981303177", + "3228865992178886480410396198366133115832717015233640381802715479176981303177", + "3228865992178886480410396198366133115832717015233640381802715479176981303177" + ], + [ + "19116532419590876304532847271428641103751206695152259493043279205958851263600", + "19116532419590876304532847271428641103751206695152259493043279205958851263600", + "19116532419590876304532847271428641103751206695152259493043279205958851263600", + "19116532419590876304532847271428641103751206695152259493043279205958851263600" + ], + [ + "13531983203936271379763604150672239370281863210813769735936250692178889682484", + "13531983203936271379763604150672239370281863210813769735936250692178889682484", + "13531983203936271379763604150672239370281863210813769735936250692178889682484", + "13531983203936271379763604150672239370281863210813769735936250692178889682484" + ] + ], + "msgs": [ + [ + "1", + "8370432830353022751713833565135785980866757267633941821328460903436894336785", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ], + [ + "1", + "5825362165297582080968313838545568111127908724728532482845619381825766776309", + "460261357731067670509246316219544232677016951196617958259310045888315844999", + "2284656955496386875040667094718997564055771945114060232157535133491518651803", + "14108922475854157799922014418782724787938851680635760829292160851378536724594", + "13966091597566949425211087423819817544439649755802678678907246171841403765321", + "21340523109445300142910490571318081249693128776945795125224268023334491257972", + "8337859984319772052214016887998393739622975538962039345362822499278608043874", + "1977527584084877499839422817222755556464652939738435510530916537287293780973", + "12095463401280451641513594824114826548197276433652086535547165305481869874447", + "9113520475967616578737558860286398190460929025845658924052043241860271895642" + ] + ], + "newSbCommitment": "5598641399790095864170577807542253341047941184734219983589943121120391261011", + "newSbSalt": "10043081722335259560900936738210793275187135282450108812629108224599274534181", + "packedVals": "2854495385411919762116571938900116172672335997", + "pollEndTimestamp": "1686715720" + } + }, + { + "circuitName": "tallyVotes_6-2-3", + "circuitInput": { + "ballotPathElements": [ + [ + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968", + "14258010329412191082959186916216344036377507514208578648156404931831730766968" + ], + [ + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866", + "9312447154597910279956135186382846156894651354073058221155069521367436181866" + ], + [ + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690", + "17474415238835140054910104878924662250603894392518289678105404448278545780690" + ], + [ + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865", + "11185999195621660112282454204228668965851632244405794036695592579356584691865" + ] + ], + "ballotRoot": "1098874790905241366752543654833778042007595313051054549751983627892984227465", + "ballots": [ + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "1", + "10888254020477026663894422492177508490133072671320553567253499862308819453549" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ], + [ + "0", + "21526503558325068664033192388586640128492121680588893182274749683522508994597" + ] + ], + "currentPerVOSpentVoiceCredits": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "currentPerVOSpentVoiceCreditsRootSalt": "0", + "currentResults": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "currentResultsRootSalt": "0", + "currentSpentVoiceCreditSubtotal": "0", + "currentSpentVoiceCreditSubtotalSalt": "0", + "currentTallyCommitment": "0", + "inputHash": "19021466400915743718750404746242518629629512638750548736815379567864014693184", + "newPerVOSpentVoiceCreditsRootSalt": "3337832851285938559628309217008949217299449784838538685450192201443730001518", + "newResultsRootSalt": "2752099651523664702798283620926485310760802786770174593685220328579807723276", + "newSpentVoiceCreditSubtotalSalt": "4030058873660349800638561595024004058429139941781941329357059319433484484779", + "newTallyCommitment": "12398971821164389448259342331385009602551263922815478705438931403302419802577", + "packedVals": "1125899906842624", + "sbCommitment": "14230468586568153708154716328398013337548168583209314978175891231559134240078", + "sbSalt": "6331016429904097820550452512944219135106484588690714560612879983698107294717", + "stateRoot": "2699397045870541957794236841754003084621177124600051146130182681039545850631", + "votes": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "9", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/demo/request_generateProof_ProcessMessages.json b/demo/request_generateProof_ProcessMessages.json deleted file mode 100644 index f2e6b2c..0000000 --- a/demo/request_generateProof_ProcessMessages.json +++ /dev/null @@ -1,874 +0,0 @@ -{ - "circuitInput": { - "coordPrivKey": "5295371881315902733793801394347811240903350725875505120020720335668584678596", - "coordPubKey": [ - "8102998172990000144730056031609155952430263751476094232651361319591262495898", - "21717336599636647803620741628883747878789981754557452936369745203176114779337" - ], - "currentBallotRoot": "9105453741665960449792281626882014222103501499246287334255160659262747058842", - "currentBallots": [ - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ] - ], - "currentBallotsPathElements": [ - [ - [ - "17191968854781714916871146866590294822058436736639617177364306336272341318349", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074" - ], - [ - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440" - ], - [ - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646" - ], - [ - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796" - ], - [ - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501" - ], - [ - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652" - ], - [ - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163" - ], - [ - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873" - ], - [ - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601" - ], - [ - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764" - ] - ], - [ - [ - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074" - ], - [ - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440" - ], - [ - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646" - ], - [ - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796" - ], - [ - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501" - ], - [ - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652" - ], - [ - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163" - ], - [ - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873" - ], - [ - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601" - ], - [ - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764" - ] - ], - [ - [ - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074" - ], - [ - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440" - ], - [ - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646" - ], - [ - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796" - ], - [ - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501" - ], - [ - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652" - ], - [ - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163" - ], - [ - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873" - ], - [ - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601" - ], - [ - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764" - ] - ], - [ - [ - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074" - ], - [ - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440" - ], - [ - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646" - ], - [ - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796" - ], - [ - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501" - ], - [ - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652" - ], - [ - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163" - ], - [ - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873" - ], - [ - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601" - ], - [ - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764" - ] - ], - [ - [ - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074", - "15270550985802884363044603976830646624092011360671265768952276492059475481074" - ], - [ - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440" - ], - [ - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646" - ], - [ - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796" - ], - [ - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501" - ], - [ - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652" - ], - [ - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163" - ], - [ - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873" - ], - [ - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601" - ], - [ - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764" - ] - ] - ], - "currentSbCommitment": "15900071412589167866900566890713009049911150289071880959942159837665548134982", - "currentSbSalt": "0", - "currentStateLeaves": [ - [ - "10457101036533406547632367118273992217979173478358440826365724437999023779287", - "19824078218392094440610104313265183977899662750282163392862422243483260492317", - "0", - "0" - ], - [ - "19639060828295389490792126910917254637880390573554279347878995186657278348527", - "7893507103578233499780049318585495917368807883269143422174489819144212609854", - "99", - "1687811801" - ], - [ - "10457101036533406547632367118273992217979173478358440826365724437999023779287", - "19824078218392094440610104313265183977899662750282163392862422243483260492317", - "0", - "0" - ], - [ - "10457101036533406547632367118273992217979173478358440826365724437999023779287", - "19824078218392094440610104313265183977899662750282163392862422243483260492317", - "0", - "0" - ], - [ - "10457101036533406547632367118273992217979173478358440826365724437999023779287", - "19824078218392094440610104313265183977899662750282163392862422243483260492317", - "0", - "0" - ] - ], - "currentStateLeavesPathElements": [ - [ - [ - "3042748032817979331165429544204739829140121729357405619409320673931126464716", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762" - ], - [ - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040" - ], - [ - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139" - ], - [ - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036" - ], - [ - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696" - ], - [ - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053" - ], - [ - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451" - ], - [ - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814" - ], - [ - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500" - ], - [ - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597" - ] - ], - [ - [ - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762" - ], - [ - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040" - ], - [ - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139" - ], - [ - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036" - ], - [ - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696" - ], - [ - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053" - ], - [ - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451" - ], - [ - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814" - ], - [ - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500" - ], - [ - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597" - ] - ], - [ - [ - "16948430639767980287157510583945296637675710365863605704487523866850071976152", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762" - ], - [ - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040" - ], - [ - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139" - ], - [ - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036" - ], - [ - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696" - ], - [ - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053" - ], - [ - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451" - ], - [ - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814" - ], - [ - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500" - ], - [ - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597" - ] - ], - [ - [ - "16948430639767980287157510583945296637675710365863605704487523866850071976152", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762" - ], - [ - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040" - ], - [ - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139" - ], - [ - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036" - ], - [ - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696" - ], - [ - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053" - ], - [ - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451" - ], - [ - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814" - ], - [ - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500" - ], - [ - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597" - ] - ], - [ - [ - "16948430639767980287157510583945296637675710365863605704487523866850071976152", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762", - "6769006970205099520508948723718471724660867171122235270773600567925038008762" - ], - [ - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040", - "1817443256073160983037956906834195537015546107754139333779374752610409243040" - ], - [ - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139", - "5025334324706345710800763986625066818722194863275454698142520938431664775139" - ], - [ - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036", - "14192954438167108345302805021925904074255585459982294518284934685870159779036" - ], - [ - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696", - "20187882570958996766847085412101405873580281668670041750401431925441526137696" - ], - [ - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053", - "19003337309269317766726592380821628773167513668895143249995308839385810331053" - ], - [ - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451", - "8492845964288036916491732908697290386617362835683911619537012952509890847451" - ], - [ - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814", - "21317322053785868903775560086424946986124609731059541056518805391492871868814" - ], - [ - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500", - "4256218134522031233385262696416028085306220785615095518146227774336224649500" - ], - [ - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597", - "20901832483812704342876390942522900825096860186886589193649848721504734341597" - ] - ] - ], - "currentStateRoot": "14654163277217693115766266607259817824136531022712577062299544023388392396381", - "currentVoteWeights": [ - "0", - "0", - "0", - "0", - "0" - ], - "currentVoteWeightsPathElements": [ - [ - [ - "0", - "0", - "0", - "0" - ], - [ - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156" - ] - ], - [ - [ - "0", - "0", - "0", - "0" - ], - [ - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156" - ] - ], - [ - [ - "0", - "0", - "0", - "0" - ], - [ - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156" - ] - ], - [ - [ - "0", - "0", - "0", - "0" - ], - [ - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156" - ] - ], - [ - [ - "0", - "0", - "0", - "0" - ], - [ - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156", - "14655542659562014735865511769057053982292279840403315552050801315682099828156" - ] - ] - ], - "encPubKeys": [ - [ - "10457101036533406547632367118273992217979173478358440826365724437999023779287", - "19824078218392094440610104313265183977899662750282163392862422243483260492317" - ], - [ - "2523900315312126484586252790819739515829675575739678900368374358138886829031", - "3608114917882884682751131034855119951168501472214630727328102103756464895261" - ], - [ - "2523900315312126484586252790819739515829675575739678900368374358138886829031", - "3608114917882884682751131034855119951168501472214630727328102103756464895261" - ], - [ - "2523900315312126484586252790819739515829675575739678900368374358138886829031", - "3608114917882884682751131034855119951168501472214630727328102103756464895261" - ], - [ - "2523900315312126484586252790819739515829675575739678900368374358138886829031", - "3608114917882884682751131034855119951168501472214630727328102103756464895261" - ] - ], - "inputHash": "7726767809186633825973044203055577603845943519869706767903572682276197787560", - "msgRoot": "1807908715334795119682375570160754360289673215331768484341552088600284162384", - "msgSubrootPathElements": [ - [ - "12915444503621073454579416579430905206970714557680052030066757042249102605307", - "12915444503621073454579416579430905206970714557680052030066757042249102605307", - "12915444503621073454579416579430905206970714557680052030066757042249102605307", - "12915444503621073454579416579430905206970714557680052030066757042249102605307" - ] - ], - "msgs": [ - [ - "1", - "8370432830353022751713833565135785980866757267633941821328460903436894336785", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - [ - "1", - "7775871028229482293639458767201699048092389231841748277557651629226291620180", - "8069177116761691689379135934751240274009517534184172858082549400291230703378", - "8184249170376383294078425343172444892627022165157290176038685715542450403988", - "16749860501773899266035066980070875932742902543867476666430820595766715396010", - "16681267626529000732578083857952387563745577818998466984220982317402528558889", - "13666023973722734357074204030650612695339776236419567136346384936955727124225", - "20248723216256014834237395414516923154601312685961090702548544307434101985949", - "9670378410964329783353948385247710402819574992036855796901386694536341165865", - "18592643836734714254911636703379977307452299995635857242097251805300344551402", - "19675425674138410008934275337804741002413963389708282553090356152230543728880" - ], - [ - "1", - "7775871028229482293639458767201699048092389231841748277557651629226291620180", - "8069177116761691689379135934751240274009517534184172858082549400291230703378", - "8184249170376383294078425343172444892627022165157290176038685715542450403988", - "16749860501773899266035066980070875932742902543867476666430820595766715396010", - "16681267626529000732578083857952387563745577818998466984220982317402528558889", - "13666023973722734357074204030650612695339776236419567136346384936955727124225", - "20248723216256014834237395414516923154601312685961090702548544307434101985949", - "9670378410964329783353948385247710402819574992036855796901386694536341165865", - "18592643836734714254911636703379977307452299995635857242097251805300344551402", - "19675425674138410008934275337804741002413963389708282553090356152230543728880" - ], - [ - "1", - "7775871028229482293639458767201699048092389231841748277557651629226291620180", - "8069177116761691689379135934751240274009517534184172858082549400291230703378", - "8184249170376383294078425343172444892627022165157290176038685715542450403988", - "16749860501773899266035066980070875932742902543867476666430820595766715396010", - "16681267626529000732578083857952387563745577818998466984220982317402528558889", - "13666023973722734357074204030650612695339776236419567136346384936955727124225", - "20248723216256014834237395414516923154601312685961090702548544307434101985949", - "9670378410964329783353948385247710402819574992036855796901386694536341165865", - "18592643836734714254911636703379977307452299995635857242097251805300344551402", - "19675425674138410008934275337804741002413963389708282553090356152230543728880" - ], - [ - "1", - "7775871028229482293639458767201699048092389231841748277557651629226291620180", - "8069177116761691689379135934751240274009517534184172858082549400291230703378", - "8184249170376383294078425343172444892627022165157290176038685715542450403988", - "16749860501773899266035066980070875932742902543867476666430820595766715396010", - "16681267626529000732578083857952387563745577818998466984220982317402528558889", - "13666023973722734357074204030650612695339776236419567136346384936955727124225", - "20248723216256014834237395414516923154601312685961090702548544307434101985949", - "9670378410964329783353948385247710402819574992036855796901386694536341165865", - "18592643836734714254911636703379977307452299995635857242097251805300344551402", - "19675425674138410008934275337804741002413963389708282553090356152230543728880" - ] - ], - "newSbCommitment": "13886966251619629624188528992712138715964807215312527744552079394301062889154", - "newSbSalt": "2897808336699105786377327827928856403504918073759697163098319932010032932361", - "packedVals": "2854495385411919762116571938900116172672335897", - "pollEndTimestamp": "1687811889" - }, - "circuitName": "ProcessMessages" -} diff --git a/demo/request_generateProof_TallyVotes.json b/demo/request_generateProof_TallyVotes.json deleted file mode 100644 index bede474..0000000 --- a/demo/request_generateProof_TallyVotes.json +++ /dev/null @@ -1,289 +0,0 @@ -{ - "circuitInput": { - "ballotPathElements": [ - [ - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440", - "12041659224647436013473767500489753343785740033037924110958797456446050033440" - ], - [ - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646", - "16334572099445814755399763597707660176205626043171377690797296695513301667646" - ], - [ - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796", - "16860909303983861319743874485244423423525067824479760582419993392716259939796" - ], - [ - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501", - "2247942235568610258990454563169189190361617594905047602234015741510118002501" - ], - [ - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652", - "20239231141972210173835090302392873068035637673491050730272989294625677423652" - ], - [ - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163", - "344732312350052944041104345325295111408747975338908491763817872057138864163" - ], - [ - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873", - "12631797014605841658454845021986240477173811264748333940915817181845171875873" - ], - [ - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601", - "6363818543409459297181400199558272216622730650426167696249664458633657968601" - ], - [ - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764", - "10261261801296436956888927991155151996379388385567675556960209472686280054764" - ] - ], - "ballotRoot": "441413126409514555955725531489171398983441558816175226640132860488719935906", - "ballots": [ - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "1", - "21537449872599948843438062503338235089441146888201228352467796408604548476098" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ], - [ - "0", - "19261153649140605024552417994922546473530072875902678653210025980873274131905" - ] - ], - "currentPerVOSpentVoiceCredits": [ - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - "currentPerVOSpentVoiceCreditsRootSalt": "0", - "currentResults": [ - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - "currentResultsRootSalt": "0", - "currentSpentVoiceCreditSubtotal": "0", - "currentSpentVoiceCreditSubtotalSalt": "0", - "currentTallyCommitment": "0", - "inputHash": "9593472148997570032531513003699003887594044058172218982458421536406324881732", - "newPerVOSpentVoiceCreditsRootSalt": "20918371743336276964127965068744231875232894583470534660552922750831149839748", - "newResultsRootSalt": "1329541853822210834987554671641849053032223110608981278858846992498067494245", - "newSpentVoiceCreditSubtotalSalt": "4184709181679636679136325991443122136000087668240635763815445006571729994135", - "newTallyCommitment": "3849633033706634364328605612878110275422021684732490503725332200833474462073", - "packedVals": "1125899906842624", - "sbCommitment": "13886966251619629624188528992712138715964807215312527744552079394301062889154", - "sbSalt": "2897808336699105786377327827928856403504918073759697163098319932010032932361", - "stateRoot": "8725972281610608816295077093930709351712948487830172663064559914548584256445", - "votes": [ - [ - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - [ - "9", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - [ - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - [ - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ], - [ - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0", - "0" - ] - ] - }, - "circuitName": "ProcessMessages" -} diff --git a/demo/server.crt b/demo/server.crt new file mode 100644 index 0000000..5f7c440 --- /dev/null +++ b/demo/server.crt @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFijCCA3ICCQC6ruvtDglzPTANBgkqhkiG9w0BAQsFADCBhjELMAkGA1UEBhMC +VUsxDTALBgNVBAgMBE5vbmUxDTALBgNVBAcMBE5vbmUxDTALBgNVBAoMBE5vbmUx +DTALBgNVBAsMBE5vbmUxHDAaBgNVBAMME2Nvb3JkaW5hdG9yLXNlcnZpY2UxHTAb +BgkqhkiG9w0BCQEWDm5vbmVAZW1haWwuY29tMB4XDTIzMDgwNjE4MTc0M1oXDTI0 +MDgwNTE4MTc0M1owgYYxCzAJBgNVBAYTAlVLMQ0wCwYDVQQIDAROb25lMQ0wCwYD +VQQHDAROb25lMQ0wCwYDVQQKDAROb25lMQ0wCwYDVQQLDAROb25lMRwwGgYDVQQD +DBNjb29yZGluYXRvci1zZXJ2aWNlMR0wGwYJKoZIhvcNAQkBFg5ub25lQGVtYWls +LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANR/kIQ/cP3QAKqf +5XlHgF4CXp9L4jT3gIHxgORyFyeKr7+/URvqEPP9v1pdUAJxGYUXRdD6lJiuWlOX +orvGjE5WZ/gWkks5Rfm53QuWxv1xjO1iZxgIDZHoore7VkCfHWeq2vAfb6iDl3tq +E91IgNTRdJdj+m7LSop8r3ySxqvDbakKFE8YsiWjTh6pCoqD4CmFsKmV4EiQessZ +9pia/3WNTXNm4fwFwqXHfg7dVB3jfr+GWG6X6gJHd+L5WNbDAru6dyaoFD/k3TJJ +uS0dwRHLP1rEZ+4m1hPlvuv4yC2tDgW3MsFHByr4zrvM2/Wx3NrTH10o3RmU7ttY +GT5oQR3vvqTqUR2or9h+g6I5uAC38SjdMz7jqC7rTWe5dgGfhWAvENjJVML1uQNK +e6MMh/V4uc58/Un9ck1bYEg/5cvo5rJTMBcjD45X4sVEyzxLMXTB0tLU0BwrL9zg +oxDPPrMi3cq8fWh5yyQY+PATlntxns7WEJdT8GWa8++nPn8CmBIEiAS+y2Qxuh9T +6Qjyi9Tv3xq71HoCKKObFAs8/kpLYqFsMHQOHwfgit1kB7R8ea8LsBJafDYmVahN +qFWQ5OAPcPQ9gIl0UdBd1rKZmT3QNme3tvOOFi41AodecVzVDyzD7YkzW6ThvPLe +loRLgRgwWerKjgXiiZGb6svGWK03AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAGeV +0A86MgRInFETVwr0o661FreDU/voFsj9D1cdMgOC/LY2VbbfNTy6V3O0M79x5rTG +iByhM/1DuNtUV3jyP5t4CKcqi7s80f3oPBAiguLEzZrnRa61VUXa2DPFBhowJJK4 +7xhn1TASQGYSEdLTrLFFqEPZiP+oYmxiJ0fYVkA6t3sCkSna/0PYs930jsig1HVE +K+nl8xmcL9LxRoAmRpYfCXyT8v2/nRRLD95/PYjVlJHE6QS1MqE/pG00/jKLg4Fc +C5LwHGMnnZyzGM5v7Qw8cPhkqIqGSnEq+BWkOJ1rPGnWqymt79sRizRCGZs21zyD +EGFN2TirwT53Tntnlm9HSiYeTnrOMScDuVrvtUKEW096jchiEedW3SdfDjgc92oF +A8fEz6CiB+Fm4zdzOgwf6yyynVggrhjmu0tRAhf6ku5JHz/ZjZ4BSGO1VpqCGzpg +dUOqqb5MVExwcu0QU8AV5wApG+hB8sm8904ElrqdQqO5Cdq/U7wkKwRRkmYBQOeh +4J6GRqrPFd2flb5nM46ZD9BTabq76EAcK3hn+DMCeMcqfLv0mXl1dKpU0s/qjTzk +AtxwlktWIWJAIT3jRdN0EC3yQaO12dySnsY8u6D7uZ+Mnk0ytbA4qocJ43ePWhtf +gqUb0favGCha/ayJXX9tAS2djRctm7rOSikHqxS2 +-----END CERTIFICATE----- diff --git a/demo/server.key b/demo/server.key new file mode 100644 index 0000000..a77166b --- /dev/null +++ b/demo/server.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDUf5CEP3D90ACq +n+V5R4BeAl6fS+I094CB8YDkchcniq+/v1Eb6hDz/b9aXVACcRmFF0XQ+pSYrlpT +l6K7xoxOVmf4FpJLOUX5ud0Llsb9cYztYmcYCA2R6KK3u1ZAnx1nqtrwH2+og5d7 +ahPdSIDU0XSXY/puy0qKfK98ksarw22pChRPGLIlo04eqQqKg+AphbCpleBIkHrL +GfaYmv91jU1zZuH8BcKlx34O3VQd436/hlhul+oCR3fi+VjWwwK7uncmqBQ/5N0y +SbktHcERyz9axGfuJtYT5b7r+MgtrQ4FtzLBRwcq+M67zNv1sdza0x9dKN0ZlO7b +WBk+aEEd776k6lEdqK/YfoOiObgAt/Eo3TM+46gu601nuXYBn4VgLxDYyVTC9bkD +SnujDIf1eLnOfP1J/XJNW2BIP+XL6OayUzAXIw+OV+LFRMs8SzF0wdLS1NAcKy/c +4KMQzz6zIt3KvH1oecskGPjwE5Z7cZ7O1hCXU/BlmvPvpz5/ApgSBIgEvstkMbof +U+kI8ovU798au9R6AiijmxQLPP5KS2KhbDB0Dh8H4IrdZAe0fHmvC7ASWnw2JlWo +TahVkOTgD3D0PYCJdFHQXdaymZk90DZnt7bzjhYuNQKHXnFc1Q8sw+2JM1uk4bzy +3paES4EYMFnqyo4F4omRm+rLxlitNwIDAQABAoICAGYqUrwSmGufVsKyD60IoIIS +V5X08PQQTvuqthKfe9xqBGeHPyLRnYcBZ7+1f2M9J0zizJFV+J2Trh/klrv7ELgV +OPWBPKLoDWmsX8dTnaZ6sovrNK/MJ2IQXDND4Ys+NPADqDGsm42Efw86CATq9+3a +KlkjG2OrX9JHckPNebFZS17rVqpUsEoCQuvg0A2aq+qquS4/vc6FkFQXzoS+eLX2 +0tb6DwqRZm04BbZ12RxppSXGHLxHU5326H/67CiNJ8JEO0cdpma1zVeBNIOpe4rn +kjU8ms9YYrK8Ude4C95SBpze4IsmcB7L8vE95D8zXYDj4n9yxyKmhVR1/eUQUMWI +ec0WJ27TCrNXADuWu74aAmHj204lb6GM6ESEsfFcU/JqyYEzW3n+8tIi6W51WUm3 +3hQISci0dfvaJ0+IsIiCu+helaLzvEIL6Rj937sDXiOR2cy/iND+tt6cZacxVrGt +bStsuC4QRecnVvxVKnOnB4Loz/FTXBX6LGAu+HOoPjzT8IsKOeNCgozajVudIka5 +mObxThPv91EO3f3f28y5DtL1AH0z8Z0NOh0E/yCLf9BIBp1pvlyF3CE7TJxKoZgq +3pIA3ZSNkJt+eme1AFPYV1IyaC0FkPBoqaNsFnDe7serrrgDJ6pVLbcKMxTIoa/k +2aS3UCRdQsGEC/EIiMyhAoIBAQDxEge9Ay75Mw2MxN0hBEoc5aIRnun5NO7uxd5A +llpnSQnI/l34TaA4FbYD1/A0r/o/mtLVlZeMGY/kiGEcgBNIf7AwhMzfDc2jeorW +GKjlmeGlJPwEDh8CgkqlVROGwjguSfAhoXgxF7nOumXpGv1AEIQ+iTrBMMi8TaI+ +DFasc/yyMldx3ZX/zO2EGHTjB6sUNT7Vp8GvFS4lwFzodGOdc7TDZVvDPKrCKV2B +y4iGBRhAVGxiOpTQEO/YfSb0idIHyZQ/Z4X9S/7iV8wHFNM9GI0H0hpXuHHHEc9K +c7Vme91XhEFkG9E1h5KtedInPGaBCDWEX59kkdbdVg6XaeBnAoIBAQDhqIwM8I5I +Uwl5YbzbvW6GkSMvVy96vvrj0uXdur4OT1fY2ZU0393IhsRxShB3JWBXZz6dSpYg +VpF557EPfcr+iAScBN5HGcNNoQU7e2CyufVv0NPCA9nq/RGCrXtcmpUAh7maewFJ +BJn61SxyXPAEJVAnmLLSe64CuncDtrbnBVKe6ivs3Q57dM75c7Ikae4cPcnYLPx1 +JAIxNZTJmfmeghxYKy8BbCqLP//jC9urchSOrP0nEHtiiAhaJbeuE5VysLP/f5/n +dWj5Y19wjDmw9xyKKPQ8shH8Qnf+M5w5mOtjjV1XSH3tH8loLATkyVlsGXbvGBnM +0x8ePsVzS4qxAoIBAQDus5i/+q//hyLKmYAQGkw8ctDYu88XuOdBvOGGeJpJnVO4 +Fs77d/nGrxDMm3w432teobJUVMx7qDAH7VajPtpZNj5CvKyTzPoq/sMMndxXhNie +ipGUflsMQ/Ef5q7wB85TX1kMI/N8QO72GTGh8NyFHBWmSoHIG8MYWZLl95e3KR41 +YI2frPbDFKq22vSafNRUrShrrLGm6MUKEoCsl9qvZIu/0tRa7O50VTtGsz+a3N6X +jEDJvxHtOGgVqE7zYqh6l4pYgex11FMs0hyvglpsK6wx60O0Smk24ZatNQeQ0+Nm +rgmF09mDNJvzdCW4PiGNcJB1Y63TimkEPxsxqF/PAoIBAQCDkaUOilc6/gdBGWZm +7Fz74rWUDY5mT+GyYa2aiR308/fxPHONX5VNLJ5uu1M8VLOGYnEUfn9nnXG2lQsc +UCjCHQYq/X+oDvJbWa3WT4pCyr+6kRRWQ66UHzdNbN7HUG3d4ESsOFm4fBFXOWFv +0JY0pJjGbXad2HTNrHBl3utnaSgR9dDkisK94o4mzXkpWAX3u2LrQtdzaSpKDMaS +gM8UxyHFmnAOsUVg6VDFzY0nuh0YTu5PD4IRIeVUwjcFLO/u7e4U4xGVf1RUS8dC +tM+SSZH/T/+PP/fSj+KseOT2hB2CbtLkaCTb07O3pCq6Rld3+qTopLGuRc4X8Vto +bLwRAoIBACQ3YFcB4F3TsjyH2ZmPNGUcoowIGpKpd3w21BdVO2owYlR4e0SROOPL +/X243kEMR2C8/E6y5oCFd0SmTOn/2ksfpytlYYqRg2G59UDqS2wuDHvPKjMPB4LE +BG8zwpnPtU579hstrQfSs8prkoEf9sZa1H6AUdnvJlLbQp4xNu4KG1xPnMBXZVbA +iTlTjD6kgbzWzjKPoFJa3ukF0+r3f7hyVrExrEhXZNv3BxnAPdAmcMct2f5LAgap +4gxZbdiqCvVCyT0lePfPeTSeiM/dkCUo0qpPVp/OHKZ9iSNrnEoKcMKyihs2+lUk +Y5fWB3nFOAKk73PkxRccOZZs+8vRDlo= +-----END PRIVATE KEY----- diff --git a/go.mod b/go.mod index 98a9e3b..547dd80 100644 --- a/go.mod +++ b/go.mod @@ -12,8 +12,11 @@ require ( ) require ( + github.com/gin-contrib/cors v1.4.0 // indirect + github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/iden3/go-rapidsnark/types v0.0.2 // indirect github.com/iden3/wasmer-go v0.0.1 // indirect + github.com/lib/pq v1.10.9 // indirect github.com/stretchr/testify v1.8.4 // indirect ) diff --git a/go.sum b/go.sum index 48f1d36..435e144 100644 --- a/go.sum +++ b/go.sum @@ -4,24 +4,35 @@ github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZX github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= +github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= +github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -39,8 +50,18 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -48,14 +69,19 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -66,29 +92,48 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/main.go b/main.go index 0454a15..11c99d7 100644 --- a/main.go +++ b/main.go @@ -7,32 +7,46 @@ import ( "github.com/privacy-scaling-explorations/maci-coordinator/src" ) +var sqlPassword string = os.Getenv("SQL_PASSWORD") +var sqlUser string = os.Getenv("SQL_USER") +var dbName string = os.Getenv("DB_NAME") + func main() { // These functions demonstrate two separate checks to detect if the code is being // run inside a docker container in debug mode, or production mode! - // + // Note: Valid only for docker containers generated using the Makefile command firstCheck() secondCheck() - prover := src.Prover{ - ProcessMessagesCircuit: src.Circuit{ - Result: src.Result{}, - Status: src.WaitingForRequest, - }, - TallyVotesCircuit: src.Circuit{ - Result: src.Result{}, - Status: src.WaitingForRequest, - }, + // + adminJWT, err := src.CreateJWT("admin", "admin") + if err != nil { + panic("Failed to create admin JWT") } + // @note only for testing purposes + // to be refactored with a middleware for auth or other methods + // of protecting the admin routes + fmt.Println("Admin JWT: " + adminJWT) + + // create prover object + prover := src.Prover{} + // init the db + prover.InitDb(sqlUser, sqlPassword, dbName) + // create a new router r := src.NewRouter(prover) - r.LoadHTMLFiles("demo/api_demo.html") - // listen and serve on localhost:8080 - if err := r.Run(); err != nil { + certFile := "demo/server.crt" + keyFile := "demo/server.key" + + // Listen and serve with TLS + if err := r.RunTLS("localhost:8080", certFile, keyFile); err != nil { panic("Failed to run API server") } + + // make sure to close the DB connection + defer prover.CloseDB() } func firstCheck() bool { diff --git a/src/db.sql b/src/db.sql new file mode 100644 index 0000000..18ac483 --- /dev/null +++ b/src/db.sql @@ -0,0 +1,17 @@ +/* Queries to create the tables required by the coordinator-service */ +CREATE TABLE circuits ( + name TEXT PRIMARY KEY, + description TEXT, + zKey_path TEXT, + wasm_path TEXT +); + +CREATE TABLE proofs ( + id INTEGER, + circuit_name TEXT REFERENCES circuits(name), + proof JSONB, + status TEXT, + public_inputs JSONB, + time_taken TEXT, + PRIMARY KEY(circuit_name, id) +); \ No newline at end of file diff --git a/src/module.go b/src/module.go index 48390cd..7ffada7 100644 --- a/src/module.go +++ b/src/module.go @@ -1,56 +1,229 @@ package src import ( + "database/sql" "fmt" + "io" "net/http" "os" + "strconv" + "strings" + "sync" "time" + native_json "encoding/json" + "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" "github.com/goccy/go-json" "github.com/iden3/go-rapidsnark/prover" "github.com/iden3/go-rapidsnark/witness" + _ "github.com/lib/pq" + "github.com/golang-jwt/jwt/v5" ) -//nolint:govet // PoC skip -type Circuit struct { - Status ProverState `json:"status"` - Result Result `json:"result"` +var JWTSecret []byte = []byte(os.Getenv("JWT_SECRET")) + +/// CreateJWT creates a new JWT token +func CreateJWT(userID string, role string) (string, error) { + token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ + "user_id": userID, + "role": role, + }) + + return token.SignedString(JWTSecret) +} + +type ProofState string + +/// @todo cleanup duplicate types + +/// The full proof response +type ProofResponse struct { + CircuitName string `json:"circuitName"` + ProofID int `json:"proofId"` + Proof string `json:"proof"` + PublicInputs string `json:"publicInputs"` + TimeTaken string `json:"timeTaken"` } +/// The intermediate results sent to a user when requesting a proof +type ProofInfo struct { + CircuitName string + ProofID int +} + +//nolint:govet // PoC skip type Result struct { + Status ProofState `json:"status"` Proof interface{} `json:"proof"` PublicInput interface{} `json:"publicInput"` } -type RequestData struct { +/// The request for generating a proof +type GenerateProofRequest struct { CircuitName string `json:"circuitName"` CircuitInput json.RawMessage `json:"circuitInput"` } -type ResponseData struct { - ProcessMessagesCircuit Circuit `json:"processMessagesCircuit"` - TallyVotesCircuit Circuit `json:"tallyVotesCircuit"` + +/// The request for generating multiple proofs +type GenerateMultipleProofsRequest struct { + Requests []GenerateProofRequest `json:"proofs"` } +// A prover struct holds all circuits registered type Prover struct { - ProcessMessagesCircuit Circuit - TallyVotesCircuit Circuit + db *sql.DB +} + +// The request body to register a new circuit +type RegisterNewCircuitRequest struct { + CircuitName string `json:"circuitName"` + ZKeyURL string `json:"zKeyURL"` + WASMURL string `json:"wasmURL"` } -type ProverState string +// The request body to get a proof for a circuit +type CircuitProofRequest struct { + CircuitName string `json:"circuitName"` + ProofIds []int `json:"proofIds"` +} + +// The request body to get proofs for more circuits +type GetMultipleCircuitsProofsRequest struct { + Circuits []CircuitProofRequest `json:"circuits"` +} +// A circuit type with zkey and wasm paths +type Circuit struct { + ZKeyPath string `json:"zKeyPath"` + WASMPath string `json:"wasmPath"` +} + +// Statuses for the proof generation const ( - WaitingForRequest ProverState = "WaitingForRequest" // No current proof request, waiting for one - GeneratingProof ProverState = "GeneratingProof" // Currently generating a proof - ProofAvailable ProverState = "ProofAvailable" // A proof has been generated and is available for retrieval + WaitingForRequest ProofState = "WaitingForRequest" // No current proof request, waiting for one + GeneratingProof ProofState = "GeneratingProof" // Currently generating a proof + ProofAvailable ProofState = "ProofAvailable" // A proof has been generated and is available for retrieval + ProofGenerationFailed ProofState = "ProofGenerationFailed" // Proof generation failed ) +/// UTILS + +// downloadFile - Util function to download a file from a URL +func downloadFile(URL string, outPath string) error { + // Create the file + out, err := os.Create(outPath) + if err != nil { + return err + } + defer out.Close() + + // Get the data + resp, err := http.Get(URL) + if err != nil { + return err + } + defer resp.Body.Close() + + // Check server response + if resp.StatusCode != http.StatusOK { + return fmt.Errorf("failed to download, status code: %s", resp.Status) + } + + // Writer the body to file + _, err = io.Copy(out, resp.Body) + if err != nil { + return err + } + + return nil +} + +// ParseJWT - Parse the token +func ParseJWT(tokenString string) (jwt.MapClaims, error) { + token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { + // Validate the alg is what we expect + if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { + return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"]) + } + + // Return the secret used to sign the token + return JWTSecret, nil + }) + + if err != nil { + return nil, err + } + + // Return the claims + if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid { + return claims, nil + } else { + return nil, fmt.Errorf("Invalid token") + } +} + +// AuthUser - Authenticates the user +func AuthUser() gin.HandlerFunc { + return func(c *gin.Context) { + // Get the token from the header + authHeader := c.GetHeader("Authorization") + + if !strings.HasPrefix(authHeader, "Bearer ") { + c.AbortWithStatusJSON(401, gin.H{"error": "Invalid token"}) + return + } + + tokenString := strings.TrimPrefix(authHeader, "Bearer ") + + // Parse the token + claims, err := ParseJWT(tokenString) + if err != nil { + c.AbortWithStatusJSON(401, gin.H{"error": "Invalid token"}) + return + } + + // Get the role + role, ok := claims["role"].(string) + if !ok { + c.AbortWithStatusJSON(401, gin.H{"error": "Invalid token"}) + return + } + + // Set the user ID and role in the context + if role != "admin" { + c.AbortWithStatusJSON(403, gin.H{"error": "Invalid role"}) + return + } + } +} + +// NewRouter - Create a new router func NewRouter(p Prover) *gin.Engine { r := gin.Default() + // This configures the middleware to allow all origins: + config := cors.DefaultConfig() + config.AllowAllOrigins = true + + r.Use(cors.New(config)) + + // endpoint to generate a proof r.POST("/api/generateProof", p.GenerateProof) + // endpoint to generate multiple proofs + r.POST("/api/generateMultipleProofs", p.GenerateMultipleProofs) + // endpoint to register a new circuit + r.POST("/api/registerNewCircuit", AuthUser(), p.RegisterNewCircuit) + // endpoint to get all the available proofs + r.GET("/api/proofs/available", p.GetAvailableProofs) + // endpoint to get one or more proofs for one circuit r.GET("/api/getResult", p.GetResult) + // endpoint to get proofs for multiple circuits + r.POST("/api/getResult", p.GetMultipleResults) + // endpoint to get all registered circuits + r.GET("/api/registeredCircuits", p.GetRegisteredCircuits) + // on index serve the demo page r.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "api_demo.html", nil) }) @@ -58,163 +231,725 @@ func NewRouter(p Prover) *gin.Engine { return r } +/// METHODS + +// InitDb - Init the database object +func (p *Prover) InitDb(user string, password string, dbName string) { + connStr := fmt.Sprintf("user=%s password=%s dbname=%s host=localhost sslmode=disable", user, password, dbName) + + db, err := sql.Open("postgres", connStr) + if err != nil { + panic(err.Error()) + } + + + db.SetMaxOpenConns(10) + db.SetMaxIdleConns(5) + + // store db in prover + p.db = db +} + +/// Close the db connection +func (p Prover) CloseDB() { + p.db.Close() +} + +/// RegisterNewCircuit - Register a new circuit +func (p Prover) RegisterNewCircuit(c *gin.Context) { + var request RegisterNewCircuitRequest + if err := c.ShouldBind(&request); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "The request body is not valid"}) + return + } + + // make sure there is no circuit with the same name + exists, err := p.CheckIfCircuitExists(request.CircuitName) + if err != nil { + fmt.Println(err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to query the database"}) + return + } + + // if there's a result it means it exists already + if exists { + c.JSON(http.StatusBadRequest, gin.H{"error": "A circuit with the same name already exists"}) + return + } + + // download artifacts + zKeyPath := "./data/" + request.CircuitName + ".zkey" + wasmPath := "./data/" + request.CircuitName + ".wasm" + + // download in parallel but make sure we wait for all three downloads + var wg sync.WaitGroup + wg.Add(2) + + go func() { + err := downloadFile(request.ZKeyURL, zKeyPath) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to download the zKey file"}) + return + } + wg.Done() + }() + + go func() { + err := downloadFile(request.WASMURL, wasmPath) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to download the WASM file"}) + return + } + wg.Done() + }() + + // wait for all goroutines to finish + wg.Wait() + + res, err := p.db.Query( + "INSERT INTO circuits (name, zkey_path, wasm_path) VALUES ($1, $2, $3)", + request.CircuitName, + zKeyPath, + wasmPath, + ) + + defer res.Close() + + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to save the circuit"}) + return + } + + c.JSON(http.StatusOK, gin.H{"status": "ok"}) +} + +// GetRegisteredCircuits - Get the circuit that are registered on the coordinator service +func (p Prover) GetRegisteredCircuits(c *gin.Context) { + var data []string + + rows, err := p.db.Query("SELECT name FROM circuits;") + + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the circuit names"}) + return + } + + defer rows.Close() + + // store the data in a slice + for rows.Next() { + var name string + err = rows.Scan(&name) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the circuit names"}) + return + } + + data = append(data, name) + } + + // return the data + c.JSON(http.StatusOK, gin.H{"circuits": data}) +} + +// GetNumberOfProofsPerCircuit Get the number of proofs for a certain circuit +func (p Prover) GetNumberOfProofsPerCircuit(circuitName string) (int, error) { + var count int + err := p.db.QueryRow("SELECT COUNT(*) FROM proofs WHERE circuit_name = $1", circuitName).Scan(&count) + if err != nil { + return 0, err + } + return count, nil +} + +// GetCircuitDetails - Get a circuit's details +func (p Prover) GetCircuitDetails(circuitName string) (Circuit, error) { + var circuit Circuit + err := p.db.QueryRow( + "SELECT zkey_path, wasm_path FROM circuits WHERE name = $1", + circuitName).Scan(&circuit.ZKeyPath, &circuit.WASMPath) + + if err != nil { + return circuit, err + } + + return circuit, nil +} + +// UpdateProofStatus - Update the proof status on the db +func (p Prover) UpdateProofStatus(proofState ProofState, circuitName string, id int) error { + _, err := p.db.Exec("UPDATE proofs SET status = $1 WHERE circuit_name = $2 AND id = $3", proofState, circuitName, id) + if err != nil { + return err + } + return nil +} + +// CheckIfCircuitExists - Check if a circuit exists by using its name +func (p Prover) CheckIfCircuitExists(circuitName string) (bool, error) { + rows, err := p.db.Query("SELECT name FROM circuits WHERE name = $1", circuitName) + + if err != nil { + return false, err + } + + defer rows.Close() + + // if there's no result it means it doesn't exist + if !rows.Next() { + return false, nil + } + + return true, nil +} + +// GetProof - Get the proof status and details +func (p Prover) GetProof(circuitName string, id int) (Result, error) { + var result Result + + err := p.db.QueryRow( + "SELECT status, proof, public_inputs FROM proofs WHERE circuit_name = $1 AND id = $2;", + circuitName, id).Scan(&result.Status, &result.Proof, &result.PublicInput) + + if err != nil { + return result, err + } + + return result, nil +} + //nolint:funlen, gocognit, gocyclo, cyclop // PoC skip -func (p *Prover) GenerateProof(c *gin.Context) { - var request RequestData +// GenerateProof - Generate a single proof for a circuit +func (p Prover) GenerateProof(c *gin.Context) { + var request GenerateProofRequest if err := c.ShouldBind(&request); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"error": "The request body is not valid"}) + return + } + + // check if there is a circuit with this name + exists, err := p.CheckIfCircuitExists(request.CircuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to query the database"}) + return + } + + if !exists { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("There is no such circuit %s", request.CircuitName)}) + return + } + + // generate a new uuid + proofID, err := p.GetNumberOfProofsPerCircuit(request.CircuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the number of proofs"}) + return + } + + // calculate wtns name (use name + id to be an unique identifier) + wtnsPath := fmt.Sprintf("./data/%s_%d.wtns", request.CircuitName, proofID) + + // get the paths to zkey and wasm + circuit, err := p.GetCircuitDetails(request.CircuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the circuit details"}) return } - fmt.Println(request.CircuitName) + // init a new empty proof in the DB + // marshal to JSON + tmpJSON, err := native_json.Marshal("{}") + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to marshal the proof"}) + return + } + _, err = p.db.Exec( + "INSERT INTO proofs (id, circuit_name, status, proof, public_inputs) VALUES ($1, $2, $3, $4, $5)", + proofID, + request.CircuitName, + GeneratingProof, + tmpJSON, + tmpJSON, + ) + + if (err != nil) { + fmt.Println(err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to insert the proof in the database"}) + return + } - //nolint: dupl // PoC skip - switch request.CircuitName { - case "ProcessMessages": - go func() { - p.ProcessMessagesCircuit.Status = GeneratingProof + // start generating the proof + go func() { + // if another error then recover and update the proof status + defer func() { + if r := recover(); r != nil { + fmt.Printf("\nRecovered from panic: %s", r) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + } + }() + + // 1. Calculate witness + start := time.Now() + wasmBytes, err := os.ReadFile(circuit.WASMPath) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + inputs, err := witness.ParseInputs(request.CircuitInput) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + calc, err := witness.NewCircom2WitnessCalculator(wasmBytes, true) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + wtns, err := calc.CalculateWTNSBin(inputs, true) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + //nolint:gomnd // PoC skip + err = os.WriteFile(wtnsPath, wtns, 0600) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + // Calculate the elapsed time + elapsed := time.Since(start) + fmt.Printf("Elapsed time for witness calculation %s: %s\n", request.CircuitName, elapsed) + + // 2. Generate Proof + provingKey, err := os.ReadFile(circuit.ZKeyPath) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + } + + witnessOutput, err := os.ReadFile(wtnsPath) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + // Get the current time + start = time.Now() + + proof, publicInput, err := prover.Groth16ProverRaw(provingKey, witnessOutput) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + // Calculate the elapsed time + elapsed = time.Since(start) + + fmt.Printf("Elapsed time for generating proof %s: %s\n", request.CircuitName, elapsed) + + // store the result on the db + // the proof and public input must be encoded as JSON + jsonPublicInput, err := native_json.Marshal(publicInput) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + } + + jsonProof, err := native_json.Marshal(proof) + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + return + } + + // if no error marshaling, we can save to the DB + _, err = p.db.Exec( + "UPDATE proofs SET proof = $1, public_inputs = $2, status = $3, time_taken = $4 WHERE id = $5 AND circuit_name = $6", + jsonProof, jsonPublicInput, ProofAvailable, elapsed.String(), proofID, request.CircuitName) + + if err != nil { + fmt.Printf("err: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, request.CircuitName, proofID) + } else { + fmt.Printf("Proof available for %s", request.CircuitName) + } + + }() + + // Return before go routine finishes so that the requester knows the proof id + c.JSON(http.StatusOK, gin.H{ + "status": http.StatusOK, + "message": "Proof generation started for Circuit: " + request.CircuitName + " proof Id: " + strconv.Itoa(proofID), + }) +} + +// GenerateMultipleProofs Generate multiple proofs for multiple circuits +func (p Prover) GenerateMultipleProofs(c *gin.Context) { + var request GenerateMultipleProofsRequest + if err := c.ShouldBind(&request); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "The request body is not valid"}) + return + } + + // Create a channel to collect circuit names and proof IDs + infoChannel := make(chan ProofInfo, len(request.Requests)) + + // store the info about each proof request + var infos []ProofInfo + + // loop through the requested circuits and inputs + for _, proofRequest := range request.Requests { + // @note This next part before the proof generation should be blocking. + // we want to ensure that the circuit exists and that the DB is prepared + // accordingly + + // check if there is a circuit with this name + exists, err := p.CheckIfCircuitExists(proofRequest.CircuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to query the database"}) + return + } + + if !exists { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("There is no such circuit %s", proofRequest.CircuitName)}) + return + } + + // generate a new uuid + proofID, err := p.GetNumberOfProofsPerCircuit(proofRequest.CircuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the number of proofs"}) + return + } + + // calculate wtns name (use name + id to be an unique identifier) + wtnsPath := fmt.Sprintf("./data/%s_%d.wtns", proofRequest.CircuitName, proofID) + + // get the paths to zkey and wasm + circuit, err := p.GetCircuitDetails(proofRequest.CircuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the circuit details"}) + return + } + + // init a new empty proof in the DB + // marshal to JSON + tmpJSON, err := native_json.Marshal("{}") + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to marshal the proof"}) + return + } + _, err = p.db.Exec( + "INSERT INTO proofs (id, circuit_name, status, proof, public_inputs) VALUES ($1, $2, $3, $4, $5)", + proofID, + proofRequest.CircuitName, + GeneratingProof, + tmpJSON, + tmpJSON, + ) + + if (err != nil) { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to insert the proof in the database"}) + return + } + + // start generating the proof + go func(circuitName string, proofId int, circuit Circuit, circuitInput native_json.RawMessage, wntsPath string) { + // if another error then recover and update the proof status + defer func() { + if r := recover(); r != nil { + fmt.Printf("\nRecovered from panic: %s", r) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + // exit this go routine + return + } + }() + + // send the circuit name and proof id to the channel + infoChannel <- ProofInfo{CircuitName: circuitName, ProofID: proofId} // 1. Calculate witness start := time.Now() - wasmBytes, err := os.ReadFile("./instruments/ProcessMessages_6-8-2-3_test.wasm") + wasmBytes, err := os.ReadFile(circuit.WASMPath) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - inputs, err := witness.ParseInputs(request.CircuitInput) + inputs, err := witness.ParseInputs(circuitInput) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } calc, err := witness.NewCircom2WitnessCalculator(wasmBytes, true) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } wtns, err := calc.CalculateWTNSBin(inputs, true) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - //nolint:gomnd // PoC skip - err = os.WriteFile("./data/ProcessMessages/6-8-2-3/witness_wasm.wtns", wtns, 0600) + //nolint:gomnd + err = os.WriteFile(wtnsPath, wtns, 0600) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - elapsed := time.Since(start) // Calculate the elapsed time - fmt.Printf("Elapsed time for witness calculation 6-8-2-3 Processmessages: %s\n", elapsed) + // Calculate the elapsed time + elapsed := time.Since(start) + fmt.Printf("\nElapsed time for witness calculation %s: %s\n", circuitName, elapsed) // 2. Generate Proof - provingKey, err := os.ReadFile("./instruments/ProcessMessages_6-8-2-3_test.0.zkey") + provingKey, err := os.ReadFile(circuit.ZKeyPath) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - witnessOutput, err := os.ReadFile("./data/ProcessMessages/6-8-2-3/witness_wasm.wtns") + + witnessOutput, err := os.ReadFile(wtnsPath) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - start = time.Now() // Get the current time + // Get the current time + start = time.Now() proof, publicInput, err := prover.Groth16ProverRaw(provingKey, witnessOutput) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - p.ProcessMessagesCircuit.Result.Proof = proof - p.ProcessMessagesCircuit.Result.PublicInput = publicInput + // Calculate the elapsed time + elapsed = time.Since(start) - elapsed = time.Since(start) // Calculate the elapsed time + fmt.Printf("\nElapsed time for generating proof %s: %s\n", circuitName, elapsed) - fmt.Printf("Elapsed time for gen proof 6-8-2-3: %s\n", elapsed) - - p.ProcessMessagesCircuit.Status = ProofAvailable - fmt.Println("Proof available for ProcessMessages") - }() - case "TallyVotes": - go func() { - p.TallyVotesCircuit.Status = GeneratingProof - // 1. Calculate witness - start := time.Now() - wasmBytes, err := os.ReadFile("./instruments/TallyVotes_6-2-3_test.wasm") + // store the result on the db + // the proof and public input must be encoded as JSON + jsonPublicInput, err := native_json.Marshal(publicInput) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - inputs, err := witness.ParseInputs(request.CircuitInput) + jsonProof, err := native_json.Marshal(proof) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + return } - calc, err := witness.NewCircom2WitnessCalculator(wasmBytes, true) + _, err = p.db.Exec( + "UPDATE proofs SET proof = $1, public_inputs = $2, status = $3, time_taken = $4 WHERE id = $5 AND circuit_name = $6", + jsonProof, jsonPublicInput, ProofAvailable, elapsed.String(), proofId, circuitName) if err != nil { - fmt.Printf("err: %s", err) + fmt.Printf("\nerr: %s", err) + p.UpdateProofStatus(ProofGenerationFailed, circuitName, proofId) + } else { + fmt.Printf("\nProof available for %s", circuitName) } + }(proofRequest.CircuitName, proofID, circuit, proofRequest.CircuitInput, wtnsPath) + } - wtns, err := calc.CalculateWTNSBin(inputs, true) - if err != nil { - fmt.Printf("err: %s", err) - } + // Read from the channel to collect circuit names and proof IDs + for i := 0; i < len(request.Requests); i++ { + info := <-infoChannel + infos = append(infos, info) + } + close(infoChannel) - //nolint:gomnd // PoC skip - err = os.WriteFile("./data/TallyVotes/6-2-3/witness_wasm.wtns", wtns, 0600) - if err != nil { - fmt.Printf("err: %s", err) - } + // Return before go routine finishes so that the client knows the proof ids + c.JSON(http.StatusOK, gin.H{ + "status": http.StatusOK, + "message": "Proof generation started", + "data": infos, + }) +} - elapsed := time.Since(start) // Calculate the elapsed time - fmt.Printf("Elapsed time for witness calculation 6-2-3 TallyVotes: %s\n", elapsed) +// GetMultipleResults Post request to get multiple proofs results +func (p Prover) GetMultipleResults(c *gin.Context) { + var request GetMultipleCircuitsProofsRequest + if err := c.ShouldBind(&request); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"}) + return + } - // 2. Generate Proof - provingKey, err := os.ReadFile("./instruments/TallyVotes_6-2-3_test.0.zkey") + // store our response data + data := make(map[string]map[int]Result) + + // loop through the circuit names provided + for _, circuitRequest := range request.Circuits { + // extract the name + circuitName := circuitRequest.CircuitName + + exists, err := p.CheckIfCircuitExists(circuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check if circuit exists"}) + return + } + + if !exists { + c.JSON(http.StatusBadRequest, gin.H{"error": "There is no such circuit"}) + return + } + + // init the map for this circuit's results + if _, exists := data[circuitName]; !exists { + data[circuitName] = make(map[int]Result) + } + + // loop through the proof IDs requested + for _, proofId := range circuitRequest.ProofIds { + // check if there is a proof with this id + proofs, err := p.GetNumberOfProofsPerCircuit(circuitName) if err != nil { - fmt.Printf("err: %s", err) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the number of proofs"}) + return } - witnessOutput, err := os.ReadFile("./data/TallyVotes/6-2-3/witness_wasm.wtns") - if err != nil { - fmt.Printf("err: %s", err) - } - - start = time.Now() // Get the current time - proof, publicInput, err := prover.Groth16ProverRaw(provingKey, witnessOutput) - if err != nil { - fmt.Printf("err: %s", err) + if proofId >= proofs { + data[circuitName][proofId] = Result{ + Status: "Invalid Id", + } + } else { + // get the data from the db + proof, err := p.GetProof(circuitName, proofId) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the proof"}) + return + } + // store in our return variable + data[circuitName][proofId] = proof } + } + } - p.TallyVotesCircuit.Result.Proof = proof - p.TallyVotesCircuit.Result.PublicInput = publicInput + // the response contains all the requested proofs + c.JSON(http.StatusOK, gin.H{ + "status": http.StatusOK, + "data": data, + }) +} - elapsed = time.Since(start) // Calculate the elapsed time +// GetResult - Get the result for a certain circuit +func (p Prover) GetResult(c *gin.Context) { + // @note request type : GET /api/getResult?circuitName=foo&proofIds=1,2,3 + // get the circuit names from the query parameter + circuitName := c.DefaultQuery("circuitName", "") + // get the proof id + proofIds := strings.Split(c.DefaultQuery("proofIds", ""), ",") - fmt.Printf("Elapsed time for gen proof 6-2-3 TallyVotes: %s\n", elapsed) + data := map[string][]Result{} - p.TallyVotesCircuit.Status = ProofAvailable - fmt.Println("Proof available for TallyVotes") - }() + // check if there is a circuit with this name + exists, err := p.CheckIfCircuitExists(circuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to check if circuit exists"}) + return + } - c.JSON(http.StatusOK, gin.H{ - "status": http.StatusOK, - "message": "OK", - }) + if !exists { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Circuit with the name '%s' does not exist", circuitName)}) + return } -} -func (p *Prover) GetResult(c *gin.Context) { - data := ResponseData{ - ProcessMessagesCircuit: Circuit{ - Status: p.ProcessMessagesCircuit.Status, - Result: p.ProcessMessagesCircuit.Result, - }, - TallyVotesCircuit: Circuit{ - Status: p.TallyVotesCircuit.Status, - Result: p.TallyVotesCircuit.Result, - }, + // loop through all the requested proof ids + for _, proofId := range proofIds { + // convert the proof id to an integer + proofIdInt, err := strconv.Atoi(proofId) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Proof id '%s' is not a valid integer", proofId)}) + return + } + + // check if there is a proof with this id + proofs, err := p.GetNumberOfProofsPerCircuit(circuitName) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get the number of proofs"}) + return + } + + if proofIdInt >= proofs { + c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Proof with id '%s' does not exist", proofId)}) + return + } + + // get the proof object + proof, err := p.GetProof(circuitName, proofIdInt) + // append to the response array + data[circuitName] = append(data[circuitName], proof) } + // the response contains all the requested proofs c.JSON(http.StatusOK, gin.H{ "status": http.StatusOK, "data": data, }) } + +// GetAllAvailableProofsDB - Fetch all proofs from the db (available proofs) +func (p Prover) GetAllAvailableProofsDB() ([]ProofResponse, error) { + var proofs []ProofResponse + rows, err := p.db.Query("SELECT circuit_name, id, proof, public_inputs, time_taken FROM proofs WHERE status='ProofAvailable';") + if err != nil { + return nil, err + } + + // loop through all rows + for rows.Next() { + var proof ProofResponse + err := rows.Scan(&proof.CircuitName, &proof.ProofID, &proof.Proof, &proof.PublicInputs, &proof.TimeTaken) + if err != nil { + return nil, err + } + proofs = append(proofs, proof) + } + + return proofs, nil +} + +// GetAvailableProofs - Get all proofs generated by the service (can be a lot of data) +func (p Prover) GetAvailableProofs(c *gin.Context) { + // get all proofs from the db + proofs, err := p.GetAllAvailableProofsDB() + if err != nil { + fmt.Println(err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get proofs"}) + return + } + + // the response contains all the requested proofs + c.JSON(http.StatusOK, gin.H{ + "status": http.StatusOK, + "data": proofs, + }) +} \ No newline at end of file