From cd2fca30894be72c3bc8a0a56ca2d0df916e0cca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Rodr=C3=ADguez?= Date: Fri, 21 Apr 2023 14:34:23 +0200 Subject: [PATCH] feat: noir brillig compiler (#316) * wip: new noir compiler * wip * fix(noir): worked around new compiler issues * fix: remove unused returns * wip: public function integration * chore: completed build system for noir contracts * chore: removed old jsons * style: removed unused as FunctionAbi * fix: flatten flow for public transfer * style: fix json styles * chore: mocked vks * fix: public transfer * chore: enforce alphabetical abi fn ordering * fix: remove workaround for oracle simple returns * fix: remove contract address from get 2 notes orac * feat(sim): support for fetching n notes * fix(noir): remove branching workaround * feat: updated notes oracle with pagination * refator: removed unused fns --- yarn-project/acir-simulator/package.json | 4 +- yarn-project/acir-simulator/src/acvm/acvm.ts | 13 ++-- .../acir-simulator/src/acvm/deserialize.ts | 4 ++ yarn-project/acir-simulator/src/db_oracle.ts | 7 +- yarn-project/acir-simulator/src/execution.ts | 69 +++++++++++-------- yarn-project/acir-simulator/src/index.test.ts | 56 ++++++++------- .../acir-simulator/src/public/execution.ts | 1 + .../acir-simulator/src/public/index.test.ts | 4 +- .../aztec-rpc/src/simulator_oracle/index.ts | 27 ++++---- yarn-project/noir-contracts/README.md | 4 +- yarn-project/noir-contracts/package.json | 7 +- .../Nargo.toml | 0 .../src/contracts/child_contract/src/main.nr | 25 +++++++ .../noir-aztec3/src/notes/value_note.nr | 29 ++++++-- .../src/private_call_stack_item.nr | 55 ++++++++++++++- .../noir-aztec3/src/state_vars/set.nr | 48 +++++++++---- .../src/state_vars/storage_field.nr | 16 ++--- .../src/contracts/parent_contract/Nargo.toml | 6 ++ .../src/main.nr | 28 ++------ .../public_token_contract/src/main.nr | 21 +++--- .../src/contracts/test_contract/src/main.nr | 2 +- .../contracts/zk_token_contract/src/main.nr | 33 ++++----- .../{child.json => child_contract.json} | 12 ++-- .../noir-contracts/src/examples/index.ts | 17 +++-- .../noir-contracts/src/examples/parent.json | 40 ----------- .../src/examples/parent_contract.json | 39 +++++++++++ .../src/examples/public_token_contract.json | 30 +++++--- .../src/examples/test_contract.json | 6 +- .../src/examples/zk_token_contract.json | 21 +++--- .../noir-contracts/src/scripts/copy_output.ts | 42 ++++++----- .../src/scripts/mockedKeys.json | 3 + yarn-project/yarn.lock | 20 +++--- 32 files changed, 418 insertions(+), 271 deletions(-) rename yarn-project/noir-contracts/src/contracts/{nested_calls => child_contract}/Nargo.toml (100%) create mode 100644 yarn-project/noir-contracts/src/contracts/child_contract/src/main.nr create mode 100644 yarn-project/noir-contracts/src/contracts/parent_contract/Nargo.toml rename yarn-project/noir-contracts/src/contracts/{nested_calls => parent_contract}/src/main.nr (62%) rename yarn-project/noir-contracts/src/examples/{child.json => child_contract.json} (56%) delete mode 100644 yarn-project/noir-contracts/src/examples/parent.json create mode 100644 yarn-project/noir-contracts/src/examples/parent_contract.json create mode 100644 yarn-project/noir-contracts/src/scripts/mockedKeys.json diff --git a/yarn-project/acir-simulator/package.json b/yarn-project/acir-simulator/package.json index 264970241c7..f0f0a324973 100644 --- a/yarn-project/acir-simulator/package.json +++ b/yarn-project/acir-simulator/package.json @@ -35,8 +35,8 @@ "@aztec/foundation": "workspace:^", "@aztec/merkle-tree": "workspace:^", "@aztec/noir-contracts": "workspace:^", - "@noir-lang/aztec_backend_wasm": "github:joss-aztec/barretenberg_browser_stopgap_wasm_build#f2007d1c309da9d41c3ad38cc8696613678e910c", - "@noir-lang/noir_util_wasm": "github:joss-aztec/noir_util_wasm#bb71df87c9415be387c998b67cb0de4298ab6b6a", + "@noir-lang/aztec_backend_wasm": "github:joss-aztec/barretenberg_browser_stopgap_wasm_build#41d52a9ad86786c65ab9b0502927e9e2fa93d963", + "@noir-lang/noir_util_wasm": "github:joss-aztec/noir_util_wasm#94d5812260636794ab77c437261e6b814b130265", "levelup": "^5.1.1", "memdown": "^6.1.1", "tslib": "^2.4.0" diff --git a/yarn-project/acir-simulator/src/acvm/acvm.ts b/yarn-project/acir-simulator/src/acvm/acvm.ts index 05c079468fa..ac7f78ada31 100644 --- a/yarn-project/acir-simulator/src/acvm/acvm.ts +++ b/yarn-project/acir-simulator/src/acvm/acvm.ts @@ -8,14 +8,15 @@ export const ZERO_ACVM_FIELD: ACVMField = `0x${'00'.repeat(Fr.SIZE_IN_BYTES)}`; export const ONE_ACVM_FIELD: ACVMField = `0x${'00'.repeat(Fr.SIZE_IN_BYTES - 1)}01`; export interface ACIRCallback { - getSecretKey(params: ACVMField[]): Promise; + getSecretKey(params: ACVMField[]): Promise<[ACVMField]>; getNotes2(params: ACVMField[]): Promise; - getRandomField(): Promise; - notifyCreatedNote(params: ACVMField[]): Promise; - notifyNullifiedNote(params: ACVMField[]): Promise; + getRandomField(): Promise<[ACVMField]>; + notifyCreatedNote(params: ACVMField[]): Promise<[ACVMField]>; + notifyNullifiedNote(params: ACVMField[]): Promise<[ACVMField]>; callPrivateFunction(params: ACVMField[]): Promise; - storageRead(params: ACVMField[]): Promise; - storageWrite(params: ACVMField[]): Promise; + storageRead(params: ACVMField[]): Promise<[ACVMField]>; + storageWrite(params: ACVMField[]): Promise<[ACVMField]>; + viewNotesPage(params: ACVMField[]): Promise; } export interface ACIRExecutionResult { diff --git a/yarn-project/acir-simulator/src/acvm/deserialize.ts b/yarn-project/acir-simulator/src/acvm/deserialize.ts index 527dd64a645..0dca8bd71ac 100644 --- a/yarn-project/acir-simulator/src/acvm/deserialize.ts +++ b/yarn-project/acir-simulator/src/acvm/deserialize.ts @@ -22,6 +22,10 @@ export function frToAztecAddress(fr: Fr): AztecAddress { return new AztecAddress(fr.toBuffer()); } +export function frToNumber(fr: Fr): number { + return Number(fr.value); +} + export function frToEthAddress(fr: Fr): EthAddress { return new EthAddress(fr.toBuffer().slice(-EthAddress.SIZE_IN_BYTES)); } diff --git a/yarn-project/acir-simulator/src/db_oracle.ts b/yarn-project/acir-simulator/src/db_oracle.ts index 2b2dcdbbd13..47fff3d2126 100644 --- a/yarn-project/acir-simulator/src/db_oracle.ts +++ b/yarn-project/acir-simulator/src/db_oracle.ts @@ -9,7 +9,12 @@ export interface NoteLoadOracleInputs { export interface DBOracle { getSecretKey(contractAddress: AztecAddress, address: AztecAddress): Promise; - getNotes(contractAddress: AztecAddress, storageSlot: Fr, count: number): Promise; + getNotes( + contractAddress: AztecAddress, + storageSlot: Fr, + limit: number, + offset: number, + ): Promise<{ count: number; notes: NoteLoadOracleInputs[] }>; getFunctionABI(contractAddress: AztecAddress, functionSelector: Buffer): Promise; getPortalContractAddress(contractAddress: AztecAddress): Promise; } diff --git a/yarn-project/acir-simulator/src/execution.ts b/yarn-project/acir-simulator/src/execution.ts index df63804a662..c823cb8c8dd 100644 --- a/yarn-project/acir-simulator/src/execution.ts +++ b/yarn-project/acir-simulator/src/execution.ts @@ -19,7 +19,7 @@ import { PRIVATE_DATA_TREE_HEIGHT, } from '@aztec/circuits.js'; import { DBOracle } from './db_oracle.js'; -import { extractPublicInputs, frToAztecAddress, frToSelector } from './acvm/deserialize.js'; +import { extractPublicInputs, frToAztecAddress, frToNumber, frToSelector } from './acvm/deserialize.js'; import { FunctionAbi } from '@aztec/noir-contracts'; import { createDebugLogger } from '@aztec/foundation/log'; @@ -53,6 +53,10 @@ export interface ExecutionResult { nestedExecutions: this[]; } +const notAvailable = () => { + return Promise.reject(new Error(`Storage access not available for private function execution`)); +}; + export class Execution { constructor( // Global to the tx @@ -83,12 +87,10 @@ export class Execution { const nestedExecutionContexts: ExecutionResult[] = []; const { partialWitness } = await acvm(acir, initialWitness, { - getSecretKey: ([address]: ACVMField[]) => { - return this.getSecretKey(this.contractAddress, address); - }, - getNotes2: async ([, storageSlot]: ACVMField[]) => { - return await this.getNotes(this.contractAddress, storageSlot, 2); - }, + getSecretKey: async ([address]: ACVMField[]) => [ + toACVMField(await this.db.getSecretKey(this.contractAddress, frToAztecAddress(fromACVMField(address)))), + ], + getNotes2: ([storageSlot]: ACVMField[]) => this.getNotes(this.contractAddress, storageSlot, 2), getRandomField: () => Promise.resolve([toACVMField(Fr.random())]), notifyCreatedNote: ([storageSlot, ownerX, ownerY, ...acvmPreimage]: ACVMField[]) => { newNotePreimages.push({ @@ -121,12 +123,15 @@ export class Execution { return toAcvmCallPrivateStackItem(childExecutionResult.callStackItem); }, - storageRead: () => { - return Promise.reject(new Error(`Storage access not available for private function execution`)); - }, - storageWrite: () => { - return Promise.reject(new Error(`Storage access not available for private function execution`)); - }, + viewNotesPage: ([acvmSlot, acvmLimit, acvmOffset]) => + this.viewNotes( + this.contractAddress, + acvmSlot, + frToNumber(fromACVMField(acvmLimit)), + frToNumber(fromACVMField(acvmOffset)), + ), + storageRead: notAvailable, + storageWrite: notAvailable, }); const publicInputs = extractPublicInputs(partialWitness, acir); @@ -146,27 +151,33 @@ export class Execution { }; } - private async getNotes(contractAddress: AztecAddress, storageSlot: ACVMField, count: number) { - const notes = await this.db.getNotes(contractAddress, fromACVMField(storageSlot), count); - const dummyCount = Math.max(0, count - notes.length); - const dummyNotes = Array.from({ length: dummyCount }, () => ({ + private async getNotes(contractAddress: AztecAddress, storageSlot: ACVMField, limit: number) { + const { count, notes } = await this.fetchNotes(contractAddress, storageSlot, limit); + return [ + toACVMField(count), + ...notes.flatMap(noteGetData => toAcvmNoteLoadOracleInputs(noteGetData, this.historicRoots.privateDataTreeRoot)), + ]; + } + + private async viewNotes(contractAddress: AztecAddress, storageSlot: ACVMField, limit: number, offset = 0) { + const { count, notes } = await this.fetchNotes(contractAddress, storageSlot, limit, offset); + + return [toACVMField(count), ...notes.flatMap(noteGetData => noteGetData.preimage.map(f => toACVMField(f)))]; + } + + private async fetchNotes(contractAddress: AztecAddress, storageSlot: ACVMField, limit: number, offset = 0) { + const { count, notes } = await this.db.getNotes(contractAddress, fromACVMField(storageSlot), limit, offset); + + const dummyNotes = Array.from({ length: Math.max(0, limit - notes.length) }, () => ({ preimage: createDummyNote(), siblingPath: new Array(PRIVATE_DATA_TREE_HEIGHT).fill(Fr.ZERO), index: 0n, })); - return notes - .concat(dummyNotes) - .flatMap(noteGetData => toAcvmNoteLoadOracleInputs(noteGetData, this.historicRoots.privateDataTreeRoot)); - } - - private async getSecretKey(contractAddress: AztecAddress, address: ACVMField) { - // TODO remove this when we have brillig oracles that don't execute on false branches - if (address === ZERO_ACVM_FIELD) { - return [ZERO_ACVM_FIELD]; - } - const key = await this.db.getSecretKey(contractAddress, frToAztecAddress(fromACVMField(address))); - return [toACVMField(key)]; + return { + count, + notes: notes.concat(dummyNotes), + }; } private async callPrivateFunction( diff --git a/yarn-project/acir-simulator/src/index.test.ts b/yarn-project/acir-simulator/src/index.test.ts index db8fe555ef1..770d1175ace 100644 --- a/yarn-project/acir-simulator/src/index.test.ts +++ b/yarn-project/acir-simulator/src/index.test.ts @@ -55,7 +55,7 @@ describe('ACIR simulator', () => { ); const result = await acirSimulator.run( txRequest, - TestContractAbi.functions[0] as FunctionAbi, + TestContractAbi.functions[0], AztecAddress.ZERO, EthAddress.ZERO, historicRoots, @@ -94,7 +94,7 @@ describe('ACIR simulator', () => { it('should a constructor with arguments that creates notes', async () => { const historicRoots = new PrivateHistoricTreeRoots(new Fr(0n), new Fr(0n), new Fr(0n), new Fr(0n)); const contractAddress = AztecAddress.random(); - const abi = ZkTokenContractAbi.functions.find(f => f.name === 'constructor') as unknown as FunctionAbi; + const abi = ZkTokenContractAbi.functions.find(f => f.name === 'constructor')!; const txRequest = new TxRequest( AztecAddress.random(), @@ -116,12 +116,12 @@ describe('ACIR simulator', () => { const [commitment] = newCommitments; expect(commitment).toEqual(Fr.fromBuffer(acirSimulator.computeNoteHash(newNote.preimage, bbWasm))); - }); + }, 30_000); it('should run the mint function', async () => { const historicRoots = new PrivateHistoricTreeRoots(new Fr(0n), new Fr(0n), new Fr(0n), new Fr(0n)); const contractAddress = AztecAddress.random(); - const abi = ZkTokenContractAbi.functions.find(f => f.name === 'mint') as unknown as FunctionAbi; + const abi = ZkTokenContractAbi.functions.find(f => f.name === 'mint')!; const txRequest = new TxRequest( AztecAddress.random(), @@ -151,7 +151,7 @@ describe('ACIR simulator', () => { const contractAddress = AztecAddress.random(); const amountToTransfer = 100n; - const abi = ZkTokenContractAbi.functions.find(f => f.name === 'transfer') as unknown as FunctionAbi; + const abi = ZkTokenContractAbi.functions.find(f => f.name === 'transfer')!; const tree: AppendOnlyTree = await newTree(StandardTree, db, pedersen, 'privateData', PRIVATE_DATA_TREE_HEIGHT); const preimages = [buildNote(60n, owner), buildNote(80n, owner)]; @@ -165,14 +165,17 @@ describe('ACIR simulator', () => { new Fr(0n), ); - oracle.getNotes.mockImplementation(() => { - return Promise.all( - preimages.map(async (preimage, index) => ({ - preimage, - siblingPath: (await tree.getSiblingPath(BigInt(index), false)).data.map(buf => Fr.fromBuffer(buf)), - index: BigInt(index), - })), - ); + oracle.getNotes.mockImplementation(async () => { + return { + count: preimages.length, + notes: await Promise.all( + preimages.map(async (preimage, index) => ({ + preimage, + siblingPath: (await tree.getSiblingPath(BigInt(index), false)).data.map(buf => Fr.fromBuffer(buf)), + index: BigInt(index), + })), + ), + }; }); oracle.getSecretKey.mockReturnValue(Promise.resolve(ownerPk)); @@ -222,7 +225,7 @@ describe('ACIR simulator', () => { const contractAddress = AztecAddress.random(); const amountToTransfer = 100n; const balance = 160n; - const abi = ZkTokenContractAbi.functions.find(f => f.name === 'transfer') as unknown as FunctionAbi; + const abi = ZkTokenContractAbi.functions.find(f => f.name === 'transfer')!; const tree: AppendOnlyTree = await newTree(StandardTree, db, pedersen, 'privateData', PRIVATE_DATA_TREE_HEIGHT); const preimages = [buildNote(balance, owner)]; @@ -236,14 +239,17 @@ describe('ACIR simulator', () => { new Fr(0n), ); - oracle.getNotes.mockImplementation(() => { - return Promise.all( - preimages.map(async (preimage, index) => ({ - preimage, - siblingPath: (await tree.getSiblingPath(BigInt(index), false)).data.map(buf => Fr.fromBuffer(buf)), - index: BigInt(index), - })), - ); + oracle.getNotes.mockImplementation(async () => { + return { + count: preimages.length, + notes: await Promise.all( + preimages.map(async (preimage, index) => ({ + preimage, + siblingPath: (await tree.getSiblingPath(BigInt(index), false)).data.map(buf => Fr.fromBuffer(buf)), + index: BigInt(index), + })), + ), + }; }); oracle.getSecretKey.mockReturnValue(Promise.resolve(ownerPk)); @@ -278,7 +284,7 @@ describe('ACIR simulator', () => { const txContext = new TxContext(false, false, true, contractDeploymentData); it('child function should be callable', async () => { - const abi = ChildAbi.functions.find(f => f.name === 'value') as unknown as FunctionAbi; + const abi = ChildAbi.functions.find(f => f.name === 'value')!; const txRequest = new TxRequest( AztecAddress.random(), @@ -295,8 +301,8 @@ describe('ACIR simulator', () => { }); it('parent should call child', async () => { - const childAbi = ChildAbi.functions.find(f => f.name === 'value') as unknown as FunctionAbi; - const parentAbi = ParentAbi.functions.find(f => f.name === 'entryPoint') as unknown as FunctionAbi; + const childAbi = ChildAbi.functions.find(f => f.name === 'value')!; + const parentAbi = ParentAbi.functions.find(f => f.name === 'entryPoint')!; const childAddress = AztecAddress.random(); const childSelector = Buffer.alloc(4, 1); // should match the call diff --git a/yarn-project/acir-simulator/src/public/execution.ts b/yarn-project/acir-simulator/src/public/execution.ts index 6aef082ca53..4598e672381 100644 --- a/yarn-project/acir-simulator/src/public/execution.ts +++ b/yarn-project/acir-simulator/src/public/execution.ts @@ -75,6 +75,7 @@ export class PublicExecution { notifyCreatedNote: notAvailable, notifyNullifiedNote: notAvailable, callPrivateFunction: notAvailable, + viewNotesPage: notAvailable, storageRead: async ([slot]) => { const storageSlot = fromACVMField(slot); const value = await stateActions.read(storageSlot); diff --git a/yarn-project/acir-simulator/src/public/index.test.ts b/yarn-project/acir-simulator/src/public/index.test.ts index 04e4fcf5e4b..391910743de 100644 --- a/yarn-project/acir-simulator/src/public/index.test.ts +++ b/yarn-project/acir-simulator/src/public/index.test.ts @@ -39,7 +39,7 @@ describe('ACIR public execution simulator', () => { describe('mint', () => { it('should run the mint function', async () => { const contractAddress = AztecAddress.random(); - const abi = PublicTokenContractAbi.functions.find(f => f.name === 'mint') as FunctionAbi; + const abi = PublicTokenContractAbi.functions.find(f => f.name === 'mint')!; const functionData = new FunctionData(Buffer.alloc(4), false, false); const args = encodeArguments(abi, [140, recipient], false); @@ -83,7 +83,7 @@ describe('ACIR public execution simulator', () => { beforeEach(() => { contractAddress = AztecAddress.random(); - abi = PublicTokenContractAbi.functions.find(f => f.name === 'transfer') as FunctionAbi; + abi = PublicTokenContractAbi.functions.find(f => f.name === 'transfer')!; functionData = new FunctionData(Buffer.alloc(4), false, false); args = encodeArguments(abi, [140, recipient], false); sender = AztecAddress.random(); diff --git a/yarn-project/aztec-rpc/src/simulator_oracle/index.ts b/yarn-project/aztec-rpc/src/simulator_oracle/index.ts index fe441b0625f..3fa32a418a0 100644 --- a/yarn-project/aztec-rpc/src/simulator_oracle/index.ts +++ b/yarn-project/aztec-rpc/src/simulator_oracle/index.ts @@ -1,4 +1,4 @@ -import { DBOracle, NoteLoadOracleInputs } from '@aztec/acir-simulator'; +import { DBOracle } from '@aztec/acir-simulator'; import { AztecAddress, EthAddress, Fr } from '@aztec/circuits.js'; import { FunctionAbi } from '@aztec/noir-contracts'; import { ContractDataOracle } from '../contract_data_oracle/index.js'; @@ -21,18 +21,21 @@ export class SimulatorOracle implements DBOracle { return this.keyPair.getPrivateKey(); } - async getNotes(contractAddress: AztecAddress, storageSlot: Fr, n: number): Promise { + async getNotes(contractAddress: AztecAddress, storageSlot: Fr, limit: number, offset: number) { const noteDaos = await this.db.getTxAuxData(contractAddress, storageSlot); - return Promise.all( - noteDaos.slice(0, n).map(async noteDao => { - const path = await this.node.getDataTreePath(noteDao.index); - return { - preimage: noteDao.notePreimage.items, - siblingPath: path.data.map(buf => Fr.fromBuffer(buf)), - index: noteDao.index, - }; - }), - ); + return { + count: noteDaos.length, + notes: await Promise.all( + noteDaos.slice(offset, offset + limit).map(async noteDao => { + const path = await this.node.getDataTreePath(noteDao.index); + return { + preimage: noteDao.notePreimage.items, + siblingPath: path.data.map(buf => Fr.fromBuffer(buf)), + index: noteDao.index, + }; + }), + ), + }; } async getFunctionABI(contractAddress: AztecAddress, functionSelector: Buffer): Promise { diff --git a/yarn-project/noir-contracts/README.md b/yarn-project/noir-contracts/README.md index 2995fa05dc4..c0a60257039 100644 --- a/yarn-project/noir-contracts/README.md +++ b/yarn-project/noir-contracts/README.md @@ -6,7 +6,7 @@ ``` curl -L https://raw.githubusercontent.com/noir-lang/noirup/main/install | bash ``` -- Install the noir branch needed for A3 backend (`arv/call_stack_item_oracle` at the moment) +- Install the noir branch needed for A3 backend (`joss/ssa-2-brillig-plus-hacks` at the moment) ``` noirup --branch arv/call_stack_item_oracle ``` @@ -21,4 +21,4 @@ ### Examples folder -The examples folder has friendly ABIs to be consumed from aztec3-client. They can be generated from the nargo build output using the `scripts/copy_output.ts`. \ No newline at end of file +The examples folder has friendly ABIs to be consumed from aztec3-client. They can be generated from the nargo build output using the `scripts/copy_output.ts`. diff --git a/yarn-project/noir-contracts/package.json b/yarn-project/noir-contracts/package.json index c7e5edd823a..3bf0f02eb0d 100644 --- a/yarn-project/noir-contracts/package.json +++ b/yarn-project/noir-contracts/package.json @@ -20,8 +20,11 @@ "formatting": "run -T prettier --check ./src && run -T eslint ./src", "formatting:fix": "run -T prettier -w ./src", "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --passWithNoTests", - "noir:build:test": "cd src/contracts/test_contract && nargo compile main --contracts", - "noir:build:zk_token": "cd src/contracts/zk_token_contract && nargo compile main --contracts", + "noir:build": "yarn noir:build:test && yarn noir:build:parent && yarn noir:build:child && yarn noir:build:zk_token && yarn noir:build:pub_token", + "noir:build:test": "(cd src/contracts/test_contract && nargo compile main --contracts) && ts-node --esm src/scripts/copy_output.ts test", + "noir:build:parent": "(cd src/contracts/parent_contract && nargo compile main --contracts) && ts-node --esm src/scripts/copy_output.ts parent", + "noir:build:child": "(cd src/contracts/child_contract && nargo compile main --contracts) && ts-node --esm src/scripts/copy_output.ts child", + "noir:build:zk_token": "(cd src/contracts/zk_token_contract && nargo compile main --contracts) && ts-node --esm src/scripts/copy_output.ts zk_token", "noir:build:pub_token": "(cd src/contracts/public_token_contract && nargo compile main --contracts) && ts-node --esm src/scripts/copy_output.ts public_token" }, "inherits": [ diff --git a/yarn-project/noir-contracts/src/contracts/nested_calls/Nargo.toml b/yarn-project/noir-contracts/src/contracts/child_contract/Nargo.toml similarity index 100% rename from yarn-project/noir-contracts/src/contracts/nested_calls/Nargo.toml rename to yarn-project/noir-contracts/src/contracts/child_contract/Nargo.toml diff --git a/yarn-project/noir-contracts/src/contracts/child_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/child_contract/src/main.nr new file mode 100644 index 00000000000..f9c70bd5ee3 --- /dev/null +++ b/yarn-project/noir-contracts/src/contracts/child_contract/src/main.nr @@ -0,0 +1,25 @@ +contract Child { + use dep::aztec3::abi; + use dep::aztec3::abi::Inputs; + use dep::aztec3::abi::Outputs; + + /// ABI constructor params [] + /// ABI constructor return [] + fn constructor( + inputs: pub Inputs, + ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { + Outputs::new().finish(inputs) + } + + /// ABI value params [{"name":"input","type":{"kind":"field"},"visibility":"public"}] + /// ABI value return [{"kind":"field"}] + fn value( + inputs: pub Inputs, + ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { + let mut outputs = Outputs::new(); + + outputs.return_values = outputs.return_values.push(inputs.args[0] + 42); + + outputs.finish(inputs) + } +} diff --git a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/notes/value_note.nr b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/notes/value_note.nr index ee1d4d43003..7a40ab37948 100644 --- a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/notes/value_note.nr +++ b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/notes/value_note.nr @@ -2,11 +2,19 @@ use crate::types::point::Point; -#[builtin(rand)] -fn rand(_idx: Field) -> Field {} +#[oracle(getRandomField)] +fn rand_oracle() -> Field {} -#[builtin(getSecretKey)] -fn get_secret_key(_owner: Point) -> Field {} +unconstrained fn rand() -> Field { + rand_oracle() +} + +#[oracle(getSecretKey)] +fn get_secret_key_oracle(_owner: Point) -> Field {} + +unconstrained fn get_secret_key(owner: Point) -> Field { + get_secret_key_oracle(owner) +} struct Note { value: Field, @@ -27,7 +35,7 @@ impl Note { } } - fn new(value: Field, owner: Point, rand_idx: Field) -> Note { + fn new(value: Field, owner: Point) -> Note { // let randomness = ORACLE::rand(); // ORACLE CALL // let nonce = ORACLE::rand(); // ORACLE CALL (nonce not secure: would need to be better in production). @@ -36,7 +44,7 @@ impl Note { // The application panicked (crashed). // Message: unexpected constant expression // Location: crates/noirc_evaluator/src/ssa/acir_gen/operations/intrinsics.rs:280 - let randomness = rand(rand_idx + 1); + let randomness = rand(); // let randomness = 4; // Chosen by fair dice roll let nonce = 3; // Guaranteed to be random @@ -73,4 +81,13 @@ impl Note { dep::std::hash::pedersen([crate::Nullifier, note_hash, secret_key])[0] } + + fn validate(self, sender: Point){ + if self.is_real { + constrain sender.x == self.owner.x; + constrain sender.y == self.owner.y; + } else { + constrain self.value == 0; + } + } } diff --git a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/private_call_stack_item.nr b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/private_call_stack_item.nr index 4ccd7eeb53f..4df7d3c989e 100644 --- a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/private_call_stack_item.nr +++ b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/private_call_stack_item.nr @@ -5,8 +5,46 @@ use crate::abi::PrivateCircuitPublicInputs; use crate::types::vec::BoundedVec; use crate::utils::arr_copy_slice; -#[builtin(callPrivateFunction)] -fn call_private_function_internal(_contract_address: Field, _function_selector: Field, _args: [Field; crate::abi::MAX_ARGS]) -> [Field; 51] {} +// TODO unconstrained functions fail with arrays as arguments +#[oracle(callPrivateFunction)] +fn call_private_function_oracle( + _contract_address: Field, + _function_selector: Field, + _arg0: Field, + _arg1: Field, + _arg2: Field, + _arg3: Field, + _arg4: Field, + _arg5: Field, + _arg6: Field, + _arg7: Field, +) -> [Field; 51] {} + +unconstrained fn call_private_function_internal( + contract_address: Field, + function_selector: Field, + arg0: Field, + arg1: Field, + arg2: Field, + arg3: Field, + arg4: Field, + arg5: Field, + arg6: Field, + arg7: Field, +) -> [Field; 51] { + call_private_function_oracle( + contract_address, + function_selector, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + ) +} struct FunctionData { function_selector: Field, @@ -33,7 +71,18 @@ struct PrivateCallStackItem { impl PrivateCallStackItem { fn call(contract_address: Field, function_selector: Field, args: [Field; crate::abi::MAX_ARGS], mut outputs: Outputs) -> (Self, Outputs) { - let fields = call_private_function_internal(contract_address, function_selector, args); + let fields = call_private_function_internal( + contract_address, + function_selector, + args[0], + args[1], + args[2], + args[3], + args[4], + args[5], + args[6], + args[7] + ); let item = PrivateCallStackItem { contract_address: fields[0], function_data: FunctionData { diff --git a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/set.nr b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/set.nr index a1d58258aaa..92b22a29682 100644 --- a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/set.nr +++ b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/set.nr @@ -7,30 +7,51 @@ use crate::state_vars::note_getter_data::NoteGetterData; use crate::state_vars::note_getter_data::make_note_getter_data; use crate::state_vars::note_getter_data::note_getter_data_len; -#[builtin(notifyCreatedNote)] -fn notify_created_note( +#[oracle(notifyCreatedNote)] +fn notify_created_note_oracle( _storage_slot: Field, _owner: Point, _note: Note, ) -> Field {} -#[builtin(notifyNullifiedNote)] -fn notify_nullified_note( +unconstrained fn notify_created_note( + storage_slot: Field, + owner: Point, + note: Note, +) -> Field { + notify_created_note_oracle(storage_slot, owner, note) +} + +#[oracle(notifyNullifiedNote)] +fn notify_nullified_note_oracle( _storage_slot: Field, _nullifier: Field, _note: Note, ) -> Field {} -#[builtin(getNotes2)] -fn get_notes_2_internal( - _contract_address: Field, +unconstrained fn notify_nullified_note( + storage_slot: Field, + nullifier: Field, + note: Note, +) -> Field { + notify_nullified_note_oracle(storage_slot, nullifier, note) +} + +#[oracle(getNotes2)] +fn get_notes_2_oracle( _storage_slot: Field, -) -> [Field; 32] {} +) -> [Field; 33] {} -fn get_2_notes(contract_address: Field, storage_slot: Field) -> (NoteGetterData, NoteGetterData) { - let fields = get_notes_2_internal(contract_address, storage_slot); - let data1 = make_note_getter_data(fields, 0); - let data2 = make_note_getter_data(fields, note_getter_data_len()); +unconstrained fn get_notes_2_internal( + storage_slot: Field, +) -> [Field; 33] { + get_notes_2_oracle(storage_slot) +} + +fn get_2_notes(storage_slot: Field) -> (NoteGetterData, NoteGetterData) { + let fields = get_notes_2_internal(storage_slot); + let data1 = make_note_getter_data(fields, 1); + let data2 = make_note_getter_data(fields, 1 + note_getter_data_len()); (data1, data2) } @@ -55,7 +76,6 @@ impl Set { // The `2` in the name is the number of notes returned fn get_2(self, inputs: Inputs, mut outputs: Outputs) -> (Outputs, (Note, Note)) { - let contract_address = inputs.call_context.storage_contract_address; let storage_slot = self.storage_slot; // let note_getter_data: [NoteGetterData; 2] = ORACLE::get_2_notes(contract_address, storage_slot); @@ -63,7 +83,7 @@ impl Set { // NoteGetterData { note: Note::dummy(), leaf_index: 0, sibling_path: [1, 2, 3, 4, 5], root: 1 }, // NoteGetterData { note: Note::dummy(), leaf_index: 1, sibling_path: [1, 2, 3, 4, 5], root: 1 }, // ); - let note_getter_data = get_2_notes(contract_address, storage_slot); + let note_getter_data = get_2_notes(storage_slot); // Forwarded vars added due to https://github.com/noir-lang/noir/issues/1088 // let process_data = |data, storage_slot_forwarded, contract_address_forwarded| { diff --git a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/storage_field.nr b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/storage_field.nr index b73bf5cf555..3b5aa7d0ded 100644 --- a/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/storage_field.nr +++ b/yarn-project/noir-contracts/src/contracts/noir-aztec3/src/state_vars/storage_field.nr @@ -1,13 +1,13 @@ use crate::notes::value_note::Note; use crate::types::point::Point; -#[builtin(storageRead)] -fn storage_read( +#[oracle(storageRead)] +fn storage_read_oracle( _storage_slot: Field, ) -> Field {} -#[builtin(storageWrite)] -fn storage_write( +#[oracle(storageWrite)] +fn storage_write_oracle( _storage_slot: Field, _value: Field, ) -> Field {} @@ -21,11 +21,11 @@ impl StorageField { StorageField { storage_slot } } - fn read(self) -> Field { - storage_read(self.storage_slot) + unconstrained fn read(self) -> Field { + storage_read_oracle(self.storage_slot) } - fn write(self, value: Field) -> Field { - storage_write(self.storage_slot, value) + unconstrained fn write(self, value: Field) -> Field { + storage_write_oracle(self.storage_slot, value) } } diff --git a/yarn-project/noir-contracts/src/contracts/parent_contract/Nargo.toml b/yarn-project/noir-contracts/src/contracts/parent_contract/Nargo.toml new file mode 100644 index 00000000000..c7581265e83 --- /dev/null +++ b/yarn-project/noir-contracts/src/contracts/parent_contract/Nargo.toml @@ -0,0 +1,6 @@ +[package] +authors = [""] +compiler_version = "0.1" + +[dependencies] +aztec3 = { path = "../noir-aztec3" } diff --git a/yarn-project/noir-contracts/src/contracts/nested_calls/src/main.nr b/yarn-project/noir-contracts/src/contracts/parent_contract/src/main.nr similarity index 62% rename from yarn-project/noir-contracts/src/contracts/nested_calls/src/main.nr rename to yarn-project/noir-contracts/src/contracts/parent_contract/src/main.nr index cd87bde013f..0ed2fe72c0e 100644 --- a/yarn-project/noir-contracts/src/contracts/nested_calls/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/parent_contract/src/main.nr @@ -4,12 +4,16 @@ contract Parent { use dep::aztec3::abi::Outputs; use dep::aztec3::private_call_stack_item::PrivateCallStackItem; + /// ABI constructor params [] + /// ABI constructor return [] fn constructor( inputs: pub Inputs, ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { Outputs::new().finish(inputs) } + /// ABI entryPoint params [{"name":"targetContract","type":{"kind":"field"},"visibility":"public"},{"name":"targetSelector","type":{"kind":"field"}}] + /// ABI entryPoint return [{"kind":"field"}] fn entryPoint( inputs: pub Inputs, ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { @@ -26,26 +30,4 @@ contract Parent { outputs.finish(inputs) } -} - -contract Child { - use dep::aztec3::abi; - use dep::aztec3::abi::Inputs; - use dep::aztec3::abi::Outputs; - - fn constructor( - inputs: pub Inputs, - ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { - Outputs::new().finish(inputs) - } - - fn value( - inputs: pub Inputs, - ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { - let mut outputs = Outputs::new(); - - outputs.return_values = outputs.return_values.push(inputs.args[0] + 42); - - outputs.finish(inputs) - } -} +} \ No newline at end of file diff --git a/yarn-project/noir-contracts/src/contracts/public_token_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/public_token_contract/src/main.nr index 3e61af0525c..e64d61b4e7a 100644 --- a/yarn-project/noir-contracts/src/contracts/public_token_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/public_token_contract/src/main.nr @@ -1,7 +1,6 @@ contract PublicToken { use dep::aztec3::abi::Inputs; use dep::aztec3::abi::Outputs; - use dep::aztec3::abi::FinalOutputs; use dep::aztec3::abi::CallContext; use dep::aztec3::types::point::Point; use dep::aztec3::state_vars::storage_map::StorageMap; @@ -9,15 +8,16 @@ contract PublicToken { global balances = StorageMap { storage_slot: 1 }; - /// ABI constructor [] + /// ABI constructor params [] + /// ABI constructor return [] fn constructor( inputs: pub Inputs, - ) -> pub FinalOutputs { - let outputs = Outputs::new(); - outputs.finish(inputs) + ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { + Outputs::new().finish(inputs) } - /// ABI mint [{"name":"amount","type":{"kind":"field"},"visibility":"public"},{"name":"recipient","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}}] + /// ABI mint params [{"name":"amount","type":{"kind":"field"},"visibility":"public"},{"name":"recipient","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}}] + /// ABI mint return [{"kind":"field"}] fn mint( _call_context: pub CallContext, amount: pub Field, @@ -28,7 +28,8 @@ contract PublicToken { } - /// ABI transfer [{"name":"amount","type":{"kind":"field"},"visibility":"public"},{"name":"recipient","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}}] + /// ABI transfer params [{"name":"amount","type":{"kind":"field"},"visibility":"public"},{"name":"recipient","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}}] + /// ABI transfer return [{"kind":"field"}] fn transfer( call_context: pub CallContext, amount: pub Field, @@ -38,12 +39,14 @@ contract PublicToken { let sender_balance = balances.at(sender); let recipient_balance = balances.at(recipient.x); + + let current_sender_balance = sender_balance.read(); let current_recipient_balance = recipient_balance.read(); // TODO: Handle larger integer values ("long integers are not yet supported") - if (sender_balance.read() as u120) > (amount as u120) { + if (current_sender_balance as u120) > (amount as u120) { // TODO: Compiler complains if we don't assign the result of the write to anything - let _void1 = sender_balance.write(sender_balance.read() - amount); + let _void1 = sender_balance.write(current_sender_balance - amount); recipient_balance.write(current_recipient_balance + amount) } else { // TODO: Revert if there is not enough balance diff --git a/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr index e51950b5443..43fa7c3330e 100644 --- a/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/test_contract/src/main.nr @@ -1,4 +1,4 @@ -contract EmptyConstructor { +contract Test { use dep::aztec3::abi; use dep::aztec3::abi::Inputs; use dep::aztec3::abi::Outputs; diff --git a/yarn-project/noir-contracts/src/contracts/zk_token_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/zk_token_contract/src/main.nr index f8e0947c0d0..056d552a01a 100644 --- a/yarn-project/noir-contracts/src/contracts/zk_token_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/zk_token_contract/src/main.nr @@ -1,4 +1,4 @@ -contract PrivateToken { +contract ZkToken { use dep::aztec3::abi::Inputs; use dep::aztec3::abi::Outputs; use dep::aztec3::notes::value_note::Note; @@ -12,7 +12,8 @@ contract PrivateToken { // `balances: Mapping>;` //*********************************/ - /// ABI constructor [{"name":"value","type":{"kind":"field"},"visibility":"public"},{"name":"owner","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]},"visibility":"public"}] + /// ABI constructor params [{"name":"value","type":{"kind":"field"},"visibility":"public"},{"name":"owner","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]},"visibility":"public"}] + /// ABI constructor return [] fn constructor( //*********************************/ // Should eventually be hidden: @@ -31,14 +32,15 @@ contract PrivateToken { //*********************************/ let owner_balance = balances.at(owner.x); - let note = Note::new(initial_supply, owner, 0); + let note = Note::new(initial_supply, owner); owner_balance.insert(outputs, note) .finish(inputs) } - /// ABI mint [{"name":"value","type":{"kind":"field"},"visibility":"public"},{"name":"owner","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]},"visibility":"public"}] + /// ABI mint params [{"name":"value","type":{"kind":"field"},"visibility":"public"},{"name":"owner","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]},"visibility":"public"}] + /// ABI mint return [] fn mint( //*********************************/ // Should eventually be hidden: @@ -57,13 +59,14 @@ contract PrivateToken { //*********************************/ let owner_balance = balances.at(owner.x); - let note = Note::new(amount, owner, 0); + let note = Note::new(amount, owner); owner_balance.insert(outputs, note) .finish(inputs) } - /// ABI transfer [{"name":"amount","type":{"kind":"field"},"visibility":"public"},{"name":"sender","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}},{"name":"recipient","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}}] + /// ABI transfer params [{"name":"amount","type":{"kind":"field"},"visibility":"public"},{"name":"sender","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}},{"name":"recipient","type":{"kind":"struct","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"visibility":"public"}}] + /// ABI transfer return [] fn transfer( //*********************************/ // Should eventually be hidden: @@ -86,21 +89,12 @@ contract PrivateToken { let sender_balance = balances.at(sender.x); let (mut outputs, (note1, note2)) = sender_balance.get_2(inputs, outputs1); - let constrain_note = |note: Note, sender_forwarded: Point| { - if note.is_real { - constrain sender_forwarded.x == note.owner.x; - constrain sender_forwarded.y == note.owner.y; - } else { - constrain note.value == 0; - } - }; - // TODO: Removing this return breaks the circuit (???) outputs.return_values = outputs.return_values.push(note1.is_real as Field); outputs.return_values = outputs.return_values.push(note2.is_real as Field); - constrain_note(note1, sender); - constrain_note(note2, sender); + note1.validate(sender); + note2.validate(sender); let sum = note1.value + note2.value; constrain sum as u64 >= amount as u64; @@ -109,15 +103,14 @@ contract PrivateToken { outputs = sender_balance.remove(inputs, outputs, note1); outputs = sender_balance.remove(inputs, outputs, note2); - let recipient_note = Note::new(amount, recipient, 0); - let change_note = Note::new(change_value, sender, 1); + let change_note = Note::new(change_value, sender); + let recipient_note = Note::new(amount, recipient); let recipient_balance = balances.at(recipient.x); outputs = recipient_balance.insert(outputs, recipient_note); outputs = sender_balance.insert(outputs, change_note); - outputs.finish(inputs) } diff --git a/yarn-project/noir-contracts/src/examples/child.json b/yarn-project/noir-contracts/src/examples/child_contract.json similarity index 56% rename from yarn-project/noir-contracts/src/examples/child.json rename to yarn-project/noir-contracts/src/examples/child_contract.json index cb94897c04f..cd7705b79df 100644 --- a/yarn-project/noir-contracts/src/examples/child.json +++ b/yarn-project/noir-contracts/src/examples/child_contract.json @@ -3,30 +3,30 @@ "functions": [ { "name": "constructor", - "functionType": "secret", + "functionType": "Secret", "parameters": [], "returnTypes": [], - "bytecode": "0000000046000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000004000000041000000420000004300000044000000450000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000330000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000450000000000000000000000000000000000000000000000000000000000000000000000", + "bytecode": "0000000046000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000330000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000450000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { "name": "value", - "functionType": "secret", + "functionType": "Secret", "parameters": [ { - "name": "value", + "name": "input", "type": { "kind": "field" }, "visibility": "public" } ], - "returnType": [ + "returnTypes": [ { "kind": "field" } ], - "bytecode": "0000000047000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020000000210000002200000023000000250000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020000000210000002200000023000000250000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f00000040000000410000004200000043000000440000004500000046000000340000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000002a00000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000460000000000000000000000000000000000000000000000000000000000000000000000", + "bytecode": "0000000047000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020000000210000002200000023000000250000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f00000040000000410000004200000043000000440000004500000046000000340000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000002a00000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000460000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" } ] diff --git a/yarn-project/noir-contracts/src/examples/index.ts b/yarn-project/noir-contracts/src/examples/index.ts index 4b3819ab844..1628f1df0a0 100644 --- a/yarn-project/noir-contracts/src/examples/index.ts +++ b/yarn-project/noir-contracts/src/examples/index.ts @@ -1,6 +1,13 @@ // TODO the verification keys in this contracts are mocked ATM -export { default as TestContractAbi } from './test_contract.json'; -export { default as ZkTokenContractAbi } from './zk_token_contract.json'; -export { default as ParentAbi } from './parent.json'; -export { default as ChildAbi } from './child.json'; -export { default as PublicTokenContractAbi } from './public_token_contract.json'; +import TestContractJson from './test_contract.json'; +import ZkTokenContractJson from './zk_token_contract.json'; +import ParentJson from './parent_contract.json'; +import ChildJson from './child_contract.json'; +import PublicTokenContractJson from './public_token_contract.json'; +import { ContractAbi } from '../abi.js'; + +export const TestContractAbi = TestContractJson as ContractAbi; +export const ZkTokenContractAbi = ZkTokenContractJson as ContractAbi; +export const ParentAbi = ParentJson as ContractAbi; +export const ChildAbi = ChildJson as ContractAbi; +export const PublicTokenContractAbi = PublicTokenContractJson as ContractAbi; diff --git a/yarn-project/noir-contracts/src/examples/parent.json b/yarn-project/noir-contracts/src/examples/parent.json deleted file mode 100644 index 04e6bed764a..00000000000 --- a/yarn-project/noir-contracts/src/examples/parent.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Parent", - "functions": [ - { - "name": "constructor", - "functionType": "secret", - "parameters": [], - "returnTypes": [], - "bytecode": "0000000046000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000004000000041000000420000004300000044000000450000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000330000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000450000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - }, - { - "name": "entryPoint", - "functionType": "secret", - "parameters": [ - { - "name": "targetContract", - "type": { - "kind": "field" - }, - "visibility": "public" - }, - { - "name": "targetSelector", - "type": { - "kind": "field" - }, - "visibility": "public" - } - ], - "returnType": [ - { - "kind": "field" - } - ], - "bytecode": "00000000c5000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c40000002f000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000af0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000490000000000000000000000000000000000000000000000000000000000000000000000061300000063616c6c5072697661746546756e6374696f6e0a0000000000000001000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001020000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001490000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001490000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000000000000033000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024b0000004a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000004a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004d0000004c00000000010b00010000004c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000004d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b00000000000000000000000000000000000000000000000000000000000000000000014c00000010000000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001800000000000000000000000000000000000000000000000000000000000000000000014a00000000000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f0000004e0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000004e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000510000005000000000010b000100000050000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000150000000100000000000000000000000000000000000000000000000000000000000000051000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001900000000000000000000000000000000000000000000000000000000000000000000014e00000000000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025300000052000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001520000005200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005200000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000550000005400000000010b000100000054000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001550000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000055000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000053000000000000000000000000000000000000000000000000000000000000000000000154000000100000000000000000000000000000000000000000000000000000000000000055000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d0000000000000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000000000002530000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025700000056000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001560000005600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000157000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000590000005800000000010b000100000058000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000158000000100000000000000000000000000000000000000000000000000000000000000059000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e0000000000000000000000000000000000000000000000000000000000000000000001560000000000000000000000000000000000000000000000000000000000000000000002570000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025b0000005a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015a0000005a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005d0000005c00000000010b00010000005c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015d0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b00000000000000000000000000000000000000000000000000000000000000000000015c00000010000000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f00000000000000000000000000000000000000000000000000000000000000000000015a00000000000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e00000000000000000000000000000000000000000000000000000000000000000000000200005e0000005f00000000010000000100000000000000000000000000000000000000000000000000000000000000000000015e0000005f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015e0000006000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000061000000000000000000000000000000000000000000000000000000000000000000000002000061000000620000000001000000010000000000000000000000000000000000000000000000000000000000000000000001610000006200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001610000006300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000610000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064000000000000000000000000000000000000000000000000000000000000000000000002000064000000650000000001000000010000000000000000000000000000000000000000000000000000000000000000000001640000006500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006600000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001640000006600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000640000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000000000000000000000002000067000000680000000001000000010000000000000000000000000000000000000000000000000000000000000000000001670000006800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001670000006900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000670000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a00000000000000000000000000000000000000000000000000000000000000000000000200006a0000006b00000000010000000100000000000000000000000000000000000000000000000000000000000000000000016a0000006b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016a0000006c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006d00000000000000000000000000000000000000000000000000000000000000000000000200006d0000006e00000000010000000100000000000000000000000000000000000000000000000000000000000000000000016d0000006e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016d0000006f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006d000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000070000000000000000000000000000000000000000000000000000000000000000000000002000070000000710000000001000000010000000000000000000000000000000000000000000000000000000000000000000001700000007100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001700000007200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000700000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000172000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000073000000000000000000000000000000000000000000000000000000000000000000000002000073000000740000000001000000010000000000000000000000000000000000000000000000000000000000000000000001730000007400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001730000007500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000730000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000175000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000076000000000000000000000000000000000000000000000000000000000000000000000002000076000000770000000001000000010000000000000000000000000000000000000000000000000000000000000000000001760000007700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001760000007800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000760000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000178000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000790000000000000000000000000000000000000000000000000000000000000000000000020000790000007a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001790000007a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001790000007b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000079000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027d0000007c0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000017c0000007c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007c0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000017d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000007f0000007e00000000010b00010000007e000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000017f0000007f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007d00000000000000000000000000000000000000000000000000000000000000000000017e00000010000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a00000000000000000000000000000000000000000000000000000000000000000000017c00000000000000000000000000000000000000000000000000000000000000000000027d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028100000080000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001800000008000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008000000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000181000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000830000008200000000010b000100000082000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001830000008300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000083000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081000000000000000000000000000000000000000000000000000000000000000000000182000000100000000000000000000000000000000000000000000000000000000000000083000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e00000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000000000000000105000300000017000000fe0000007c000000fe00000080000000fe00000002000000840000008500000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028700000086000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000187000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000890000008800000000010b000100000088000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001890000008900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000089000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000087000000000000000000000000000000000000000000000000000000000000000000000188000000100000000000000000000000000000000000000000000000000000000000000089000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052000000000000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000000000000287000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028b0000008a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018a0000008a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000018b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000008d0000008c00000000010b00010000008c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018d0000008d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008b00000000000000000000000000000000000000000000000000000000000000000000018c00000010000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005600000000000000000000000000000000000000000000000000000000000000000000018a00000000000000000000000000000000000000000000000000000000000000000000028b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028f0000008e0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018e0000008e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000018f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000910000009000000000010b000100000090000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001910000009100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000091000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008f000000000000000000000000000000000000000000000000000000000000000000000190000000100000000000000000000000000000000000000000000000000000000000000091000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a00000000000000000000000000000000000000000000000000000000000000000000018e00000000000000000000000000000000000000000000000000000000000000000000028f00000000000000000000000000000000000000000000000000000000000000000000000105002f0000001a000000fe0000001b000000fe0000001c000000fe00000086000000fe0000008a000000fe0000008e000000fe00000020000000fe00000021000000fe00000022000000fe00000023000000fe00000024000000fe00000025000000fe00000026000000fe00000027000000fe00000028000000fe00000029000000fe0000002a000000fe0000002b000000fe0000002c000000fe0000002d000000fe0000002e000000fe0000002f000000fe00000030000000fe00000031000000fe00000032000000fe00000033000000fe00000034000000fe00000035000000fe00000036000000fe00000037000000fe00000038000000fe00000039000000fe0000003a000000fe0000003b000000fe0000003c000000fe0000003d000000fe0000003e000000fe0000003f000000fe00000040000000fe00000041000000fe00000042000000fe00000043000000fe00000044000000fe00000045000000fe00000046000000fe00000047000000fe00000048000000fe0000000200000092000000930000000105000300000016000000fe00000084000000fe00000092000000fe00000002000000940000009500000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000096000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000097000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000099000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a9000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000aa000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ab000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ac000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ad000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ae000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000af000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000019400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b9000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bb000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000be000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bf000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c40000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - } - ] -} diff --git a/yarn-project/noir-contracts/src/examples/parent_contract.json b/yarn-project/noir-contracts/src/examples/parent_contract.json new file mode 100644 index 00000000000..5e54e8db6fe --- /dev/null +++ b/yarn-project/noir-contracts/src/examples/parent_contract.json @@ -0,0 +1,39 @@ +{ + "name": "Parent", + "functions": [ + { + "name": "constructor", + "functionType": "Secret", + "parameters": [], + "returnTypes": [], + "bytecode": "0000000046000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000330000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000450000000000000000000000000000000000000000000000000000000000000000000000", + "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + }, + { + "name": "entryPoint", + "functionType": "Secret", + "parameters": [ + { + "name": "targetContract", + "type": { + "kind": "field" + }, + "visibility": "public" + }, + { + "name": "targetSelector", + "type": { + "kind": "field" + } + } + ], + "returnTypes": [ + { + "kind": "field" + } + ], + "bytecode": "00000000c5000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f00000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000af0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b0000000000000000000000000000000000000000000000000000000000000000000000070a00000000000000000001000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010033000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000ce0200009981a34a4d509103a454726170a453746f7081a34d6f769281a85265676973746572cd045581a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030363181a64f7261636c6595b363616c6c5072697661746546756e6374696f6e9a81b052656769737465724d656d496e64657881a85265676973746572cd043c81b052656769737465724d656d496e64657881a85265676973746572cd043d81b052656769737465724d656d496e64657881a85265676973746572cd043e81b052656769737465724d656d496e64657881a85265676973746572cd043f81b052656769737465724d656d496e64657881a85265676973746572cd044081b052656769737465724d656d496e64657881a85265676973746572cd044181b052656769737465724d656d496e64657881a85265676973746572cd044281b052656769737465724d656d496e64657881a85265676973746572cd044381b052656769737465724d656d496e64657881a85265676973746572cd044481b052656769737465724d656d496e64657881a85265676973746572cd0445909181a541727261799281a8436f6e7374616e74d94030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303631339081a34d6f769281a85265676973746572cd045581a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030363181a34d6f769281a852656769737465720081a85265676973746572cd0455a843616c6c4261636b81a9426f6f747374726170919acd043ccd043dcd043ecd043fcd0440cd0441cd0442cd0443cd0444cd0445010000000000000000000000000000000000000000000000000000000000000000000000000000000102010000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024a00000049000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001490000004900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000490000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004c0000004b00000000010b00010000004b000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014c0000004c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a00000000000000000000000000000000000000000000000000000000000000000000014b00000010000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001800000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e0000004d0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000004d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000500000004f00000000010b00010000004f000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001500000005000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e00000000000000000000000000000000000000000000000000000000000000000000014f000000100000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001900000000000000000000000000000000000000000000000000000000000000000000014d00000000000000000000000000000000000000000000000000000000000000000000024e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025200000051000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005100000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000152000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000540000005300000000010b000100000053000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001540000005400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000054000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052000000000000000000000000000000000000000000000000000000000000000000000153000000100000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d0000000000000000000000000000000000000000000000000000000000000000000001510000000000000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025600000055000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001550000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000580000005700000000010b000100000057000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001580000005800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000058000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000157000000100000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e0000000000000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000000000002560000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a00000059000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000590000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005c0000005b00000000010b00010000005b000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015c0000005c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a00000000000000000000000000000000000000000000000000000000000000000000015b00000010000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f00000000000000000000000000000000000000000000000000000000000000000000015900000000000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d00000000000000000000000000000000000000000000000000000000000000000000000200005d0000005e00000000010000000100000000000000000000000000000000000000000000000000000000000000000000015d0000005e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015d0000005f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000015f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060000000000000000000000000000000000000000000000000000000000000000000000002000060000000610000000001000000010000000000000000000000000000000000000000000000000000000000000000000001600000006100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001600000006200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000600000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000162000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000063000000000000000000000000000000000000000000000000000000000000000000000002000063000000640000000001000000010000000000000000000000000000000000000000000000000000000000000000000001630000006400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001630000006500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000630000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000165000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066000000000000000000000000000000000000000000000000000000000000000000000002000066000000670000000001000000010000000000000000000000000000000000000000000000000000000000000000000001660000006700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001660000006800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000660000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000168000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000690000000000000000000000000000000000000000000000000000000000000000000000020000690000006a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001690000006a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001690000006b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000069000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c00000000000000000000000000000000000000000000000000000000000000000000000200006c0000006d00000000010000000100000000000000000000000000000000000000000000000000000000000000000000016c0000006d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016c0000006e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f00000000000000000000000000000000000000000000000000000000000000000000000200006f0000007000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016f0000007000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000071000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016f0000007100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000171000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000072000000000000000000000000000000000000000000000000000000000000000000000002000072000000730000000001000000010000000000000000000000000000000000000000000000000000000000000000000001720000007300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007400000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001720000007400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000720000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000174000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000075000000000000000000000000000000000000000000000000000000000000000000000002000075000000760000000001000000010000000000000000000000000000000000000000000000000000000000000000000001750000007600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007700000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001750000007700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000750000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000177000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000078000000000000000000000000000000000000000000000000000000000000000000000002000078000000790000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000078000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027c0000007b0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000017b0000007b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000017c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000007e0000007d00000000010b00010000007d000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000017e0000007e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007c00000000000000000000000000000000000000000000000000000000000000000000017d00000010000000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004900000000000000000000000000000000000000000000000000000000000000000000017b00000000000000000000000000000000000000000000000000000000000000000000027c0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000007f0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000017f0000007f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007f00000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000820000008100000000010b000100000081000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001820000008200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000082000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000080000000000000000000000000000000000000000000000000000000000000000000000181000000100000000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d00000000000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000000000000105000300000017000000fe0000007b000000fe0000007f000000fe00000002000000830000008400000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028600000085000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001850000008500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000880000008700000000010b000100000087000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001880000008800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000088000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000086000000000000000000000000000000000000000000000000000000000000000000000187000000100000000000000000000000000000000000000000000000000000000000000088000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000185000000000000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028a00000089000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001890000008900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000890000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000018a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000008c0000008b00000000010b00010000008b000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018c0000008c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008a00000000000000000000000000000000000000000000000000000000000000000000018b00000010000000000000000000000000000000000000000000000000000000000000008c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005500000000000000000000000000000000000000000000000000000000000000000000018900000000000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028e0000008d0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018d0000008d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000900000008f00000000010b00010000008f000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008e00000000000000000000000000000000000000000000000000000000000000000000018f000000100000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005900000000000000000000000000000000000000000000000000000000000000000000018d00000000000000000000000000000000000000000000000000000000000000000000028e00000000000000000000000000000000000000000000000000000000000000000000000105002f0000001a000000fe0000001b000000fe0000001c000000fe00000085000000fe00000089000000fe0000008d000000fe00000020000000fe00000021000000fe00000022000000fe00000023000000fe00000024000000fe00000025000000fe00000026000000fe00000027000000fe00000028000000fe00000029000000fe0000002a000000fe0000002b000000fe0000002c000000fe0000002d000000fe0000002e000000fe0000002f000000fe00000030000000fe00000031000000fe00000032000000fe00000033000000fe00000034000000fe00000035000000fe00000036000000fe00000037000000fe00000038000000fe00000039000000fe0000003a000000fe0000003b000000fe0000003c000000fe0000003d000000fe0000003e000000fe0000003f000000fe00000040000000fe00000041000000fe00000042000000fe00000043000000fe00000044000000fe00000045000000fe00000046000000fe00000047000000fe00000048000000fe0000000200000091000000920000000105000300000016000000fe00000083000000fe00000091000000fe00000002000000930000009400000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000095000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000096000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000097000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000099000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a3000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a400000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a500000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a600000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a700000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000aa00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ab00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ac00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ad00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ae00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000af00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000019300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b400000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b500000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b600000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b700000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bb00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000be000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bf000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c40000000000000000000000000000000000000000000000000000000000000000000000", + "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + } + ] +} diff --git a/yarn-project/noir-contracts/src/examples/public_token_contract.json b/yarn-project/noir-contracts/src/examples/public_token_contract.json index 467373eab01..c2dd5954950 100644 --- a/yarn-project/noir-contracts/src/examples/public_token_contract.json +++ b/yarn-project/noir-contracts/src/examples/public_token_contract.json @@ -3,15 +3,15 @@ "functions": [ { "name": "constructor", - "functionType": "secret", + "functionType": "Secret", "parameters": [], "returnTypes": [], - "bytecode": "0000000047000000450000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000024000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000002f0000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000024000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f00000040000000410000004200000043000000440000004500000046000000340000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001120000001200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000460000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000100000080000000450000000b00000003515f311ae716440df683bd137f1040383d40d461ce3096b8d2dc939450e269c3d4b869163d6ed27c209d9a3bce7b192246691421b246b3cbd9c4508f8180a3bbeb9ded00000003515f322d2f45c327ce52225c9587019ae22f91988f4602924ddc95e7954497735792aa133af6f934329a4bc7e039da395fe8d8794a717d3677b6e60e8a31f929754dde00000003515f3307559496f599337256eeb6de5804d48c098a9f7ffb7e7ab9c6031abacd12de6b066d53769153efbf3aa63a2b4725a6185754493587f7098b038df06f24f5df1800000003515f3406c6fe5e29a8305722c3517529849e6984519dc2dd49e21bb6014ceb312de55d20369c38f53282f85cf0f893d2097b87554862da0ab9baf0ee961bcbb1df338f00000003515f3506c6fe5e29a8305722c3517529849e6984519dc2dd49e21bb6014ceb312de55d20369c38f53282f85cf0f893d2097b87554862da0ab9baf0ee961bcbb1df338f00000015515f41524954484d455449435f53454c4543544f521af27ddef3d792098231c60f8358dd238af932be71f7c2967c3afec1f2d397070186c31b65cb86906e662180afb141f12d3da4270e1ee5212b01bfe294c8d0a900000003515f4306c6fe5e29a8305722c3517529849e6984519dc2dd49e21bb6014ceb312de55d20369c38f53282f85cf0f893d2097b87554862da0ab9baf0ee961bcbb1df338f00000015515f46495845445f424153455f53454c4543544f5206c6fe5e29a8305722c3517529849e6984519dc2dd49e21bb6014ceb312de55d20369c38f53282f85cf0f893d2097b87554862da0ab9baf0ee961bcbb1df338f00000010515f4c4f4749435f53454c4543544f5206c6fe5e29a8305722c3517529849e6984519dc2dd49e21bb6014ceb312de55d20369c38f53282f85cf0f893d2097b87554862da0ab9baf0ee961bcbb1df338f00000003515f4d178e3af8dc4c90b30645872b38156a3db708a4f9b32d46b6d26f8ede969bd45d007a0dc182c0f8e2c616f265ee873f3d2fad59a1e7e90165eef5fc52ac56fe4d00000010515f52414e47455f53454c4543544f5206c6fe5e29a8305722c3517529849e6984519dc2dd49e21bb6014ceb312de55d20369c38f53282f85cf0f893d2097b87554862da0ab9baf0ee961bcbb1df338f00000004000000075349474d415f310fc892ee8a96d56d676f4a5fa6f4084689b70ed9593b76903ed5ba54a1aae605268d2b896f2739c4eb4dc055095bfaa24405ed9e49df93f9d38c4ed0054faeba000000075349474d415f3204bfd99aecf3533477fccea4ff476ed786192c39b725396acb2b9a36337697b501157a7d35900b78ba2f4f41fc4d1918c9cf45f64a90ffa16c9d14c225a88aad000000075349474d415f33028915eaf52731492b686af5679f36c86da1896ec14b16a70f594704ea2ba9012ef3fc71cbc34e862164f1e2bd36e964e06b3236322dff0821d3147bc344e05c000000075349474d415f340c8ed7d22ade1b15fe1f30db21fdbc5224ab08d60d5822c654fa00c66505be562daba06ac81e483a7eeb04fbe4b72fc25f6b155e278b7c7f70fba6db733d582d0000000000" + "bytecode": "0000000046000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f0000002000000021000000220000002300000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000330000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000450000000000000000000000000000000000000000000000000000000000000000000000", + "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { "name": "mint", - "functionType": "secret", + "functionType": "Secret", "parameters": [ { "name": "amount", @@ -42,13 +42,17 @@ } } ], - "returnTypes": [], - "bytecode": "00000000120000000a0000000100000002000000030000000400000005000000060000000700000008000000090000001100000001000000110000000a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b0000000000000000000000000000000000000000000000000000000000000000000001010500030000000a000000fe0000000b000000fe00000008000000fe000000020000000c0000000d000000060b00000073746f726167655265616401000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c0000000000000000000000000000000000000000000000000000000000000000000000010000000e000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010700000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000100000000000000000000000000000000000000000000000000000000000000000000000060c00000073746f72616765577269746502000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000010000000f000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000110000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "00000001000004000000000a0000000b00000003515f310374bbf5b43a03b48922d62245320a43441dcd8424b6e4bf2180bff132bf7bdb10eae515cef82a7626b94c735cb86a6d6dd36bfc6f2b3e25edac28b831fae31800000003515f320543ad942c79b314db66ea49faf38446e075563ceb80f1156caf5801c630d7dd223f45698497f567554275eae089acc9e787e745684610b204eea471027eb59100000003515f331abc17543581cf3f470817b3a2771b7fa0442e25ee6dda55117887fe58e57e8a0494ce23ef8e6cf9f68a41b291abbe1c5e4eda87711b256fe4f564fb8e1b93e100000003515f340e66b39b3b6cfaa9bd77384e0a9c0715f8e9920709929793ab215a9e62a3efd90e310370c689bc84a280472b8fbe197c45bcbfeab082362dd4ccec2c0e0b89d600000003515f352c08da6a5ab7af4d5cd7095c326de437088fef632e07d937f96b7df70edef45e06115f9b76a4e51e5d45f5584b2173348d2a9e084c90aacb07d94b246673129300000015515f41524954484d455449435f53454c4543544f520dc77429255d03e26c6cf322834a5363babe1d93a5f4f0224933d4eb43c2472513ad270efcf1fc95d15ffd9b2bad3c210981d3630ca3ecf67f02019e3c37590700000003515f4329578fcba91f428856ba789fa9b4afa69b58d93e9bf1b12389e89a545cb505970cf35c2a979c9e907b5e9c899ab6f89f9abce17b4acf609e5ec143103c2a744000000015515f46495845445f424153455f53454c4543544f5229a5cfeb63fcdf5c1f681b6f438b75fc796ce387220db0fc764c35fe26fa5a422499dd311b0f0d11429756775a5d29f0de003d22ec7479e880f48df96474c40100000010515f4c4f4749435f53454c4543544f521f0d45b48aee001185bd19a2640b398dd67c2c12dc4ac463e5eb33854b4f4a6f009f88dc6486f21e276db51085dcb6fead4408ee3009ae1774c04c3c054ed05200000003515f4d1599017f445d8ddc69951c7318afd665b258e1992296d47d2f91b2ffa996d0aa2c30a47e64246feb6f67e8a73ca3f7ee319610fe47f2c01b61142e36f4c07cdb00000010515f52414e47455f53454c4543544f52256b93a016c27d08f3389bc8bbf8ec448fe169a32c324251e77586166dfa7d8b15f2a5009f69a660541df660717220c093536a467af3b35534745ec514a741fe00000004000000075349474d415f31151e55e807aefbe0ba6e5ca55214ecd78d1e66417d3cd5bd20808a6fd146d9320f03d982ae8e8570e5b37a4378bd924a84db54d0f178ce115929083d96c16419000000075349474d415f321b502b223f3843b2276410230827bb01ab4a486a3ab98b45a9a4640ee62932560e5de170a0e411b054743e5cc1e7c544653e01ec795600fa0b8de832bb1ac5a7000000075349474d415f3301e4799176cd85f9f430afacfc5ca9acc56d5e20ab9e7dd55a44f75047d2a6a321d47f09e5cf3de613ba28e7c3f2274caa1cbf496827b980369f81c8b32324b1000000075349474d415f340a09e0cfea8d4573f0888519e834bff0c98908c31bf39a05002f674fefa7e588054b7df393ed848e1e24c6c2084db33c6b5e47732c27c60b263295f3edae3bc60000000000" + "returnTypes": [ + { + "kind": "field" + } + ], + "bytecode": "0000000011000000090000000100000002000000030000000400000005000000060000000700000008000000090000000100000010000000090000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b0000000000000000000000000000000000000000000000000000000000000000000001010500030000000a000000fe0000000b000000fe00000008000000fe000000020000000c0000000d00000007010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c00000000000000000000000000000000000000000000000000000000000000000000000100000000000e0000008b0000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ab73746f72616765526561649181b052656769737465724d656d496e64657881a8526567697374657245909181ad5265676973746572496e646578499081a34d6f769281a852656769737465720081a8526567697374657249a843616c6c4261636b81a9426f6f747374726170919145010000000000000000000000000000000000000000000000000000000000000000000000000000000107020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c00000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000000000000000000000000000000000000000000000000000000000000000000010e00000000000000000000000000000000000000000000000000000000000000000000000100000000000f000000aa0000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac73746f7261676557726974659281b052656769737465724d656d496e64657881a852656769737465723a81b052656769737465724d656d496e64657881a852656769737465723b909181ad5265676973746572496e646578409081a34d6f769281a852656769737465720081a8526567697374657240a843616c6c4261636b81a9426f6f74737472617091923a3b010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000100000000000000000000000000000000000000000000000000000000000000000000000", + "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { "name": "transfer", - "functionType": "secret", + "functionType": "Secret", "parameters": [ { "name": "amount", @@ -79,9 +83,13 @@ } } ], - "returnTypes": [], - "bytecode": "00000000260000000a000000010000000200000003000000040000000500000006000000070000000800000009000000210000000100000021000000270000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b0000000000000000000000000000000000000000000000000000000000000000000001010500030000000a000000fe0000000b000000fe00000004000000fe000000020000000c0000000d000000010500030000000a000000fe0000000b000000fe00000008000000fe000000020000000e0000000f000000060b00000073746f726167655265616401000000000000000100000000000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000000000000000000000000000000000000000000000000001000000100000000000000000000000060b00000073746f726167655265616401000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c0000000000000000000000000000000000000000000000000000000000000000000000010000001100000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000130000001200000000010b0001000000120000007800000000000000010b000100000013000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001100000000000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000010000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000150000001400000000010b0001000000140000007800000000000000010b000100000015000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000700000000000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000010000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000112000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000170000001600000000010b0001000000160000007800000000000000010b000100000017000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001200000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000010000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000190000001800000000010b0001000000180000007800000000000000010b000100000019000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000014000000000000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000100000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000000000000000000000000000000000123000000000000000000000000000000000000000100000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2733e84879b9709143e1f593f00000011a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000230000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000160000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001a0000001b00000000010b00010000001b000000780000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011a0000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000700000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d0000000000000000000000000000000000000000000000000000000000000000000000060c00000073746f72616765577269746502000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d0000000000000000000000000000000000000000000000000000000000000000000000010000001c000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010700000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f0000000000000000000000000000000000000000000000000000000000000000000000060c00000073746f72616765577269746502000000000000000100000000000000000000000000000000000000000000000000000000000000000000010e0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011f0000000000000000000000000000000000000000000000000000000000000000000000010000001e00000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001100000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a0000001e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000126000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012400000000000000000000000000000000000000000000000000000000000000000000012500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000210000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "00000001000008000000000a0000000b00000003515f311ac1d4bd0427b16f8e87e8faa6faef64eca416e1fe08a794171f56f6f0c280f60d0e5cc82ddc6d7735b9d475ef58d0a38846898d3d801dd959e81693b3f3f05300000003515f3224b4ee9b017ae8f9b8431f56f9747c8b7d4d579109e43ab47b8d40abbb072f5e0e63775e8e43f76a35bd50c15d302bd3235735bd39a29f56cd42a994176dd09e00000003515f332ac00e64ab6a1ef51079c6188dfe436264644732d7a04f396bf5722a6fc032d01d6e52107760147796b6645f7db66b20ffd2867608d9411f92992b73d862a24100000003515f34260aca84431845097defe5d2036b9d366027ecccbf434e87f55d7a41458ee38f01a2dc51599418a30ecd91820a075c7f71e923bf95bad9ea5b1577f62e80f33d00000003515f3500acb85932bb21441281fe0871e079000006b1644b0d5668cfe96193bdf6ae072c7069f597790e761a449ff908dbac731c5290823058a37f963c5de662bcbbd200000015515f41524954484d455449435f53454c4543544f52036ffd5c1c7b28e7cbd2241f70441a00b02cc429da39dd5fca1d8c675d51c69b2b011bf1fa776237a16d42e9f1a6baa05c8a7f9037fda00a441dccfd8af0048b00000003515f432c4fd75d781f8bbc8ce69af4cb42a62f4f37921af494aee25bc9af843fdc36ea1c7955c8a704ee4de64e08f48f37c41ab37b7c439b6844e5c4bb8c2ffc3b09fb00000015515f46495845445f424153455f53454c4543544f5219a40aa92794353913117e4ee454019b032308b3dddc079358b0eeb02b39f49e21697e1ffa796e5ddf18a2567c80cc84035d896c9b587155d73759abb3bfb42e00000010515f4c4f4749435f53454c4543544f521e0744e5b0a82f595892c353ee228e4dd4b660e1e9a8fdcb209bd48dff68675e0526cc25b500ee6440dfca3b2d823a1636c094e0673d91b1fb730cf9d8c88b9f00000003515f4d158024e10033e1b19afcdc7264209e151ba490489c3805ab659dfaa3505aa250191c4dcd9eab64c96b82f39f0e2a38c8d6fad18e3e6e0f9a181375e3542ca26600000010515f52414e47455f53454c4543544f52204193840f2c9a6822a5917d57758357f70c4b6a2fbc45b84ed402ff77ab3a431a9a64cab33c009556aafb9e667812ee886a134dfab42cf42092125b13d2b54200000004000000075349474d415f3108d33ac0b7a697cf1da74d49ac6546a758886b58e6115ce098502e00cad7e79c04ec74ea575b2ace02e4a433d58aaac7bd2842fa85946d3f4277524dacf2ba94000000075349474d415f3213091162375c7c6b2a5b341ba853f00e79751000fc88022ed0cd889d0b9ad09904644a5ece9c0f0989e634fd99afa56d3a0f424c5a2bdf78a27bde2159e122ba000000075349474d415f331e980c7da1addd31a38b88d45942474693f9e6400c7716b5a4a5f31477b5f2601bef093c8ada012ecb951b2da9a3195bf6fa9da250ebccb387130af685bd32e7000000075349474d415f340752dd026559dafe148fe504430e61b5ff8283ba089f1ed0f5bda72d0041b4fc238d41b49ed7c4c35270281378495fd62e1864f410d9c733f622e9c5814f74de0000000000" + "returnTypes": [ + { + "kind": "field" + } + ], + "bytecode": "000000002400000009000000010000000200000003000000040000000500000006000000070000000800000009000000010000001f000000250000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b0000000000000000000000000000000000000000000000000000000000000000000001010500030000000a000000fe0000000b000000fe00000004000000fe000000020000000c0000000d000000010500030000000a000000fe0000000b000000fe00000008000000fe000000020000000e0000000f00000007010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c0000000000000000000000000000000000000000000000000000000000000000000000010000000000100000008b0000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ab73746f72616765526561649181b052656769737465724d656d496e64657881a8526567697374657245909181ad5265676973746572496e646578499081a34d6f769281a852656769737465720081a8526567697374657249a843616c6c4261636b81a9426f6f747374726170919145010000000000000000000000000000000000000000000000000000000000000000000000000000000107010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010e0000000000000000000000000000000000000000000000000000000000000000000000010000000000110000008b0000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ab73746f72616765526561649181b052656769737465724d656d496e64657881a8526567697374657245909181ad5265676973746572496e646578499081a34d6f769281a852656769737465720081a8526567697374657249a843616c6c4261636b81a9426f6f74737472617091914501000000000000000000000000000000000000000000000000000000000000000000000000000000010201000000000001000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000130000001200000000010b0001000000120000007800000000000000010b000100000013000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001000000000000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000010000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000150000001400000000010b0001000000140000007800000000000000010b000100000015000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000700000000000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000010000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000112000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000170000001600000000010b0001000000160000007800000000000000010b000100000017000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001200000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000010000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000190000001800000000010b0001000000180000007800000000000000010b000100000019000000860000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000014000000000000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000100000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000100000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2733e84879b9709143e1f593f00000011a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000210000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000160000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000001a0000001b00000000010b00010000001b000000780000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011a0000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010c00000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000700000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000100000000001c000000aa0000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac73746f7261676557726974659281b052656769737465724d656d496e64657881a852656769737465725d81b052656769737465724d656d496e64657881a852656769737465725e909181ad5265676973746572496e646578639081a34d6f769281a852656769737465720081a8526567697374657263a843616c6c4261636b81a9426f6f74737472617091925d5e01000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000107020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010e00000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000100000000001d000000aa0000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac73746f7261676557726974659281b052656769737465724d656d496e64657881a852656769737465725d81b052656769737465724d656d496e64657881a852656769737465725e909181ad5265676973746572496e646578639081a34d6f769281a852656769737465720081a8526567697374657263a843616c6c4261636b81a9426f6f74737472617091925d5e01000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a00000000000000000000000000000000000000000000000000000000000000000000010001000000010000000000000000000000000000000000000000000000000000000000000000000001110000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a0000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000124000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012200000000000000000000000000000000000000000000000000000000000000000000012300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f0000000000000000000000000000000000000000000000000000000000000000000000", + "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" } ] } diff --git a/yarn-project/noir-contracts/src/examples/test_contract.json b/yarn-project/noir-contracts/src/examples/test_contract.json index e3355683ada..03aa4ee4f6a 100644 --- a/yarn-project/noir-contracts/src/examples/test_contract.json +++ b/yarn-project/noir-contracts/src/examples/test_contract.json @@ -1,12 +1,12 @@ { - "name": "TestContract", + "name": "Test", "functions": [ { "name": "constructor", - "functionType": "secret", + "functionType": "Secret", "parameters": [], "returnTypes": [], - "bytecode": "0000000056000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003000000031000000320000003300000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f0000005000000051000000520000005300000054000000550000002f000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003000000031000000320000003300000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000530000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000002000001000000160000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000001600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000001700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000010000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000117000000000000000000000000000000000000000000000000000000000000000000000002000002000000180000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000001800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000001900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001190000000000000000000000000000000000000000000000000000000000000000000000020000030000001a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b0000000000000000000000000000000000000000000000000000000000000000000000020000040000001c0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001040000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001040000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d0000000000000000000000000000000000000000000000000000000000000000000000020000050000001e0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001050000001e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001050000001f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000005000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011f000000000000000000000000000000000000000000000000000000000000000000000002000006000000200000000001000000010000000000000000000000000000000000000000000000000000000000000000000001060000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001060000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000060000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000000000000000000000000000000000002000007000000220000000001000000010000000000000000000000000000000000000000000000000000000000000000000001070000002200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001070000002300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000070000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000123000000000000000000000000000000000000000000000000000000000000000000000002000008000000240000000001000000010000000000000000000000000000000000000000000000000000000000000000000001080000002400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001080000002500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000125000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000053000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000054000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000550000000000000000000000000000000000000000000000000000000000000000000000", + "bytecode": "0000000056000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003000000031000000320000003300000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000530000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000002000001000000160000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000001600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000001700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000010000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000117000000000000000000000000000000000000000000000000000000000000000000000002000002000000180000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000001800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000001900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001190000000000000000000000000000000000000000000000000000000000000000000000020000030000001a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b0000000000000000000000000000000000000000000000000000000000000000000000020000040000001c0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001040000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001040000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d0000000000000000000000000000000000000000000000000000000000000000000000020000050000001e0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001050000001e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001050000001f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000005000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011f000000000000000000000000000000000000000000000000000000000000000000000002000006000000200000000001000000010000000000000000000000000000000000000000000000000000000000000000000001060000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001060000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000060000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000000000000000000000000000000000002000007000000220000000001000000010000000000000000000000000000000000000000000000000000000000000000000001070000002200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001070000002300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000070000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000123000000000000000000000000000000000000000000000000000000000000000000000002000008000000240000000001000000010000000000000000000000000000000000000000000000000000000000000000000001080000002400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001080000002500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000125000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000053000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000054000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000550000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" } ] diff --git a/yarn-project/noir-contracts/src/examples/zk_token_contract.json b/yarn-project/noir-contracts/src/examples/zk_token_contract.json index 1188b454db6..7e4eb509814 100644 --- a/yarn-project/noir-contracts/src/examples/zk_token_contract.json +++ b/yarn-project/noir-contracts/src/examples/zk_token_contract.json @@ -1,9 +1,9 @@ { - "name": "PrivateToken", + "name": "ZkToken", "functions": [ { "name": "constructor", - "functionType": "secret", + "functionType": "Secret", "parameters": [ { "name": "value", @@ -34,14 +34,13 @@ "visibility": "public" } ], - "returnType": [], - "returnWitnesses": [15, 15, 15, 15], - "bytecode": "0000000052000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000010000000110000001200000013000000140000001500000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f00000050000000510000002f00000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f00000050000000510000003f0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000002000000fe000000020000001800000019000000060e00000067657452616e646f6d4669656c640100000000000000010000000000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000000000000000000000000000000000010000001a000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000200000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c0000000000000000000000000000000000000000000000000000000000000000000003010500070000001b000000fe00000017000000fe0000001c000000fe00000002000000fe00000003000000fe0000001a000000fe00000001000000fe000000020000001d0000001e00000006110000006e6f74696679437265617465644e6f74650900000000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000103000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001030000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000010000001f00000000000000000000000200001f0000002000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000510000000000000000000000000000000000000000000000000000000000000000000000", + "returnTypes": [], + "bytecode": "0000000052000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f00000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f00000050000000510000003f0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000002000000fe00000002000000180000001900000007000000000100000000001a000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd042b9081a34d6f769281a852656769737465720081a85265676973746572cd042ba843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000200000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c0000000000000000000000000000000000000000000000000000000000000000000003010500070000001b000000fe00000017000000fe0000001c000000fe00000002000000fe00000003000000fe0000001a000000fe00000001000000fe000000020000001d0000001e00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000100000000001f000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd091781b052656769737465724d656d496e64657881a85265676973746572cd091881b052656769737465724d656d496e64657881a85265676973746572cd091981b052656769737465724d656d496e64657881a85265676973746572cd091a81b052656769737465724d656d496e64657881a85265676973746572cd091b81b052656769737465724d656d496e64657881a85265676973746572cd091c81b052656769737465724d656d496e64657881a85265676973746572cd091d81b052656769737465724d656d496e64657881a85265676973746572cd091e81b052656769737465724d656d496e64657881a85265676973746572cd091f909181ad5265676973746572496e646578cd092b9081a34d6f769281a852656769737465720081a85265676973746572cd092ba843616c6c4261636b81a9426f6f7473747261709199cd0917cd0918cd0919cd091acd091bcd091ccd091dcd091ecd091f01000000000000000000000000000000000000000000000000000000000000000000000000000000010200001f0000002000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000510000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { "name": "mint", - "functionType": "secret", + "functionType": "Secret", "parameters": [ { "name": "value", @@ -72,13 +71,13 @@ "visibility": "public" } ], - "returnType": [], - "bytecode": "0000000052000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000010000000110000001200000013000000140000001500000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f00000050000000510000002f00000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f00000050000000510000003f0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000002000000fe000000020000001800000019000000060e00000067657452616e646f6d4669656c640100000000000000010000000000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000000000000000000000000000000000010000001a000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000200000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c0000000000000000000000000000000000000000000000000000000000000000000003010500070000001b000000fe00000017000000fe0000001c000000fe00000002000000fe00000003000000fe0000001a000000fe00000001000000fe000000020000001d0000001e00000006110000006e6f74696679437265617465644e6f74650900000000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000103000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001030000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000010000001f00000000000000000000000200001f0000002000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000510000000000000000000000000000000000000000000000000000000000000000000000", + "returnTypes": [], + "bytecode": "0000000052000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f00000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f00000050000000510000003f0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000002000000fe00000002000000180000001900000007000000000100000000001a000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd042b9081a34d6f769281a852656769737465720081a85265676973746572cd042ba843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000200000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c0000000000000000000000000000000000000000000000000000000000000000000003010500070000001b000000fe00000017000000fe0000001c000000fe00000002000000fe00000003000000fe0000001a000000fe00000001000000fe000000020000001d0000001e00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000100000000001f000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd091781b052656769737465724d656d496e64657881a85265676973746572cd091881b052656769737465724d656d496e64657881a85265676973746572cd091981b052656769737465724d656d496e64657881a85265676973746572cd091a81b052656769737465724d656d496e64657881a85265676973746572cd091b81b052656769737465724d656d496e64657881a85265676973746572cd091c81b052656769737465724d656d496e64657881a85265676973746572cd091d81b052656769737465724d656d496e64657881a85265676973746572cd091e81b052656769737465724d656d496e64657881a85265676973746572cd091f909181ad5265676973746572496e646578cd092b9081a34d6f769281a852656769737465720081a85265676973746572cd092ba843616c6c4261636b81a9426f6f7473747261709199cd0917cd0918cd0919cd091acd091bcd091ccd091dcd091ecd091f01000000000000000000000000000000000000000000000000000000000000000000000000000000010200001f0000002000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000002100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000121000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000510000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { "name": "transfer", - "functionType": "secret", + "functionType": "Secret", "parameters": [ { "name": "amount", @@ -130,10 +129,8 @@ } } ], - "paramWitnesses": {}, "returnTypes": [], - "returnWitnesses": [], - "bytecode": "00000000dd000000440000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d90000002f000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000ee0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000002000000fe00000002000000180000001900000006090000006765744e6f7465733202000000000000000100000000000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000200000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023b0000003a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013a0000003a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003d0000003c00000000010b00010000003c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013d0000003d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b00000000000000000000000000000000000000000000000000000000000000000000013c00000010000000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a00000000000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000000000023b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000012a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023f0000003e0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013e0000003e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000410000004000000000010b000100000040000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001410000004100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000140000000100000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a00000000000000000000000000000000000000000000000000000000000000000000013e00000000000000000000000000000000000000000000000000000000000000000000023f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001500000000000000000000000000000000000000000000000000000000000000000000012900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000002000042000000430000000001000000010000000000000000000000000000000000000000000000000000000000000000000001420000004300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004400000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001420000004400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000420000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000144000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001500000000000000000000000000000000000000000000000000000000000000000000013900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000002000045000000460000000001000000010000000000000000000000000000000000000000000000000000000000000000000001450000004600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004700000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001450000004700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004500000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001470000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024900000048000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001480000004800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001490000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004b0000004a00000000010b00010000004a000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000004b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004900000000000000000000000000000000000000000000000000000000000000000000014a00000010000000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a0000000000000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000000000002490000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024d0000004c0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014c0000004c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004f0000004e00000000010b00010000004e000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014f0000004f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d00000000000000000000000000000000000000000000000000000000000000000000014e00000010000000000000000000000000000000000000000000000000000000000000004f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e00000000000000000000000000000000000000000000000000000000000000000000014c00000000000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000002000050000000510000000001000000010000000000000000000000000000000000000000000000000000000000000000000001500000005100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001500000005200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014800000052000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000053000000000000000000000000000000000000000000000000000000000000000000000002000053000000540000000001000000010000000000000000000000000000000000000000000000000000000000000000000001530000005400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001530000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005300000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001480000005500000000000000000000000000000000000000000000000000000000000000000000000200001f0000005600000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000005600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011f0000005700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004800000057000000000000000000000000000000000000000000000000000000000000000000000157000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000058000000000000000000000000000000000000000000000000000000000000000000000002000058000000590000000001000000010000000000000000000000000000000000000000000000000000000000000000000001580000005900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001580000005a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000058000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014c0000005a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b00000000000000000000000000000000000000000000000000000000000000000000000200005b0000005c00000000010000000100000000000000000000000000000000000000000000000000000000000000000000015b0000005c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015b0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014c0000005d00000000000000000000000000000000000000000000000000000000000000000000000200002f0000005e00000000010000000100000000000000000000000000000000000000000000000000000000000000000000012f0000005e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000012f0000005f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c0000005f00000000000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000011f00000000000000000000000000000000000000000000000000000000000000000000012f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000610000006000000000010b0001000000600000004000000000000000010b000100000061000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f0000000000000000000000000000000000000000000000000000000000000000000001db000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000100000000000000006100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000db00000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000630000006200000000010b0001000000620000004000000000000000010b000100000063000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000016200000000000000000000000000000000000000000000000000000100000000000000006300000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000650000006400000000010b0001000000640000004000000000000000010b000100000065000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006000000000000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000100000000000000006500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000162000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000670000006600000000010b0001000000660000004000000000000000010b000100000067000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000062000000000000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000001000000000000000067000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000660000000000000000000000000000000000000000000000000000000000000000000001dc000000000000000000000000000000000000000000000000000001000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000016800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dc0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000016400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000680000006900000000010b00010000006900000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001680000006800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000068000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000068000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a0000000000000000000000000000000000000000000000000000000000000000000002010500070000006a000000fe00000048000000fe0000001b000000fe0000001c000000fe0000001d000000fe0000001e000000fe0000001f000000fe000000020000006b0000006c00000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006d0000000000000000000000000000000000000000000000000000000000000000000003010500040000006d000000fe0000006b000000fe00000018000000fe0000000e000000fe000000020000006e0000006f000000060c0000006765745365637265744b657902000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000000100000070000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007100000000000000000000000000000000000000000000000000000000000000000000050001000000010000000000000000000000000000000000000000000000000000000000000000000001480000007000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007200000000000000000000000000000000000000000000000000000000000000000000000105000300000071000000fe0000006e000000fe00000072000000fe0000000200000073000000740000000001000000010000000000000000000000000000000000000000000000000000000000000000000001480000007000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007500000000000000000000000000000000000000000000000000000000000000000000000105000300000071000000fe0000006b000000fe00000075000000fe00000002000000760000007700000006130000006e6f746966794e756c6c69666965644e6f746508000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011e0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011f00000000000000000000000000000000000000000000000000000000000000000000000100000078000000000000000000000002000078000000790000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000078000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017a0000000000000000000000000000000000000000000000000000000000000000000000010500070000006a000000fe0000004c000000fe0000002b000000fe0000002c000000fe0000002d000000fe0000002e000000fe0000002f000000fe000000020000007b0000007c000000010500040000006d000000fe0000007b000000fe00000018000000fe0000000e000000fe000000020000007d0000007e000000060c0000006765745365637265744b657902000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d0000000000000000000000000000000000000000000000000000000000000000000000010000007f000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014c0000007f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008000000000000000000000000000000000000000000000000000000000000000000000000105000300000071000000fe0000007d000000fe00000080000000fe00000002000000810000008200000000010000000100000000000000000000000000000000000000000000000000000000000000000000014c0000007f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008300000000000000000000000000000000000000000000000000000000000000000000000105000300000071000000fe0000007b000000fe00000083000000fe00000002000000840000008500000006130000006e6f746966794e756c6c69666965644e6f7465080000000000000001000000000000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001840000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014c0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012e0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012f00000000000000000000000000000000000000000000000000000000000000000000000100000086000000000000000000000002000086000000870000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008600000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000000000000060e00000067657452616e646f6d4669656c64010000000000000001000000000000000000000000000000000000000000000000000000000000000000000117000000000000000000000000000000000000000000000000000000000000000000000001000000890000000000000000000000060e00000067657452616e646f6d4669656c6401000000000000000100000000000000000000000000000000000000000000000000000000000000000000016a0000000000000000000000000000000000000000000000000000000000000000000000010000008a00000000000000000000000105000300000016000000fe00000017000000fe00000004000000fe000000020000008b0000008c000000010500070000006a000000fe00000017000000fe0000006d000000fe00000004000000fe00000005000000fe00000089000000fe00000001000000fe000000020000008d0000008e00000006110000006e6f74696679437265617465644e6f746509000000000000000100000000000000000000000000000000000000000000000000000000000000000000018b0000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000105000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010500000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001010000000000000000000000000000000000000000000000000000000000000000000000010000008f00000000000000000000000200008f0000009000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018f0000009000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000091000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018f0000009100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008f0000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000191000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000093000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000920000009300000000010b00010000009300000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001920000009200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000095000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000940000009500000000010b00010000009500000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001940000009400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000097000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000960000009700000000010b00010000009700000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001960000009600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000099000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000980000009900000000010b00010000009900000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001980000009800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009b000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc000000000000000000000000000000000000000000000000000000000000000100000000000000009a0000009b00000000010b00010000009b000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019a0000009a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009d000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc000000000000000000000000000000000000000000000000000000000000000100000000000000009c0000009d00000000010b00010000009d000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019c0000009c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009f000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc000000000000000000000000000000000000000000000000000000000000000100000000000000009e0000009f00000000010b00010000009f000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019e0000009e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000011f0000000000000000000000000000000000000000000000000000000000000000000001dd000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dd0000000000000000000000000000000000000000000000000000000000000000000000010500070000006a000000fe00000017000000fe0000006d000000fe00000002000000fe00000003000000fe0000008a000000fe000000a0000000fe00000002000000a1000000a200000006110000006e6f74696679437265617465644e6f74650900000000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000103000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016d00000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001030000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000001000000a30000000000000000000000020000a3000000a40000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a3000000a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a3000000a500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a300000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001a600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a7000000000000000000000000000000000000000000000000000000fffffffffffffffd0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffd00000000000000000000000000000000000000000000000000000000000000010000000000000000a6000000a700000000010b0001000000a700000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a6000000a600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a9000000000000000000000000000000000000000000000000000000fffffffffffffffd0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffd00000000000000000000000000000000000000000000000000000000000000010000000000000000a8000000a900000000010b0001000000a900000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a8000000a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000aa000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ab000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ac000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ad000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ae000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000af000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b9000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bb00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000be00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bf00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c300000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c600000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c700000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ca00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cb00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cc00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cd00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ce00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cf00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d90000000000000000000000000000000000000000000000000000000000000000000000", + "bytecode": "00000000e0000000150000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000001300000014000000150000002f000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000f00000000001000000010000000000000000000000000000000000000000000000000000000000000000000001090000000900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010a0000000a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000010b0000000b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000016000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001700000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000002000000fe0000000200000018000000190000000701000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000010000000100210000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a000000920100009981a34a4d509103a454726170a453746f7081a34d6f769281a85265676973746572cd049b81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030363381a64f7261636c6595a96765744e6f746573329181b052656769737465724d656d496e64657881a85265676973746572cd0494909181a541727261799281a8436f6e7374616e74d94030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303633219081a34d6f769281a85265676973746572cd049b81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030363381a34d6f769281a852656769737465720081a85265676973746572cd049ba843616c6c4261636b81a9426f6f7473747261709191cd04940100000000000000000000000000000000000000000000000000000000000000000000000000000001020100000000000100000000000000000000000000000000000000000000000000000000000000000000011b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023c0000003b0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013b0000003b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003e0000003d00000000010b00010000003d000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013e0000003e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c00000000000000000000000000000000000000000000000000000000000000000000013d00000010000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000000000000000000000000000000000000000000000000000000000000000000013b00000000000000000000000000000000000000000000000000000000000000000000023c0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000012b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000003f0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013f0000003f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f00000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000420000004100000000010b000100000041000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001420000004200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000141000000100000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b00000000000000000000000000000000000000000000000000000000000000000000013f000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001500000000000000000000000000000000000000000000000000000000000000000000012a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000002000043000000440000000001000000010000000000000000000000000000000000000000000000000000000000000000000001430000004400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001430000004500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000430000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000145000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001500000000000000000000000000000000000000000000000000000000000000000000013a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000002000046000000470000000001000000010000000000000000000000000000000000000000000000000000000000000000000001460000004700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001460000004800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024a00000049000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001490000004900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000490000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004c0000004b00000000010b00010000004b000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014c0000004c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a00000000000000000000000000000000000000000000000000000000000000000000014b00000010000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b00000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000024a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e0000004d0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000004d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000500000004f00000000010b00010000004f000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001500000005000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e00000000000000000000000000000000000000000000000000000000000000000000014f000000100000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f00000000000000000000000000000000000000000000000000000000000000000000014d00000000000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000002000051000000520000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014900000053000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000054000000000000000000000000000000000000000000000000000000000000000000000002000054000000550000000001000000010000000000000000000000000000000000000000000000000000000000000000000001540000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005600000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001540000005600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000054000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014900000056000000000000000000000000000000000000000000000000000000000000000000000002000020000000570000000001000000010000000000000000000000000000000000000000000000000000000000000000000001200000005700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001200000005800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004900000058000000000000000000000000000000000000000000000000000000000000000000000158000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000590000000000000000000000000000000000000000000000000000000000000000000000020000590000005a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014d0000005b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c00000000000000000000000000000000000000000000000000000000000000000000000200005c0000005d00000000010000000100000000000000000000000000000000000000000000000000000000000000000000015c0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015c0000005e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014d0000005e0000000000000000000000000000000000000000000000000000000000000000000000020000300000005f0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001300000005f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001300000006000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d0000006000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000201000000000002000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000620000006100000000010b0001000000610000004000000000000000010b000100000062000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000300000000000000000000000000000000000000000000000000000000000000000000001de000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000100000000000000006200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000de00000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000640000006300000000010b0001000000630000004000000000000000010b000100000064000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000016300000000000000000000000000000000000000000000000000000100000000000000006400000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000660000006500000000010b0001000000650000004000000000000000010b000100000066000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006100000000000000000000000000000000000000000000000000000000000000000000016500000000000000000000000000000000000000000000000000000100000000000000006600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000680000006700000000010b0001000000670000004000000000000000010b000100000068000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000063000000000000000000000000000000000000000000000000000000000000000000000167000000000000000000000000000000000000000000000000000001000000000000000068000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000670000000000000000000000000000000000000000000000000000000000000000000001df000000000000000000000000000000000000000000000000000001000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000016900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000df0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000016500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000690000006a00000000010b00010000006a00000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001690000006900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000069000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000069000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b0000000000000000000000000000000000000000000000000000000000000000000002010500070000006b000000fe00000049000000fe0000001c000000fe0000001d000000fe0000001e000000fe0000001f000000fe00000020000000fe000000020000006c0000006d00000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006e0000000000000000000000000000000000000000000000000000000000000000000003010500040000006e000000fe0000006c000000fe00000018000000fe0000000e000000fe000000020000006f0000007000000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011e000000000000000000000000000000000000000000000000000000000000000000000001000000000071000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd09d081b052656769737465724d656d496e64657881a85265676973746572cd09d1909181ad5265676973746572496e646578cd09d69081a34d6f769281a852656769737465720081a85265676973746572cd09d6a843616c6c4261636b81a9426f6f7473747261709192cd09d0cd09d1010000000001000000000000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007200000000000000000000000000000000000000000000000000000000000000000000050001000000010000000000000000000000000000000000000000000000000000000000000000000001490000007100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007300000000000000000000000000000000000000000000000000000000000000000000000105000300000072000000fe0000006f000000fe00000073000000fe00000002000000740000007500000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011e000000000000000000000000000000000000000000000000000000000000000000000001000000000076000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd09d081b052656769737465724d656d496e64657881a85265676973746572cd09d1909181ad5265676973746572496e646578cd09d69081a34d6f769281a852656769737465720081a85265676973746572cd09d6a843616c6c4261636b81a9426f6f7473747261709192cd09d0cd09d101000000000100000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001490000007600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007700000000000000000000000000000000000000000000000000000000000000000000000105000300000072000000fe0000006c000000fe00000077000000fe00000002000000780000007900000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011e00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011f00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000100000000007a000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd0a0e81b052656769737465724d656d496e64657881a85265676973746572cd0a0f81b052656769737465724d656d496e64657881a85265676973746572cd0a1081b052656769737465724d656d496e64657881a85265676973746572cd0a1181b052656769737465724d656d496e64657881a85265676973746572cd0a1281b052656769737465724d656d496e64657881a85265676973746572cd0a1381b052656769737465724d656d496e64657881a85265676973746572cd0a1481b052656769737465724d656d496e64657881a85265676973746572cd0a15909181ad5265676973746572496e646578cd0a209081a34d6f769281a852656769737465720081a85265676973746572cd0a20a843616c6c4261636b81a9426f6f7473747261709198cd0a0ecd0a0fcd0a10cd0a11cd0a12cd0a13cd0a14cd0a1501000000000000000000000000000000000000000000000000000000000000000000000000000000010200007a0000007b00000000010000000100000000000000000000000000000000000000000000000000000000000000000000017a0000007b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007c000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000017a0000007c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017c0000000000000000000000000000000000000000000000000000000000000000000000010500070000006b000000fe0000004d000000fe0000002c000000fe0000002d000000fe0000002e000000fe0000002f000000fe00000030000000fe000000020000007d0000007e000000010500040000006e000000fe0000007d000000fe00000018000000fe0000000e000000fe000000020000007f0000008000000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000000000000001000000000081000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd09d081b052656769737465724d656d496e64657881a85265676973746572cd09d1909181ad5265676973746572496e646578cd09d69081a34d6f769281a852656769737465720081a85265676973746572cd09d6a843616c6c4261636b81a9426f6f7473747261709192cd09d0cd09d101000000000100000000000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000008100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008200000000000000000000000000000000000000000000000000000000000000000000000105000300000072000000fe0000007f000000fe00000082000000fe00000002000000830000008400000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000000000000001000000000085000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd09d081b052656769737465724d656d496e64657881a85265676973746572cd09d1909181ad5265676973746572496e646578cd09d69081a34d6f769281a852656769737465720081a85265676973746572cd09d6a843616c6c4261636b81a9426f6f7473747261709192cd09d0cd09d101000000000100000000000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000008500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008600000000000000000000000000000000000000000000000000000000000000000000000105000300000072000000fe0000007d000000fe00000086000000fe00000002000000870000008800000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012e00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012f000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000130000000000000000000000000000000000000000000000000000000000000000000000001000000000089000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd0a0e81b052656769737465724d656d496e64657881a85265676973746572cd0a0f81b052656769737465724d656d496e64657881a85265676973746572cd0a1081b052656769737465724d656d496e64657881a85265676973746572cd0a1181b052656769737465724d656d496e64657881a85265676973746572cd0a1281b052656769737465724d656d496e64657881a85265676973746572cd0a1381b052656769737465724d656d496e64657881a85265676973746572cd0a1481b052656769737465724d656d496e64657881a85265676973746572cd0a15909181ad5265676973746572496e646578cd0a209081a34d6f769281a852656769737465720081a85265676973746572cd0a20a843616c6c4261636b81a9426f6f7473747261709198cd0a0ecd0a0fcd0a10cd0a11cd0a12cd0a13cd0a14cd0a150100000000000000000000000000000000000000000000000000000000000000000000000000000001020000890000008a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001890000008a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001890000008b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000089000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000000000000007000000000100000000008c000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd0cac9081a34d6f769281a852656769737465720081a85265676973746572cd0caca843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000107000000000100000000008d000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd0cac9081a34d6f769281a852656769737465720081a85265676973746572cd0caca843616c6c4261636b81a9426f6f747374726170919001000000000000000000000000000000000000000000000000000000000000000000000000000000010105000300000016000000fe00000017000000fe00000004000000fe000000020000008e0000008f000000010500070000006b000000fe00000017000000fe0000006e000000fe00000004000000fe00000005000000fe0000008d000000fe00000001000000fe00000002000000900000009100000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018e00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016e00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000001000000000092000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd0d6381b052656769737465724d656d496e64657881a85265676973746572cd0d6481b052656769737465724d656d496e64657881a85265676973746572cd0d6581b052656769737465724d656d496e64657881a85265676973746572cd0d6681b052656769737465724d656d496e64657881a85265676973746572cd0d6781b052656769737465724d656d496e64657881a85265676973746572cd0d6881b052656769737465724d656d496e64657881a85265676973746572cd0d6981b052656769737465724d656d496e64657881a85265676973746572cd0d6a81b052656769737465724d656d496e64657881a85265676973746572cd0d6b909181ad5265676973746572496e646578cd0d779081a34d6f769281a852656769737465720081a85265676973746572cd0d77a843616c6c4261636b81a9426f6f7473747261709199cd0d63cd0d64cd0d65cd0d66cd0d67cd0d68cd0d69cd0d6acd0d6b010000000000000000000000000000000000000000000000000000000000000000000000000000000102000092000000930000000001000000010000000000000000000000000000000000000000000000000000000000000000000001920000009300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009400000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001920000009400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000920000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000194000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000096000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000950000009600000000010b00010000009600000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001950000009500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000098000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000970000009800000000010b00010000009800000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001970000009700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000970000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009a000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000990000009a00000000010b00010000009a00000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001990000009900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009c000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc000000000000000000000000000000000000000000000000000000000000000100000000000000009b0000009c00000000010b00010000009c000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019b0000009b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009e000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc000000000000000000000000000000000000000000000000000000000000000100000000000000009d0000009e00000000010b00010000009e000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019d0000009d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a0000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc000000000000000000000000000000000000000000000000000000000000000100000000000000009f000000a000000000010b0001000000a0000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019f0000009f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001a100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a2000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000a1000000a200000000010b0001000000a200000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a1000000a100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000010000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000e00000000000000000000000000000000000000000000000000000000000000000000000010500070000006b000000fe00000017000000fe0000006e000000fe00000002000000fe00000003000000fe0000008c000000fe000000a3000000fe00000002000000a4000000a500000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016e00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018c0000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a30000000000000000000000000000000000000000000000000000000000000000000000010000000000a6000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd0d6381b052656769737465724d656d496e64657881a85265676973746572cd0d6481b052656769737465724d656d496e64657881a85265676973746572cd0d6581b052656769737465724d656d496e64657881a85265676973746572cd0d6681b052656769737465724d656d496e64657881a85265676973746572cd0d6781b052656769737465724d656d496e64657881a85265676973746572cd0d6881b052656769737465724d656d496e64657881a85265676973746572cd0d6981b052656769737465724d656d496e64657881a85265676973746572cd0d6a81b052656769737465724d656d496e64657881a85265676973746572cd0d6b909181ad5265676973746572496e646578cd0d779081a34d6f769281a852656769737465720081a85265676973746572cd0d77a843616c6c4261636b81a9426f6f7473747261709199cd0d63cd0d64cd0d65cd0d66cd0d67cd0d68cd0d69cd0d6acd0d6b0100000000000000000000000000000000000000000000000000000000000000000000000000000001020000a6000000a70000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a6000000a700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a6000000a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a600000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001a8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001a900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000aa000000000000000000000000000000000000000000000000000000fffffffffffffffd0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffd00000000000000000000000000000000000000000000000000000000000000010000000000000000a9000000aa00000000010b0001000000aa00000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001a9000000a900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001ab00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ac000000000000000000000000000000000000000000000000000000fffffffffffffffd0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffd00000000000000000000000000000000000000000000000000000000000000010000000000000000ab000000ac00000000010b0001000000ac00000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001ab000000ab00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001ab000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ad000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ae000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000af000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b9000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bb000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000be00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bf00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000019000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c400000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c500000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c600000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ca00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cb00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cc00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cd00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ce00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cf00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d300000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d400000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001bd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d9000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000da000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000db000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dc0000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" } ] diff --git a/yarn-project/noir-contracts/src/scripts/copy_output.ts b/yarn-project/noir-contracts/src/scripts/copy_output.ts index 326d37d987e..166be530c49 100644 --- a/yarn-project/noir-contracts/src/scripts/copy_output.ts +++ b/yarn-project/noir-contracts/src/scripts/copy_output.ts @@ -2,31 +2,38 @@ import { readFileSync, writeFileSync } from 'fs'; import camelCase from 'lodash.camelcase'; import snakeCase from 'lodash.snakecase'; import upperFirst from 'lodash.upperfirst'; +import mockedKeys from './mockedKeys.json' assert { type: 'json' }; -function getFunction(params: any, fn: any) { +function getFunction(params: any, returns: any, fn: any) { if (!params) throw new Error(`ABI comment not found for function ${fn.name}`); return { name: fn.name, - functionType: fn.func_type, + functionType: fn.function_type, parameters: params, - returnTypes: [], - bytecode: Buffer.from(fn.function.circuit).toString('hex'), + returnTypes: returns, + bytecode: Buffer.from(fn.bytecode).toString('hex'), + // verificationKey: Buffer.from(fn.verification_key).toString('hex'), + verificationKey: mockedKeys.verificationKey, }; } function getFunctions(source: string, output: any) { - const abis = Array.from(source.matchAll(/\/\/\/ ABI (\w+) (.+)/g)).map(match => ({ - name: match[1], - params: JSON.parse(match[2]), + const abis = Array.from(source.matchAll(/\/\/\/ ABI (\w+) (params|return) (.+)/g)).map(match => ({ + functionName: match[1], + abiType: match[2], + interface: JSON.parse(match[3]), })); - return Object.keys(output.functions).map((name: string) => - getFunction(abis.find(abi => abi.name === name)?.params, { ...output.functions[name], name: name }), - ); -} - -function getVerificationKey(folder: string, contractName: string, functionName: string) { - return readFileSync(`${folder}/target/main-${contractName}-${functionName}.vk`).toString(); + return output.functions + .sort((fnA: any, fnB: any) => fnA.name.localeCompare(fnB.name)) + .map((fn: any) => { + delete fn.proving_key; + return getFunction( + abis.find(abi => abi.functionName === fn.name && abi.abiType === 'params')?.interface || [], + abis.find(abi => abi.functionName === fn.name && abi.abiType === 'return')?.interface || [], + fn, + ); + }); } function main() { @@ -41,14 +48,11 @@ function main() { const abi = { name: build.name, - functions: getFunctions(source, build).map(fn => ({ - ...fn, - verificationKey: getVerificationKey(folder, contractName, fn.name), - })), + functions: getFunctions(source, build), }; const exampleFile = `${examples}/${snakeCase(name)}_contract.json`; - writeFileSync(exampleFile, JSON.stringify(abi, null, 2)); + writeFileSync(exampleFile, JSON.stringify(abi, null, 2) + '\n'); console.log(`Written ${exampleFile}`); } diff --git a/yarn-project/noir-contracts/src/scripts/mockedKeys.json b/yarn-project/noir-contracts/src/scripts/mockedKeys.json new file mode 100644 index 00000000000..af7dc378706 --- /dev/null +++ b/yarn-project/noir-contracts/src/scripts/mockedKeys.json @@ -0,0 +1,3 @@ +{ + "verificationKey": "0000000100000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" +} diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index 21fdc2a5676..ea9174244fd 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -32,8 +32,8 @@ __metadata: "@aztec/merkle-tree": "workspace:^" "@aztec/noir-contracts": "workspace:^" "@jest/globals": ^29.5.0 - "@noir-lang/aztec_backend_wasm": "github:joss-aztec/barretenberg_browser_stopgap_wasm_build#f2007d1c309da9d41c3ad38cc8696613678e910c" - "@noir-lang/noir_util_wasm": "github:joss-aztec/noir_util_wasm#bb71df87c9415be387c998b67cb0de4298ab6b6a" + "@noir-lang/aztec_backend_wasm": "github:joss-aztec/barretenberg_browser_stopgap_wasm_build#41d52a9ad86786c65ab9b0502927e9e2fa93d963" + "@noir-lang/noir_util_wasm": "github:joss-aztec/noir_util_wasm#94d5812260636794ab77c437261e6b814b130265" "@rushstack/eslint-patch": ^1.1.4 "@types/jest": ^29.5.0 "@types/node": ^18.7.23 @@ -1656,10 +1656,10 @@ __metadata: languageName: node linkType: hard -"@noir-lang/aztec_backend_wasm@github:joss-aztec/barretenberg_browser_stopgap_wasm_build#f2007d1c309da9d41c3ad38cc8696613678e910c": - version: 0.1.0-bd2335d - resolution: "@noir-lang/aztec_backend_wasm@https://github.com/joss-aztec/barretenberg_browser_stopgap_wasm_build.git#commit=f2007d1c309da9d41c3ad38cc8696613678e910c" - checksum: 82b5fef659da6911fd38ad534866ed61b2ea174df8fe75f323102562f979b390265da0d80a3ed7d4694a6ce0e2b35c5bad4d65a194d6ea933b1c2c40c3244638 +"@noir-lang/aztec_backend_wasm@github:joss-aztec/barretenberg_browser_stopgap_wasm_build#41d52a9ad86786c65ab9b0502927e9e2fa93d963": + version: 0.1.0-c31a641 + resolution: "@noir-lang/aztec_backend_wasm@https://github.com/joss-aztec/barretenberg_browser_stopgap_wasm_build.git#commit=41d52a9ad86786c65ab9b0502927e9e2fa93d963" + checksum: 8acd62a5e442cdff2d3dfcaedc0782ab0fba4a3a26054ba86c6fe84e138781992a33c13bcf474ad9ed2981c67f008db88644aec024cd462290ea9b3d73d562b9 languageName: node linkType: hard @@ -1670,10 +1670,10 @@ __metadata: languageName: node linkType: hard -"@noir-lang/noir_util_wasm@github:joss-aztec/noir_util_wasm#bb71df87c9415be387c998b67cb0de4298ab6b6a": - version: 0.2.0-f4635b0 - resolution: "@noir-lang/noir_util_wasm@https://github.com/joss-aztec/noir_util_wasm.git#commit=bb71df87c9415be387c998b67cb0de4298ab6b6a" - checksum: b939a3fed1237d64885c143fd890de82836ef82caaf6d69bc274afd3f3b6d3595bee2f324bd76d176dd00044b36dfc19f7cb9437d554c6f354510c6cfecc8b8e +"@noir-lang/noir_util_wasm@github:joss-aztec/noir_util_wasm#94d5812260636794ab77c437261e6b814b130265": + version: 0.2.0-bbc5b17c + resolution: "@noir-lang/noir_util_wasm@https://github.com/joss-aztec/noir_util_wasm.git#commit=94d5812260636794ab77c437261e6b814b130265" + checksum: 56b8cf05de10c8651a5be5375bbad97221056bad2c0619f6bda3f22799e891b56f4c18fa9ac4561abe68d2b8fc1a414ee5dd74fa357ec00b6fea91316e7daef4 languageName: node linkType: hard