From 2f4cd197b617a7964257bad2ecd1004e4b619e05 Mon Sep 17 00:00:00 2001 From: okkothejawa <103260942+okkothejawa@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:50:54 +0300 Subject: [PATCH] Adopt transparent upgradeability pattern (#864) * Partial transparent proxy impl * OZ remove * forge install: openzeppelin-contracts v4.9.6 * Change tests to reflect transparent proxy * Partial finish genesis generator * Add genesis script * Add make genesis * Adapt sys tx tests * Test fixes * Fix ethers js * Test fixes * Add upgradeability test * Add ProxyAdmin.json to git * Fix genesis contract call test * Use full node url in ethers.js test * Fix toml * Fix toml * Lint fix * Fix low gas limit genesis * Remove unused dependencies from toml * Use from_str * Add comment to foundry toml * add 0x * Lint fix --- Cargo.lock | 1 + Makefile | 6 +- bin/citrea/tests/e2e/mod.rs | 18 +- bin/citrea/tests/evm/ethers_js/test.js | 4 +- bin/citrea/tests/evm/mod.rs | 32 ++- bin/citrea/tests/evm/web3_py/test.py | 2 +- crates/evm/Cargo.toml | 4 +- .../evm/src/evm/system_contracts/.gitignore | 1 + crates/evm/src/evm/system_contracts/Makefile | 8 + .../evm/src/evm/system_contracts/foundry.toml | 3 + .../lib/openzeppelin-contracts | 2 +- crates/evm/src/evm/system_contracts/mod.rs | 34 ++++ .../BitcoinLightClient.json | 2 +- .../out/Bridge.sol/Bridge.json | 2 +- .../out/ProxyAdmin.sol/ProxyAdmin.json | 1 + .../script/GenesisGenerator.s.sol | 150 ++++++++++++++ .../script/GenesisToEvmJson.py | 57 ++++++ .../evm/system_contracts/src/BaseFeeVault.sol | 2 +- .../src/BitcoinLightClient.sol | 7 +- .../src/evm/system_contracts/src/Bridge.sol | 7 +- .../src/evm/system_contracts/src/FeeVault.sol | 7 +- .../evm/system_contracts/src/L1FeeVault.sol | 2 +- .../system_contracts/src/PriorityFeeVault.sol | 2 +- .../system_contracts/test/BaseFeeVault.t.sol | 11 +- .../test/BitcoinLightClient.t.sol | 37 ++-- .../evm/system_contracts/test/Bridge.t.sol | 29 ++- .../evm/system_contracts/test/FeeVault.t.sol | 9 +- .../system_contracts/test/L1FeeVault.t.sol | 11 +- .../test/PriorityFeeVault.t.sol | 11 +- crates/evm/src/tests/sys_tx_tests.rs | 163 ++++++++++++--- resources/genesis/bitcoin-regtest/evm.json | 180 +++++++++-------- resources/genesis/mock-dockerized/evm.json | 147 +++++++++++--- resources/genesis/mock/evm.json | 180 +++++++++-------- .../demo-tests/bitcoin-regtest/evm.json | 176 +++++++++++------ resources/test-data/demo-tests/mock/evm.json | 187 +++++++++--------- .../evm.json | 178 +++++++++++------ .../evm.json | 176 +++++++++++------ .../test-data/integration-tests/evm.json | 178 +++++++++++------ 38 files changed, 1373 insertions(+), 654 deletions(-) create mode 100644 crates/evm/src/evm/system_contracts/Makefile create mode 100644 crates/evm/src/evm/system_contracts/out/ProxyAdmin.sol/ProxyAdmin.json create mode 100644 crates/evm/src/evm/system_contracts/script/GenesisGenerator.s.sol create mode 100644 crates/evm/src/evm/system_contracts/script/GenesisToEvmJson.py diff --git a/Cargo.lock b/Cargo.lock index bf649258e..4481e1616 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1845,6 +1845,7 @@ dependencies = [ "tempfile", "thiserror", "tracing", + "tracing-subscriber 0.3.18", "walkdir", ] diff --git a/Makefile b/Makefile index 18941383a..101e7922d 100644 --- a/Makefile +++ b/Makefile @@ -105,4 +105,8 @@ ef-tests: $(EF_TESTS_DIR) ## Runs Ethereum Foundation tests. # Basic checks to do before opening a PR pr: $(MAKE) lint - $(MAKE) test \ No newline at end of file + $(MAKE) test + +# Set genesis from system contract source files +genesis: + $(MAKE) -C crates/evm/src/evm/system_contracts genesis \ No newline at end of file diff --git a/bin/citrea/tests/e2e/mod.rs b/bin/citrea/tests/e2e/mod.rs index 2dc753b16..f91535160 100644 --- a/bin/citrea/tests/e2e/mod.rs +++ b/bin/citrea/tests/e2e/mod.rs @@ -1764,28 +1764,28 @@ async fn test_system_tx_effect_on_block_gas_limit() -> Result<(), anyhow::Error> let seq_port = seq_port_rx.await.unwrap(); let seq_test_client = make_test_client(seq_port).await; - // sys tx use L1BlockHash(48522 + 78491) + Bridge(258971) = 385984 gas + // sys tx use L1BlockHash(50751 + 80720) + Bridge(261215) = 392686 gas // the block gas limit is 1_500_000 because the system txs gas limit is 1_500_000 (decided with @eyusufatik and @okkothejawa as bridge init takes 1M gas) - // 1500000 - 385984 = 1114016 gas left in block - // 1114016 / 21000 = 53,04... so 53 ether transfer transactions can be included in the block + // 1500000 - 392686 = 1107314 gas left in block + // 1107314 / 21000 = 52,72... so 52 ether transfer transactions can be included in the block - // send 53 ether transfer transactions + // send 52 ether transfer transactions let addr = Address::from_str("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266").unwrap(); - for _ in 0..52 { + for _ in 0..51 { let _pending = seq_test_client .send_eth(addr, None, None, None, 0u128) .await .unwrap(); } - // 53th tx should be the last tx in the soft batch + // 52th tx should be the last tx in the soft batch let last_in_tx = seq_test_client .send_eth(addr, None, None, None, 0u128) .await; - // 54th tx should not be in soft batch + // 53th tx should not be in soft batch let not_in_tx = seq_test_client .send_eth(addr, None, None, None, 0u128) .await; @@ -2085,7 +2085,7 @@ async fn transaction_failing_on_l1_is_removed_from_mempool() -> Result<(), anyho let random_wallet_address = random_wallet.address(); - let second_block_base_fee = 768592592; + let second_block_base_fee = 768641461; let _pending = seq_test_client .send_eth( @@ -2974,7 +2974,7 @@ async fn test_gas_limit_too_high() { let target_gas_limit: u64 = 30_000_000; let transfer_gas_limit = 21_000; - let system_txs_gas_used = 385984; + let system_txs_gas_used = 390434; let tx_count = (target_gas_limit - system_txs_gas_used).div_ceil(transfer_gas_limit); let addr = Address::from_str("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266").unwrap(); diff --git a/bin/citrea/tests/evm/ethers_js/test.js b/bin/citrea/tests/evm/ethers_js/test.js index afea42246..e2179933d 100644 --- a/bin/citrea/tests/evm/ethers_js/test.js +++ b/bin/citrea/tests/evm/ethers_js/test.js @@ -115,7 +115,7 @@ describe("RpcTests", function() { it("getCode returns the correct code", async function() { let code = await provider.getCode("0x3200000000000000000000000000000000000001"); // BitcoinLightClient - expect(code).to.equal("0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033"); + expect(code).to.equal("0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056"); }); it("getStorage returns the correct storage", async function() { @@ -238,7 +238,7 @@ describe("RpcTests", function() { tx_receipt = await tx_response.wait(1); expect.fail('Expected an error to be thrown'); } catch (error) { - expect(error.message).to.match(/transaction execution reverted \(action="sendTransaction", data=null, reason=null, invocation=null, revert=null, transaction={ "data": "", "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "to": "0x3100000000000000000000000000000000000002" }, receipt={ "_type": "TransactionReceipt", "blobGasPrice": null, "blobGasUsed": null, "blockHash": "0x[0-9a-fA-F]+", "blockNumber": \d+, "contractAddress": null, "cumulativeGasUsed": "26805", "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "gasPrice": "1000000", "gasUsed": "26805", "hash": "0x[0-9a-fA-F]+", "index": 0, "logs": \[ ], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "root": null, "status": 0, "to": "0x3100000000000000000000000000000000000002" }, code=CALL_EXCEPTION, version=6\.12\.1\)/); + expect(error.message).to.match(/transaction execution reverted \(action="sendTransaction", data=null, reason=null, invocation=null, revert=null, transaction={ "data": "", "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "to": "0x3100000000000000000000000000000000000002" }, receipt={ "_type": "TransactionReceipt", "blobGasPrice": null, "blobGasUsed": null, "blockHash": "0x[0-9a-fA-F]+", "blockNumber": \d+, "contractAddress": null, "cumulativeGasUsed": "\d+", "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "gasPrice": "1000000", "gasUsed": "\d+", "hash": "0x[0-9a-fA-F]+", "index": 0, "logs": \[ ], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "root": null, "status": 0, "to": "0x3100000000000000000000000000000000000002" }, code=CALL_EXCEPTION, version=6\.12\.1\)/); } }); diff --git a/bin/citrea/tests/evm/mod.rs b/bin/citrea/tests/evm/mod.rs index 6a305b661..1e368fb4c 100644 --- a/bin/citrea/tests/evm/mod.rs +++ b/bin/citrea/tests/evm/mod.rs @@ -4,9 +4,8 @@ use std::str::FromStr; use alloy::signers::wallet::LocalWallet; use alloy::signers::Signer; // use citrea::initialize_logging; -use citrea_evm::smart_contracts::{ - HiveContract, LogsContract, SimpleStorageContract, TestContract, -}; +use citrea_evm::smart_contracts::{LogsContract, SimpleStorageContract, TestContract}; +use citrea_evm::system_contracts::BitcoinLightClient; use citrea_stf::genesis_config::GenesisPaths; use reth_primitives::{Address, BlockId, BlockNumberOrTag, Bytes, U256}; use sov_rollup_interface::CITREA_VERSION; @@ -188,46 +187,43 @@ async fn test_genesis_contract_call() -> Result<(), Box> let seq_port = seq_port_rx.await.unwrap(); let seq_test_client = make_test_client(seq_port).await; - // call the contract with address 0x0000000000000000000000000000000000000314 - let contract_address = Address::from_str("0x0000000000000000000000000000000000000314").unwrap(); + // call the contract with address 0x3100000000000000000000000000000000000001 + let contract_address = Address::from_str("0x3100000000000000000000000000000000000001").unwrap(); let code = seq_test_client .eth_get_code(contract_address, None) .await .unwrap(); - let expected_code = "60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a223e05d1461006a578063abd1a0cf1461008d578063abfced1d146100d4578063e05c914a14610110578063e6768b451461014c575b610000565b346100005761007761019d565b6040518082815260200191505060405180910390f35b34610000576100be600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506101a3565b6040518082815260200191505060405180910390f35b346100005761010e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101ed565b005b346100005761014a600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610236565b005b346100005761017960048080359060200190919080359060200190919080359060200190919050506103c4565b60405180848152602001838152602001828152602001935050505060405180910390f35b60005481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b7f6031a8d62d7c95988fa262657cd92107d90ed96e08d8f867d32f26edfe85502260405180905060405180910390a17f47e2689743f14e97f7dcfa5eec10ba1dff02f83b3d1d4b9c07b206cbbda66450826040518082815260200191505060405180910390a1817fa48a6b249a5084126c3da369fbc9b16827ead8cb5cdc094b717d3f1dcd995e2960405180905060405180910390a27f7890603b316f3509577afd111710f9ebeefa15e12f72347d9dffd0d65ae3bade81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff167f7efef9ea3f60ddc038e50cccec621f86a0195894dc0520482abf8b5c6b659e4160405180905060405180910390a28181604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a05b5050565b6000600060008585859250925092505b935093509390505600a165627a7a72305820aaf842d0d0c35c45622c5263cbb54813d2974d3999c8c38551d7c613ea2bc1170029"; + let expected_code = "60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564"; assert_eq!(code.to_vec(), hex::decode(expected_code).unwrap()); - let hive_contract = HiveContract::new(); - let res: String = seq_test_client .contract_call( contract_address, - hive_contract.call_const_func(1, 2, 4), + BitcoinLightClient::get_system_caller().into(), None, ) .await .unwrap(); - let expected_res = "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004"; + let expected_res = "0x000000000000000000000000deaddeaddeaddeaddeaddeaddeaddeaddeaddead"; assert_eq!(res, expected_res); - let storage_value = seq_test_client - .eth_get_storage_at(contract_address, U256::from(0), None) - .await - .unwrap(); - assert_eq!(storage_value, U256::from(4660)); - let storage_value = seq_test_client .eth_get_storage_at( contract_address, - U256::from_str("0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9") + U256::from_str("0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc") .unwrap(), None, ) .await .unwrap(); - assert_eq!(storage_value, U256::from(1)); + assert_eq!( + storage_value, + U256::from_str("0x0000000000000000000000003200000000000000000000000000000000000001") + .unwrap() + ); + seq_task.abort(); Ok(()) } diff --git a/bin/citrea/tests/evm/web3_py/test.py b/bin/citrea/tests/evm/web3_py/test.py index 412d776bb..03eb8c7b5 100644 --- a/bin/citrea/tests/evm/web3_py/test.py +++ b/bin/citrea/tests/evm/web3_py/test.py @@ -47,7 +47,7 @@ def test_get_storage_at(self): def test_get_code(self): code = self.web3.eth.get_code('0x3200000000000000000000000000000000000001') - self.assertEqual(code, HexBytes('0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033')) + self.assertEqual(code, HexBytes('0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056')) def test_get_block(self): block = self.web3.eth.get_block('latest') diff --git a/crates/evm/Cargo.toml b/crates/evm/Cargo.toml index 3d164ec4d..cbed504fe 100644 --- a/crates/evm/Cargo.toml +++ b/crates/evm/Cargo.toml @@ -41,7 +41,7 @@ revm-inspectors = { workspace = true, optional = true } secp256k1 = { workspace = true, optional = true } [dev-dependencies] -alloy = { workspace = true, features = ["consensus", "signer-wallet", "signers"] } +alloy = { workspace = true, features = ["consensus", "signer-wallet", "signers", "providers"] } bytes = { workspace = true } lazy_static = "1.4.0" rand = { workspace = true } @@ -49,8 +49,10 @@ rayon = { workspace = true } reth-db = { workspace = true } reth-provider = { workspace = true } revm = { workspace = true, features = ["optional_block_gas_limit", "optional_eip3607", "optional_no_base_fee"] } +sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api", features = ["macros"] } sov-prover-storage-manager = { path = "../sovereign-sdk/full-node/sov-prover-storage-manager", features = ["test-utils"] } tempfile = { workspace = true } +tracing-subscriber = { workspace = true } walkdir = "2.3.3" [features] diff --git a/crates/evm/src/evm/system_contracts/.gitignore b/crates/evm/src/evm/system_contracts/.gitignore index 85198aaa5..f4ee93e35 100644 --- a/crates/evm/src/evm/system_contracts/.gitignore +++ b/crates/evm/src/evm/system_contracts/.gitignore @@ -1,6 +1,7 @@ # Compiler files cache/ out/ +state/ # Ignores development broadcast logs !/broadcast diff --git a/crates/evm/src/evm/system_contracts/Makefile b/crates/evm/src/evm/system_contracts/Makefile new file mode 100644 index 000000000..0d0df5522 --- /dev/null +++ b/crates/evm/src/evm/system_contracts/Makefile @@ -0,0 +1,8 @@ +.PHONY: help + +help: ## Display this help message + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +# Set genesis from system contract source files +genesis: + forge script script/GenesisGenerator.s.sol:GenesisGenerator --ffi \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/foundry.toml b/crates/evm/src/evm/system_contracts/foundry.toml index 25b918f9c..db8536ca4 100644 --- a/crates/evm/src/evm/system_contracts/foundry.toml +++ b/crates/evm/src/evm/system_contracts/foundry.toml @@ -2,5 +2,8 @@ src = "src" out = "out" libs = ["lib"] +# Following options strips the metadata from contracts, this is done to ensure a more stable compilation +bytecode_hash = "none" +cbor_metadata = false # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/crates/evm/src/evm/system_contracts/lib/openzeppelin-contracts b/crates/evm/src/evm/system_contracts/lib/openzeppelin-contracts index dbb6104ce..dc44c9f1a 160000 --- a/crates/evm/src/evm/system_contracts/lib/openzeppelin-contracts +++ b/crates/evm/src/evm/system_contracts/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit dbb6104ce834628e473d2173bbc9d47f81a9eec3 +Subproject commit dc44c9f1a4c3b10af99492eed84f83ed244203f6 diff --git a/crates/evm/src/evm/system_contracts/mod.rs b/crates/evm/src/evm/system_contracts/mod.rs index d14804374..95428f35d 100644 --- a/crates/evm/src/evm/system_contracts/mod.rs +++ b/crates/evm/src/evm/system_contracts/mod.rs @@ -44,6 +44,13 @@ impl BitcoinLightClient { .into() } + /// Return input data to get the system caller + pub fn get_system_caller() -> Bytes { + BitcoinLightClientContract::SYSTEM_CALLERCall {} + .abi_encode() + .into() + } + #[cfg(test)] pub(crate) fn get_witness_root_by_number(block_number: u64) -> Bytes { BitcoinLightClientContract::getWitnessRootByNumberCall { @@ -117,3 +124,30 @@ impl Bridge { func_selector.into() } } + +sol! { + #[sol(abi)] + #[allow(missing_docs)] + ProxyAdminContract, + "./src/evm/system_contracts/out/ProxyAdmin.sol/ProxyAdmin.json" +} + +/// ProxyAdmin wrapper. +pub struct ProxyAdmin {} + +impl ProxyAdmin { + /// Return the address of the ProxyAdmin contract. + pub fn address() -> Address { + address!("31ffffffffffffffffffffffffffffffffffffff") + } + + /// Return data to upgrade the contract. + pub fn upgrade(proxy: Address, new_contract: Address) -> Bytes { + ProxyAdminContract::upgradeCall { + proxy, + implementation: new_contract, + } + .abi_encode() + .into() + } +} diff --git a/crates/evm/src/evm/system_contracts/out/BitcoinLightClient.sol/BitcoinLightClient.json b/crates/evm/src/evm/system_contracts/out/BitcoinLightClient.sol/BitcoinLightClient.json index 4c18cc985..d31978aa2 100644 --- a/crates/evm/src/evm/system_contracts/out/BitcoinLightClient.sol/BitcoinLightClient.json +++ b/crates/evm/src/evm/system_contracts/out/BitcoinLightClient.sol/BitcoinLightClient.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"SYSTEM_CALLER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blockHashes","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getWitnessRootByHash","inputs":[{"name":"_blockHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getWitnessRootByNumber","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initializeBlockNumber","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBlockInfo","inputs":[{"name":"_blockHash","type":"bytes32","internalType":"bytes32"},{"name":"_witnessRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"verifyInclusion","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"},{"name":"_wtxId","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyInclusion","inputs":[{"name":"_blockHash","type":"bytes32","internalType":"bytes32"},{"name":"_wtxId","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"witnessRoots","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"BlockInfoAdded","inputs":[{"name":"blockNumber","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"merkleRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a060405230608052348015601357600080fd5b5060805161106361003d6000396000818161076e01528181610797015261093b01526110636000f3fe6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033","sourceMap":"791:4201:41:-:0;;;1171:4:32;1128:48;;791:4201:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033","sourceMap":"791:4201:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2876:130;;;;;;;;;;-1:-1:-1;2876:130:41;;;;;:::i;:::-;2949:7;2975:24;;;:12;:24;;;;;;;2876:130;;;;345:25:46;;;333:2;318:18;2876:130:41;;;;;;;;2102:395;;;;;;;;;;-1:-1:-1;2102:395:41;;;;;:::i;:::-;;:::i;:::-;;1524:174;;;;;;;;;;-1:-1:-1;1524:174:41;;;;;:::i;:::-;;:::i;1019:46::-;;;;;;;;;;-1:-1:-1;1019:46:41;;;;;:::i;:::-;;;;;;;;;;;;;;4158:214:32;;;;;;:::i;:::-;;:::i;4424:222:41:-;;;;;;;;;;-1:-1:-1;4424:222:41;;;;;:::i;:::-;;:::i;:::-;;;3265:14:46;;3258:22;3240:41;;3228:2;3213:18;4424:222:41;3100:187:46;3705:134:32;;;;;;;;;;;;;:::i;890:26:41:-;;;;;;;;;;;;;;;;3142:149;;;;;;;;;;-1:-1:-1;3142:149:41;;;;;:::i;:::-;3219:7;3258:25;;;:11;:25;;;;;;;;;3245:39;;:12;:39;;;;;;;3142:149;3155:101:30;;;;;;;;;;;;;:::i;2774:229:29:-;;;;;;;;;;;;;:::i;2441:144:30:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3638:32:46;;;3620:51;;3608:2;3593:18;2441:144:30;3474:203:46;1071:47:41;;;;;;;;;;-1:-1:-1;1071:47:41;;;;;:::i;:::-;;;;;;;;;;;;;;1819:58:32;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:32;;;;;;;;;;;;:::i;3753:205:41:-;;;;;;;;;;-1:-1:-1;3753:205:41;;;;;:::i;:::-;;:::i;922:91::-;;;;;;;;;;;;970:42;922:91;;1680:168:29;;;;;;;;;;;;;:::i;2618:125:41:-;;;;;;;;;;-1:-1:-1;2618:125:41;;;;;:::i;:::-;2685:7;2711:25;;;:11;:25;;;;;;;2618:125;2041:247:29;;;;;;;;;;-1:-1:-1;2041:247:29;;;;;:::i;:::-;;:::i;2102:395:41:-;1256:10;970:42;1256:27;1248:71;;;;-1:-1:-1;;;1248:71:41;;5350:2:46;1248:71:41;;;5332:21:46;5389:2;5369:18;;;5362:30;5428:33;5408:18;;;5401:61;5479:18;;1248:71:41;;;;;;;;;2196:20:::1;2219:11:::0;;;2248:17;;;2240:45:::1;;;::::0;-1:-1:-1;;;2240:45:41;;5710:2:46;2240:45:41::1;::::0;::::1;5692:21:46::0;5749:2;5729:18;;;5722:30;-1:-1:-1;;;5768:18:46;;;5761:45;5823:18;;2240:45:41::1;5508:339:46::0;2240:45:41::1;2295:25;::::0;;;:11:::1;:25;::::0;;;;;;;:38;;;2357:16:::1;::::0;2307:12;;2357:16:::1;:::i;:::-;2343:11;:30:::0;;;2383:24;;;:12:::1;:24;::::0;;;;;;;:39;;;2452:11;;2437:53;;6281:25:46;;;6322:18;;;6315:34;;;6365:18;;;6358:34;;;2437:53:41::1;::::0;6269:2:46;6254:18;2437:53:41::1;;;;;;;2186:311;2102:395:::0;;:::o;1524:174::-;1256:10;970:42;1256:27;1248:71;;;;-1:-1:-1;;;1248:71:41;;5350:2:46;1248:71:41;;;5332:21:46;5389:2;5369:18;;;5362:30;5428:33;5408:18;;;5401:61;5479:18;;1248:71:41;5148:355:46;1248:71:41;1615:11:::1;::::0;:16;1607:48:::1;;;::::0;-1:-1:-1;;;1607:48:41;;6605:2:46;1607:48:41::1;::::0;::::1;6587:21:46::0;6644:2;6624:18;;;6617:30;-1:-1:-1;;;6663:18:46;;;6656:49;6722:18;;1607:48:41::1;6403:343:46::0;1607:48:41::1;1665:11;:26:::0;1524:174::o;4158:214:32:-;2653:13;:11;:13::i;:::-;4273:36:::1;4291:17;4273;:36::i;:::-;4319:46;4341:17;4360:4;4319:21;:46::i;:::-;4158:214:::0;;:::o;4424:222:41:-;4549:4;4589:25;;;:11;:25;;;;;;4572:67;;4616:6;4624;;4632;4572:16;:67::i;:::-;4565:74;4424:222;-1:-1:-1;;;;;;4424:222:41:o;3705:134:32:-;3774:7;2924:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3705:134:32;:::o;3155:101:30:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;2774:229:29:-;966:10:33;;2869:14:29;:12;:14::i;:::-;-1:-1:-1;;;;;2869:24:29;;2865:96;;2916:34;;-1:-1:-1;;;2916:34:29;;-1:-1:-1;;;;;3638:32:46;;2916:34:29;;;3620:51:46;3593:18;;2916:34:29;3474:203:46;2865:96:29;2970:26;2989:6;2970:18;:26::i;:::-;2816:187;2774:229::o;2441:144:30:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:30;;2441:144;-1:-1:-1;;2441:144:30:o;3753:205:41:-;3876:4;3899:52;3916:10;3928:6;3936;;3944;3899:16;:52::i;1680:168:29:-;1733:7;;1318:27;1784:25;1187:174;2041:247;2334:13:30;:11;:13::i;:::-;1318:27:29;2197:26;;-1:-1:-1;;;;;;2197:26:29::1;-1:-1:-1::0;;;;;2197:26:29;::::1;::::0;;::::1;::::0;;2263:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2238:43:29::1;;;;;;;;;;;2120:168;2041:247:::0;:::o;4599:312:32:-;4679:4;-1:-1:-1;;;;;4688:6:32;4671:23;;;:120;;;4785:6;-1:-1:-1;;;;;4749:42:32;:32;-1:-1:-1;;;;;;;;;;;2035:53:36;-1:-1:-1;;;;;2035:53:36;;1957:138;4749:32:32;-1:-1:-1;;;;;4749:42:32;;;4671:120;4654:251;;;4865:29;;-1:-1:-1;;;4865:29:32;;;;;;;;;;;4924:66:41;2334:13:30;:11;:13::i;6052:538:32:-;6169:17;-1:-1:-1;;;;;6151:50:32;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6151:52:32;;;;;;;;-1:-1:-1;;6151:52:32;;;;;;;;;;;;:::i;:::-;;;6147:437;;6513:60;;-1:-1:-1;;;6513:60:32;;-1:-1:-1;;;;;3638:32:46;;6513:60:32;;;3620:51:46;3593:18;;6513:60:32;3474:203:46;6147:437:32;-1:-1:-1;;;;;;;;;;;6245:40:32;;6241:120;;6312:34;;-1:-1:-1;;;6312:34:32;;;;;345:25:46;;;318:18;;6312:34:32;199:177:46;6241:120:32;6374:54;6404:17;6423:4;6374:29;:54::i;:::-;6204:235;6052:538;;:::o;4652:266:41:-;4776:4;4815:24;;;:12;:24;;;;;;;;;4856:55;;;;;;;;;;;;;;;;;;;;4815:24;4856:55;;4874:6;;4815:24;;4856:55;4896:6;;;;;;4856:55;;4896:6;;;;4856:55;;;;;;;;;-1:-1:-1;4904:6:41;;-1:-1:-1;4856:17:41;;-1:-1:-1;;4856:55:41:i;:::-;4849:62;4652:266;-1:-1:-1;;;;;;;4652:266:41:o;5028:213:32:-;5102:4;-1:-1:-1;;;;;5111:6:32;5094:23;;5090:145;;5195:29;;-1:-1:-1;;;5195:29:32;;;;;;;;;;;2658:162:30;966:10:33;2717:7:30;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:30;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:30;;966:10:33;2763:40:30;;;3620:51:46;3593:18;;2763:40:30;3474:203:46;2472:222:29;1318:27;2621:22;;-1:-1:-1;;;;;;2621:22:29;;;2653:34;2678:8;2653:24;:34::i;2779:335:36:-;2870:37;2889:17;2870:18;:37::i;:::-;2922:27;;-1:-1:-1;;;;;2922:27:36;;;;;;;;2964:11;;:15;2960:148;;2995:53;3024:17;3043:4;2995:28;:53::i;2960:148::-;3079:18;:16;:18::i;1685:539:5:-;1843:4;1913:11;1904:5;:20;:35;;;;-1:-1:-1;1928:11:5;;1904:35;:69;;;;-1:-1:-1;1943:25:5;;:30;1904:69;1900:111;;;-1:-1:-1;1996:4:5;1989:11;;1900:111;2083:134;2125:5;2144:18;2176:11;2201:6;2083:28;:134::i;:::-;2076:141;;1685:539;;;;;;;:::o;3774:248:30:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:30;;-1:-1:-1;;;;;3941:19:30;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;2186:281:36:-;2263:17;-1:-1:-1;;;;;2263:29:36;;2296:1;2263:34;2259:119;;2320:47;;-1:-1:-1;;;2320:47:36;;-1:-1:-1;;;;;3638:32:46;;2320:47:36;;;3620:51:46;3593:18;;2320:47:36;3474:203:46;2259:119:36;-1:-1:-1;;;;;;;;;;;2387:73:36;;-1:-1:-1;;;;;;2387:73:36;-1:-1:-1;;;;;2387:73:36;;;;;;;;;;2186:281::o;4106:253:39:-;4189:12;4214;4228:23;4255:6;-1:-1:-1;;;;;4255:19:39;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;:55::i;:::-;4290:62;;;;4106:253;;;;;:::o;6598:122:36:-;6648:9;:13;6644:70;;6684:19;;-1:-1:-1;;;6684:19:36;;;;;;;;;;;36339:829:2;36492:4;36567:2;36552:5;:12;:17;;;;:::i;:::-;:22;36548:65;;-1:-1:-1;36597:5:2;36590:12;;36548:65;36657:5;:12;36673:1;36657:17;36653:60;;-1:-1:-1;36697:5:2;36690:12;;36653:60;36735:6;36770:5;36723:9;36825:303;36846:5;:12;36842:1;:16;36825:303;;;36887:8;36894:1;36887:4;:8;:::i;:::-;36899:1;36887:13;36883:205;;36931:46;36950:16;:5;36964:1;12550:28:3;12566:2;12550:28;12544:35;;12417:178;36950:16:2;36968:8;36931:18;:46::i;:::-;36920:57;;36883:205;;;37027:46;37046:8;37056:16;:5;37070:1;12550:28:3;12566:2;12550:28;12544:35;;12417:178;37056:16:2;37027:18;:46::i;:::-;37016:57;;36883:205;37116:1;37108:9;;;;;36860:7;36865:2;36860:7;;:::i;:::-;;;36825:303;;;-1:-1:-1;37144:17:2;;;;36339:829;-1:-1:-1;;;;;36339:829:2:o;4625:582:39:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:39;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:39;;-1:-1:-1;;;;;3638:32:46;;5121:24:39;;;3620:51:46;3593:18;;5121:24:39;3474:203:46;5041:119:39;-1:-1:-1;5180:10:39;4793:408;4625:582;;;;;:::o;34697:127:2:-;34772:7;34798:19;34810:2;34814;34798:11;:19::i;5743:516:39:-;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:39;;;;;;;;;;;10264:386:2;10332:11;10455:2;10449:4;10442:16;10484:2;10478:4;10471:16;10541:2;10535:4;10531:2;10525:4;10522:1;10515:5;10504:40;10500:45;10599:2;10593:4;10589:2;10583:4;10580:1;10573:5;10562:40;-1:-1:-1;;10629:4:2;10623:11;;10264:386;-1:-1:-1;;10264:386:2:o;14:180:46:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:46;;14:180;-1:-1:-1;14:180:46:o;381:248::-;449:6;457;510:2;498:9;489:7;485:23;481:32;478:52;;;526:1;523;516:12;478:52;-1:-1:-1;;549:23:46;;;619:2;604:18;;;591:32;;-1:-1:-1;381:248:46:o;819:173::-;887:20;;-1:-1:-1;;;;;936:31:46;;926:42;;916:70;;982:1;979;972:12;916:70;819:173;;;:::o;997:127::-;1058:10;1053:3;1049:20;1046:1;1039:31;1089:4;1086:1;1079:15;1113:4;1110:1;1103:15;1129:995;1206:6;1214;1267:2;1255:9;1246:7;1242:23;1238:32;1235:52;;;1283:1;1280;1273:12;1235:52;1306:29;1325:9;1306:29;:::i;:::-;1296:39;;1386:2;1375:9;1371:18;1358:32;1409:18;1450:2;1442:6;1439:14;1436:34;;;1466:1;1463;1456:12;1436:34;1504:6;1493:9;1489:22;1479:32;;1549:7;1542:4;1538:2;1534:13;1530:27;1520:55;;1571:1;1568;1561:12;1520:55;1607:2;1594:16;1629:2;1625;1622:10;1619:36;;;1635:18;;:::i;:::-;1710:2;1704:9;1678:2;1764:13;;-1:-1:-1;;1760:22:46;;;1784:2;1756:31;1752:40;1740:53;;;1808:18;;;1828:22;;;1805:46;1802:72;;;1854:18;;:::i;:::-;1894:10;1890:2;1883:22;1929:2;1921:6;1914:18;1969:7;1964:2;1959;1955;1951:11;1947:20;1944:33;1941:53;;;1990:1;1987;1980:12;1941:53;2046:2;2041;2037;2033:11;2028:2;2020:6;2016:15;2003:46;2091:1;2086:2;2081;2073:6;2069:15;2065:24;2058:35;2112:6;2102:16;;;;;;;1129:995;;;;;:::o;2129:347::-;2180:8;2190:6;2244:3;2237:4;2229:6;2225:17;2221:27;2211:55;;2262:1;2259;2252:12;2211:55;-1:-1:-1;2285:20:46;;2328:18;2317:30;;2314:50;;;2360:1;2357;2350:12;2314:50;2397:4;2389:6;2385:17;2373:29;;2449:3;2442:4;2433:6;2425;2421:19;2417:30;2414:39;2411:59;;;2466:1;2463;2456:12;2411:59;2129:347;;;;;:::o;2481:614::-;2578:6;2586;2594;2602;2610;2663:3;2651:9;2642:7;2638:23;2634:33;2631:53;;;2680:1;2677;2670:12;2631:53;2716:9;2703:23;2693:33;;2773:2;2762:9;2758:18;2745:32;2735:42;;2828:2;2817:9;2813:18;2800:32;2855:18;2847:6;2844:30;2841:50;;;2887:1;2884;2877:12;2841:50;2926:58;2976:7;2967:6;2956:9;2952:22;2926:58;:::i;:::-;2481:614;;;;-1:-1:-1;3003:8:46;3085:2;3070:18;3057:32;;2481:614;-1:-1:-1;;;;2481:614:46:o;3682:250::-;3767:1;3777:113;3791:6;3788:1;3785:13;3777:113;;;3867:11;;;3861:18;3848:11;;;3841:39;3813:2;3806:10;3777:113;;;-1:-1:-1;;3924:1:46;3906:16;;3899:27;3682:250::o;3937:396::-;4086:2;4075:9;4068:21;4049:4;4118:6;4112:13;4161:6;4156:2;4145:9;4141:18;4134:34;4177:79;4249:6;4244:2;4233:9;4229:18;4224:2;4216:6;4212:15;4177:79;:::i;:::-;4317:2;4296:15;-1:-1:-1;;4292:29:46;4277:45;;;;4324:2;4273:54;;3937:396;-1:-1:-1;;3937:396:46:o;4957:186::-;5016:6;5069:2;5057:9;5048:7;5044:23;5040:32;5037:52;;;5085:1;5082;5075:12;5037:52;5108:29;5127:9;5108:29;:::i;5852:222::-;5917:9;;;5938:10;;;5935:133;;;5990:10;5985:3;5981:20;5978:1;5971:31;6025:4;6022:1;6015:15;6053:4;6050:1;6043:15;6751:184;6821:6;6874:2;6862:9;6853:7;6849:23;6845:32;6842:52;;;6890:1;6887;6880:12;6842:52;-1:-1:-1;6913:16:46;;6751:184;-1:-1:-1;6751:184:46:o;6940:287::-;7069:3;7107:6;7101:13;7123:66;7182:6;7177:3;7170:4;7162:6;7158:17;7123:66;:::i;:::-;7205:16;;;;;6940:287;-1:-1:-1;;6940:287:46:o;7232:209::-;7264:1;7290;7280:132;;7334:10;7329:3;7325:20;7322:1;7315:31;7369:4;7366:1;7359:15;7397:4;7394:1;7387:15;7280:132;-1:-1:-1;7426:9:46;;7232:209::o","linkReferences":{},"immutableReferences":{"50641":[{"start":1902,"length":32},{"start":1943,"length":32},{"start":2363,"length":32}]}},"methodIdentifiers":{"SYSTEM_CALLER()":"d761753e","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptOwnership()":"79ba5097","blockHashes(uint256)":"34cdf78d","blockNumber()":"57e871e7","getBlockHash(uint256)":"ee82ac5e","getWitnessRootByHash(bytes32)":"0466efc4","getWitnessRootByNumber(uint256)":"61b207e2","initializeBlockNumber(uint256)":"1f578333","owner()":"8da5cb5b","pendingOwner()":"e30c3978","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setBlockInfo(bytes32,bytes32)":"0e27bc11","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286","verifyInclusion(bytes32,bytes32,bytes,uint256)":"d269a03e","verifyInclusion(uint256,bytes32,bytes,uint256)":"4ffd344a","witnessRoots(bytes32)":"a91d8b3d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"BlockInfoAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SYSTEM_CALLER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"blockHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_blockHash\",\"type\":\"bytes32\"}],\"name\":\"getWitnessRootByHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getWitnessRootByNumber\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"initializeBlockNumber\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_witnessRoot\",\"type\":\"bytes32\"}],\"name\":\"setBlockInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_wtxId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"verifyInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_wtxId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"verifyInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"witnessRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Citrea\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"getBlockHash(uint256)\":{\"params\":{\"_blockNumber\":\"Number of the block to get the hash for\"},\"returns\":{\"_0\":\"Block hash for the given block\"}},\"getWitnessRootByHash(bytes32)\":{\"params\":{\"_blockHash\":\"Block hash of the block to get the witness root for\"},\"returns\":{\"_0\":\"Witness root for the given block\"}},\"getWitnessRootByNumber(uint256)\":{\"params\":{\"_blockNumber\":\"Block number of the block to get the witness root for\"},\"returns\":{\"_0\":\"Merkle root for the given block\"}},\"initializeBlockNumber(uint256)\":{\"params\":{\"_blockNumber\":\"L1 block number that is associated with the genesis block of Citrea\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setBlockInfo(bytes32,bytes32)\":{\"details\":\"Block number is incremented by the contract as no block info should be overwritten or skipped\",\"params\":{\"_blockHash\":\"Hash of the current L1 block\",\"_witnessRoot\":\"Witness root of the current L1 block, must be in little endian \"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyInclusion(bytes32,bytes32,bytes,uint256)\":{\"details\":\"Witness transaction ID and proof elements must be in little endian\",\"params\":{\"_blockHash\":\"Block hash of the block\",\"_index\":\"Index of the transaction\",\"_proof\":\"Merkle proof\",\"_wtxId\":\"Witness transaction ID\"},\"returns\":{\"_0\":\"If the witness transaction ID is included in the witness root hash of the block\"}},\"verifyInclusion(uint256,bytes32,bytes,uint256)\":{\"details\":\"Witness transaction ID and proof elements must be in little endian\",\"params\":{\"_blockNumber\":\"Block number of the block\",\"_index\":\"Index of the transaction\",\"_proof\":\"Merkle proof\",\"_wtxId\":\"Witness transaction ID\"},\"returns\":{\"_0\":\"If the witness transaction ID is included in the witness root hash of the block\"}}},\"title\":\"A system contract that stores block hashes and witness root hashes of L1 blocks\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initializeBlockNumber(uint256)\":{\"notice\":\"Sets the initial value for the block number, can only be called once\"},\"setBlockInfo(bytes32,bytes32)\":{\"notice\":\"Sets the block hash and witness root for a given blockCan only be called after the initial block number is set\"},\"verifyInclusion(bytes32,bytes32,bytes,uint256)\":{\"notice\":\"Verifies the inclusion of a witness transaction ID in the witness root hash of a block\"},\"verifyInclusion(uint256,bytes32,bytes,uint256)\":{\"notice\":\"Verifies the inclusion of a witness transaction ID in the witness root hash of a block\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BitcoinLightClient.sol\":\"BitcoinLightClient\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":bitcoin-spv/=lib/bitcoin-spv/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/Ownable.sol\":{\"keccak256\":\"0xb748492fa1760e452053648ce613090579d01d6ccc16a9eacb4b4f41eadadd07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://872bf67baa2125e66e79277bd5f82535202b2adaffda589897b2ac54a79cafee\",\"dweb:/ipfs/QmU3LtS45VQjCUosNHHnUCcSATCfSZrDtcoi6GNkMY2M94\"]},\"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol\":{\"keccak256\":\"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc\",\"urls\":[\"bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667\",\"dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH\"]},\"lib/bitcoin-spv/solidity/contracts/BytesLib.sol\":{\"keccak256\":\"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1\",\"urls\":[\"bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6\",\"dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT\"]},\"lib/bitcoin-spv/solidity/contracts/SafeMath.sol\":{\"keccak256\":\"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3\",\"urls\":[\"bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b\",\"dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe\"]},\"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol\":{\"keccak256\":\"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b\",\"urls\":[\"bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a\",\"dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7\",\"dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f13b947637c4969c0644cab4ef399cdc4b67f101463b8775c5a43b118558e53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6683e6ade6985d394d32baaef5eea0d8b9ff0b3eca86ae413d6cdde114a9930\",\"dweb:/ipfs/QmdBE8T1BTddZxpdECMsb3KiCFyjNWmxcCddYrWFTXmWPj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x2a1f9944df2015c081d89cd41ba22ffaf10aa6285969f0dc612b235cc448999c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef381843676aec64421200ee85eaa0b1356a35f28b9fc67e746a6bbb832077d9\",\"dweb:/ipfs/QmY8aorMYA2TeTCnu6ejDjzb4rW4t7TCtW4GZ6LoxTFm7v\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"src/BitcoinLightClient.sol\":{\"keccak256\":\"0x5af38ff9020d36fa48534386ea52a30465934616ee213ac672779456f7a79b1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2935f30ea2764362922818fe26868463350359e32a87ebd7acc979701e663f9e\",\"dweb:/ipfs/QmR3Z7fSDq9m1bjZsvVrgzkeMGawp6YEA4RwNssx79ZMHV\"]},\"src/interfaces/IBitcoinLightClient.sol\":{\"keccak256\":\"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650\",\"dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256","indexed":false},{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32","indexed":false}],"type":"event","name":"BlockInfoAdded","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SYSTEM_CALLER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"blockHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getWitnessRootByHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getWitnessRootByNumber","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initializeBlockNumber"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"},{"internalType":"bytes32","name":"_witnessRoot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBlockInfo"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"internalType":"bytes32","name":"_wtxId","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"},{"internalType":"bytes32","name":"_wtxId","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"witnessRoots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"getBlockHash(uint256)":{"params":{"_blockNumber":"Number of the block to get the hash for"},"returns":{"_0":"Block hash for the given block"}},"getWitnessRootByHash(bytes32)":{"params":{"_blockHash":"Block hash of the block to get the witness root for"},"returns":{"_0":"Witness root for the given block"}},"getWitnessRootByNumber(uint256)":{"params":{"_blockNumber":"Block number of the block to get the witness root for"},"returns":{"_0":"Merkle root for the given block"}},"initializeBlockNumber(uint256)":{"params":{"_blockNumber":"L1 block number that is associated with the genesis block of Citrea"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setBlockInfo(bytes32,bytes32)":{"details":"Block number is incremented by the contract as no block info should be overwritten or skipped","params":{"_blockHash":"Hash of the current L1 block","_witnessRoot":"Witness root of the current L1 block, must be in little endian "}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"verifyInclusion(bytes32,bytes32,bytes,uint256)":{"details":"Witness transaction ID and proof elements must be in little endian","params":{"_blockHash":"Block hash of the block","_index":"Index of the transaction","_proof":"Merkle proof","_wtxId":"Witness transaction ID"},"returns":{"_0":"If the witness transaction ID is included in the witness root hash of the block"}},"verifyInclusion(uint256,bytes32,bytes,uint256)":{"details":"Witness transaction ID and proof elements must be in little endian","params":{"_blockNumber":"Block number of the block","_index":"Index of the transaction","_proof":"Merkle proof","_wtxId":"Witness transaction ID"},"returns":{"_0":"If the witness transaction ID is included in the witness root hash of the block"}}},"version":1},"userdoc":{"kind":"user","methods":{"initializeBlockNumber(uint256)":{"notice":"Sets the initial value for the block number, can only be called once"},"setBlockInfo(bytes32,bytes32)":{"notice":"Sets the block hash and witness root for a given blockCan only be called after the initial block number is set"},"verifyInclusion(bytes32,bytes32,bytes,uint256)":{"notice":"Verifies the inclusion of a witness transaction ID in the witness root hash of a block"},"verifyInclusion(uint256,bytes32,bytes,uint256)":{"notice":"Verifies the inclusion of a witness transaction ID in the witness root hash of a block"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","bitcoin-spv/=lib/bitcoin-spv/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/BitcoinLightClient.sol":"BitcoinLightClient"},"evmVersion":"paris","libraries":{}},"sources":{"lib/Ownable.sol":{"keccak256":"0xb748492fa1760e452053648ce613090579d01d6ccc16a9eacb4b4f41eadadd07","urls":["bzz-raw://872bf67baa2125e66e79277bd5f82535202b2adaffda589897b2ac54a79cafee","dweb:/ipfs/QmU3LtS45VQjCUosNHHnUCcSATCfSZrDtcoi6GNkMY2M94"],"license":"MIT"},"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol":{"keccak256":"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc","urls":["bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667","dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH"],"license":null},"lib/bitcoin-spv/solidity/contracts/BytesLib.sol":{"keccak256":"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1","urls":["bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6","dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT"],"license":null},"lib/bitcoin-spv/solidity/contracts/SafeMath.sol":{"keccak256":"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3","urls":["bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b","dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe"],"license":null},"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol":{"keccak256":"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b","urls":["bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a","dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J"],"license":null},"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol":{"keccak256":"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f","urls":["bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7","dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f13b947637c4969c0644cab4ef399cdc4b67f101463b8775c5a43b118558e53","urls":["bzz-raw://c6683e6ade6985d394d32baaef5eea0d8b9ff0b3eca86ae413d6cdde114a9930","dweb:/ipfs/QmdBE8T1BTddZxpdECMsb3KiCFyjNWmxcCddYrWFTXmWPj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x2a1f9944df2015c081d89cd41ba22ffaf10aa6285969f0dc612b235cc448999c","urls":["bzz-raw://ef381843676aec64421200ee85eaa0b1356a35f28b9fc67e746a6bbb832077d9","dweb:/ipfs/QmY8aorMYA2TeTCnu6ejDjzb4rW4t7TCtW4GZ6LoxTFm7v"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"src/BitcoinLightClient.sol":{"keccak256":"0x5af38ff9020d36fa48534386ea52a30465934616ee213ac672779456f7a79b1f","urls":["bzz-raw://2935f30ea2764362922818fe26868463350359e32a87ebd7acc979701e663f9e","dweb:/ipfs/QmR3Z7fSDq9m1bjZsvVrgzkeMGawp6YEA4RwNssx79ZMHV"],"license":"MIT"},"src/interfaces/IBitcoinLightClient.sol":{"keccak256":"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a","urls":["bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650","dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL"],"license":"MIT"}},"version":1},"id":41} \ No newline at end of file +{"abi":[{"type":"function","name":"SYSTEM_CALLER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"blockHashes","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blockNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getWitnessRootByHash","inputs":[{"name":"_blockHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getWitnessRootByNumber","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initializeBlockNumber","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBlockInfo","inputs":[{"name":"_blockHash","type":"bytes32","internalType":"bytes32"},{"name":"_witnessRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyInclusion","inputs":[{"name":"_blockNumber","type":"uint256","internalType":"uint256"},{"name":"_wtxId","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyInclusion","inputs":[{"name":"_blockHash","type":"bytes32","internalType":"bytes32"},{"name":"_wtxId","type":"bytes32","internalType":"bytes32"},{"name":"_proof","type":"bytes","internalType":"bytes"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"witnessRoots","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"BlockInfoAdded","inputs":[{"name":"blockNumber","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"merkleRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506106bb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056","sourceMap":"675:4087:42:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056","sourceMap":"675:4087:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2718:130;;;;;;:::i;:::-;2791:7;2817:24;;;:12;:24;;;;;;;2718:130;;;;391:25:48;;;379:2;364:18;2718:130:42;;;;;;;;1944:395;;;;;;:::i;:::-;;:::i;:::-;;1366:174;;;;;;:::i;:::-;;:::i;861:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4266:222;;;;;;:::i;:::-;;:::i;:::-;;;2295:14:48;;2288:22;2270:41;;2258:2;2243:18;4266:222:42;2130:187:48;732:26:42;;;;;;2984:149;;;;;;:::i;:::-;3061:7;3100:25;;;:11;:25;;;;;;;;;3087:39;;:12;:39;;;;;;;2984:149;913:47;;;;;;:::i;:::-;;;;;;;;;;;;;;3595:205;;;;;;:::i;:::-;;:::i;764:91::-;;812:42;764:91;;;;;-1:-1:-1;;;;;3437:32:48;;;3419:51;;3407:2;3392:18;764:91:42;3273:203:48;2460:125:42;;;;;;:::i;:::-;2527:7;2553:25;;;:11;:25;;;;;;;2460:125;1944:395;1098:10;812:42;1098:27;1090:71;;;;-1:-1:-1;;;1090:71:42;;3683:2:48;1090:71:42;;;3665:21:48;3722:2;3702:18;;;3695:30;3761:33;3741:18;;;3734:61;3812:18;;1090:71:42;;;;;;;;;2038:20:::1;2061:11:::0;;;2090:17;;;2082:45:::1;;;::::0;-1:-1:-1;;;2082:45:42;;4043:2:48;2082:45:42::1;::::0;::::1;4025:21:48::0;4082:2;4062:18;;;4055:30;-1:-1:-1;;;4101:18:48;;;4094:45;4156:18;;2082:45:42::1;3841:339:48::0;2082:45:42::1;2137:25;::::0;;;:11:::1;:25;::::0;;;;;;;:38;;;2199:16:::1;::::0;2149:12;;2199:16:::1;:::i;:::-;2185:11;:30:::0;;;2225:24;;;:12:::1;:24;::::0;;;;;;;:39;;;2294:11;;2279:53;;4614:25:48;;;4655:18;;;4648:34;;;4698:18;;;4691:34;;;2279:53:42::1;::::0;4602:2:48;4587:18;2279:53:42::1;;;;;;;2028:311;1944:395:::0;;:::o;1366:174::-;1098:10;812:42;1098:27;1090:71;;;;-1:-1:-1;;;1090:71:42;;3683:2:48;1090:71:42;;;3665:21:48;3722:2;3702:18;;;3695:30;3761:33;3741:18;;;3734:61;3812:18;;1090:71:42;3481:355:48;1090:71:42;1457:11:::1;::::0;:16;1449:48:::1;;;::::0;-1:-1:-1;;;1449:48:42;;4938:2:48;1449:48:42::1;::::0;::::1;4920:21:48::0;4977:2;4957:18;;;4950:30;-1:-1:-1;;;4996:18:48;;;4989:49;5055:18;;1449:48:42::1;4736:343:48::0;1449:48:42::1;1507:11;:26:::0;1366:174::o;4266:222::-;4391:4;4431:25;;;:11;:25;;;;;;4414:67;;4458:6;4466;;4474;4414:16;:67::i;:::-;4407:74;4266:222;-1:-1:-1;;;;;;4266:222:42:o;3595:205::-;3718:4;3741:52;3758:10;3770:6;3778;;3786;4494:266;4618:4;4657:24;;;:12;:24;;;;;;;;;4698:55;;;;;;;;;;;;;;;;;;;;4657:24;4698:55;;4716:6;;4657:24;;4698:55;4738:6;;;;;;4698:55;;4738:6;;;;4698:55;;;;;;;;;-1:-1:-1;4746:6:42;;-1:-1:-1;4698:17:42;;-1:-1:-1;;4698:55:42:i;:::-;4691:62;4494:266;-1:-1:-1;;;;;;;4494:266:42:o;1685:539:4:-;1843:4;1913:11;1904:5;:20;:35;;;;-1:-1:-1;1928:11:4;;1904:35;:69;;;;-1:-1:-1;1943:25:4;;:30;1904:69;1900:111;;;-1:-1:-1;1996:4:4;1989:11;;1900:111;2083:134;2125:5;2144:18;2176:11;2201:6;2083:28;:134::i;:::-;2076:141;;1685:539;;;;;;;:::o;36339:829:1:-;36492:4;36567:2;36552:5;:12;:17;;;;:::i;:::-;:22;36548:65;;-1:-1:-1;36597:5:1;36590:12;;36548:65;36657:5;:12;36673:1;36657:17;36653:60;;-1:-1:-1;36697:5:1;36690:12;;36653:60;36735:6;36770:5;36723:9;36825:303;36846:5;:12;36842:1;:16;36825:303;;;36887:8;36894:1;36887:4;:8;:::i;:::-;36899:1;36887:13;36883:205;;36931:46;36950:16;:5;36964:1;12550:28:2;12566:2;12550:28;12544:35;;12417:178;36950:16:1;36968:8;36931:18;:46::i;:::-;36920:57;;36883:205;;;37027:46;37046:8;37056:16;:5;37070:1;12550:28:2;12566:2;12550:28;12544:35;;12417:178;37056:16:1;37027:18;:46::i;:::-;37016:57;;36883:205;37116:1;37108:9;;;;;36860:7;36865:2;36860:7;;:::i;:::-;;;36825:303;;;-1:-1:-1;37144:17:1;;;;36339:829;-1:-1:-1;;;;;36339:829:1:o;34697:127::-;34772:7;34798:19;34810:2;34814;34798:11;:19::i;:::-;34791:26;;34697:127;;;;;:::o;10264:386::-;10332:11;10455:2;10449:4;10442:16;10484:2;10478:4;10471:16;10541:2;10535:4;10531:2;10525:4;10522:1;10515:5;10504:40;10500:45;10599:2;10593:4;10589:2;10583:4;10580:1;10573:5;10562:40;-1:-1:-1;;10629:4:1;10623:11;;10264:386;-1:-1:-1;;10264:386:1:o;14:226:48:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:48;;14:226;-1:-1:-1;14:226:48:o;427:346::-;495:6;503;556:2;544:9;535:7;531:23;527:32;524:52;;;572:1;569;562:12;524:52;-1:-1:-1;;617:23:48;;;737:2;722:18;;;709:32;;-1:-1:-1;427:346:48:o;1009:347::-;1060:8;1070:6;1124:3;1117:4;1109:6;1105:17;1101:27;1091:55;;1142:1;1139;1132:12;1091:55;-1:-1:-1;1165:20:48;;1208:18;1197:30;;1194:50;;;1240:1;1237;1230:12;1194:50;1277:4;1269:6;1265:17;1253:29;;1329:3;1322:4;1313:6;1305;1301:19;1297:30;1294:39;1291:59;;;1346:1;1343;1336:12;1291:59;1009:347;;;;;:::o;1361:764::-;1458:6;1466;1474;1482;1490;1543:3;1531:9;1522:7;1518:23;1514:33;1511:53;;;1560:1;1557;1550:12;1511:53;1605:23;;;-1:-1:-1;1725:2:48;1710:18;;1697:32;;-1:-1:-1;1806:2:48;1791:18;;1778:32;1833:18;1822:30;;1819:50;;;1865:1;1862;1855:12;1819:50;1904:58;1954:7;1945:6;1934:9;1930:22;1904:58;:::i;:::-;1361:764;;;;-1:-1:-1;1981:8:48;2089:2;2074:18;2061:32;;1361:764;-1:-1:-1;;;;1361:764:48:o;4185:222::-;4250:9;;;4271:10;;;4268:133;;;4323:10;4318:3;4314:20;4311:1;4304:31;4358:4;4355:1;4348:15;4386:4;4383:1;4376:15;5084:209;5116:1;5142;5132:132;;5186:10;5181:3;5177:20;5174:1;5167:31;5221:4;5218:1;5211:15;5249:4;5246:1;5239:15;5132:132;-1:-1:-1;5278:9:48;;5084:209::o","linkReferences":{}},"methodIdentifiers":{"SYSTEM_CALLER()":"d761753e","blockHashes(uint256)":"34cdf78d","blockNumber()":"57e871e7","getBlockHash(uint256)":"ee82ac5e","getWitnessRootByHash(bytes32)":"0466efc4","getWitnessRootByNumber(uint256)":"61b207e2","initializeBlockNumber(uint256)":"1f578333","setBlockInfo(bytes32,bytes32)":"0e27bc11","verifyInclusion(bytes32,bytes32,bytes,uint256)":"d269a03e","verifyInclusion(uint256,bytes32,bytes,uint256)":"4ffd344a","witnessRoots(bytes32)":"a91d8b3d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"BlockInfoAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SYSTEM_CALLER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"blockHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_blockHash\",\"type\":\"bytes32\"}],\"name\":\"getWitnessRootByHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getWitnessRootByNumber\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"initializeBlockNumber\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_witnessRoot\",\"type\":\"bytes32\"}],\"name\":\"setBlockInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_wtxId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"verifyInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_wtxId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"verifyInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"witnessRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Citrea\",\"kind\":\"dev\",\"methods\":{\"getBlockHash(uint256)\":{\"params\":{\"_blockNumber\":\"Number of the block to get the hash for\"},\"returns\":{\"_0\":\"Block hash for the given block\"}},\"getWitnessRootByHash(bytes32)\":{\"params\":{\"_blockHash\":\"Block hash of the block to get the witness root for\"},\"returns\":{\"_0\":\"Witness root for the given block\"}},\"getWitnessRootByNumber(uint256)\":{\"params\":{\"_blockNumber\":\"Block number of the block to get the witness root for\"},\"returns\":{\"_0\":\"Merkle root for the given block\"}},\"initializeBlockNumber(uint256)\":{\"params\":{\"_blockNumber\":\"L1 block number that is associated with the genesis block of Citrea\"}},\"setBlockInfo(bytes32,bytes32)\":{\"details\":\"Block number is incremented by the contract as no block info should be overwritten or skipped\",\"params\":{\"_blockHash\":\"Hash of the current L1 block\",\"_witnessRoot\":\"Witness root of the current L1 block, must be in little endian \"}},\"verifyInclusion(bytes32,bytes32,bytes,uint256)\":{\"details\":\"Witness transaction ID and proof elements must be in little endian\",\"params\":{\"_blockHash\":\"Block hash of the block\",\"_index\":\"Index of the transaction\",\"_proof\":\"Merkle proof\",\"_wtxId\":\"Witness transaction ID\"},\"returns\":{\"_0\":\"If the witness transaction ID is included in the witness root hash of the block\"}},\"verifyInclusion(uint256,bytes32,bytes,uint256)\":{\"details\":\"Witness transaction ID and proof elements must be in little endian\",\"params\":{\"_blockNumber\":\"Block number of the block\",\"_index\":\"Index of the transaction\",\"_proof\":\"Merkle proof\",\"_wtxId\":\"Witness transaction ID\"},\"returns\":{\"_0\":\"If the witness transaction ID is included in the witness root hash of the block\"}}},\"title\":\"A system contract that stores block hashes and witness root hashes of L1 blocks\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initializeBlockNumber(uint256)\":{\"notice\":\"Sets the initial value for the block number, can only be called once\"},\"setBlockInfo(bytes32,bytes32)\":{\"notice\":\"Sets the block hash and witness root for a given blockCan only be called after the initial block number is set\"},\"verifyInclusion(bytes32,bytes32,bytes,uint256)\":{\"notice\":\"Verifies the inclusion of a witness transaction ID in the witness root hash of a block\"},\"verifyInclusion(uint256,bytes32,bytes,uint256)\":{\"notice\":\"Verifies the inclusion of a witness transaction ID in the witness root hash of a block\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BitcoinLightClient.sol\":\"BitcoinLightClient\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":bitcoin-spv/=lib/bitcoin-spv/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol\":{\"keccak256\":\"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc\",\"urls\":[\"bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667\",\"dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH\"]},\"lib/bitcoin-spv/solidity/contracts/BytesLib.sol\":{\"keccak256\":\"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1\",\"urls\":[\"bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6\",\"dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT\"]},\"lib/bitcoin-spv/solidity/contracts/SafeMath.sol\":{\"keccak256\":\"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3\",\"urls\":[\"bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b\",\"dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe\"]},\"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol\":{\"keccak256\":\"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b\",\"urls\":[\"bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a\",\"dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7\",\"dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"src/BitcoinLightClient.sol\":{\"keccak256\":\"0x9c8acc0e16c7a02b3328bf41cf08922b43f1eaf780199a0cf4aefac61ad2528c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac95a3440699da490d6830aec1ad4d515d7bba605be570767b39cf7fbdd182e7\",\"dweb:/ipfs/QmUt8FcufKn5afs1n2cf2JF1wwti1pDSaNnxDzJNRcqyWf\"]},\"src/interfaces/IBitcoinLightClient.sol\":{\"keccak256\":\"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650\",\"dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256","indexed":false},{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32","indexed":false}],"type":"event","name":"BlockInfoAdded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SYSTEM_CALLER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"blockHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getWitnessRootByHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getWitnessRootByNumber","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initializeBlockNumber"},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"},{"internalType":"bytes32","name":"_witnessRoot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setBlockInfo"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"internalType":"bytes32","name":"_wtxId","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"},{"internalType":"bytes32","name":"_wtxId","type":"bytes32"},{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"witnessRoots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"getBlockHash(uint256)":{"params":{"_blockNumber":"Number of the block to get the hash for"},"returns":{"_0":"Block hash for the given block"}},"getWitnessRootByHash(bytes32)":{"params":{"_blockHash":"Block hash of the block to get the witness root for"},"returns":{"_0":"Witness root for the given block"}},"getWitnessRootByNumber(uint256)":{"params":{"_blockNumber":"Block number of the block to get the witness root for"},"returns":{"_0":"Merkle root for the given block"}},"initializeBlockNumber(uint256)":{"params":{"_blockNumber":"L1 block number that is associated with the genesis block of Citrea"}},"setBlockInfo(bytes32,bytes32)":{"details":"Block number is incremented by the contract as no block info should be overwritten or skipped","params":{"_blockHash":"Hash of the current L1 block","_witnessRoot":"Witness root of the current L1 block, must be in little endian "}},"verifyInclusion(bytes32,bytes32,bytes,uint256)":{"details":"Witness transaction ID and proof elements must be in little endian","params":{"_blockHash":"Block hash of the block","_index":"Index of the transaction","_proof":"Merkle proof","_wtxId":"Witness transaction ID"},"returns":{"_0":"If the witness transaction ID is included in the witness root hash of the block"}},"verifyInclusion(uint256,bytes32,bytes,uint256)":{"details":"Witness transaction ID and proof elements must be in little endian","params":{"_blockNumber":"Block number of the block","_index":"Index of the transaction","_proof":"Merkle proof","_wtxId":"Witness transaction ID"},"returns":{"_0":"If the witness transaction ID is included in the witness root hash of the block"}}},"version":1},"userdoc":{"kind":"user","methods":{"initializeBlockNumber(uint256)":{"notice":"Sets the initial value for the block number, can only be called once"},"setBlockInfo(bytes32,bytes32)":{"notice":"Sets the block hash and witness root for a given blockCan only be called after the initial block number is set"},"verifyInclusion(bytes32,bytes32,bytes,uint256)":{"notice":"Verifies the inclusion of a witness transaction ID in the witness root hash of a block"},"verifyInclusion(uint256,bytes32,bytes,uint256)":{"notice":"Verifies the inclusion of a witness transaction ID in the witness root hash of a block"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","bitcoin-spv/=lib/bitcoin-spv/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BitcoinLightClient.sol":"BitcoinLightClient"},"evmVersion":"paris","libraries":{}},"sources":{"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol":{"keccak256":"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc","urls":["bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667","dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH"],"license":null},"lib/bitcoin-spv/solidity/contracts/BytesLib.sol":{"keccak256":"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1","urls":["bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6","dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT"],"license":null},"lib/bitcoin-spv/solidity/contracts/SafeMath.sol":{"keccak256":"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3","urls":["bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b","dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe"],"license":null},"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol":{"keccak256":"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b","urls":["bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a","dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J"],"license":null},"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol":{"keccak256":"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f","urls":["bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7","dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"src/BitcoinLightClient.sol":{"keccak256":"0x9c8acc0e16c7a02b3328bf41cf08922b43f1eaf780199a0cf4aefac61ad2528c","urls":["bzz-raw://ac95a3440699da490d6830aec1ad4d515d7bba605be570767b39cf7fbdd182e7","dweb:/ipfs/QmUt8FcufKn5afs1n2cf2JF1wwti1pDSaNnxDzJNRcqyWf"],"license":"MIT"},"src/interfaces/IBitcoinLightClient.sol":{"keccak256":"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a","urls":["bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650","dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL"],"license":"MIT"}},"version":1},"id":42} \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/out/Bridge.sol/Bridge.json b/crates/evm/src/evm/system_contracts/out/Bridge.sol/Bridge.json index 306719083..4f5d9d30e 100644 --- a/crates/evm/src/evm/system_contracts/out/Bridge.sol/Bridge.json +++ b/crates/evm/src/evm/system_contracts/out/Bridge.sol/Bridge.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DEPOSIT_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"LIGHT_CLIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BitcoinLightClient"}],"stateMutability":"view"},{"type":"function","name":"SYSTEM_CALLER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchWithdraw","inputs":[{"name":"bitcoin_addresses","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"p","type":"tuple","internalType":"struct Bridge.DepositParams","components":[{"name":"version","type":"bytes4","internalType":"bytes4"},{"name":"flag","type":"bytes2","internalType":"bytes2"},{"name":"vin","type":"bytes","internalType":"bytes"},{"name":"vout","type":"bytes","internalType":"bytes"},{"name":"witness","type":"bytes","internalType":"bytes"},{"name":"locktime","type":"bytes4","internalType":"bytes4"},{"name":"intermediate_nodes","type":"bytes","internalType":"bytes"},{"name":"block_height","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositScript","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getWithdrawalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_depositScript","type":"bytes","internalType":"bytes"},{"name":"_scriptSuffix","type":"bytes","internalType":"bytes"},{"name":"_requiredSigsCount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requiredSigsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"scriptSuffix","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"setDepositScript","inputs":[{"name":"_depositScript","type":"bytes","internalType":"bytes"},{"name":"_scriptSuffix","type":"bytes","internalType":"bytes"},{"name":"_requiredSigsCount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spentWtxIds","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"bitcoin_address","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawalAddrs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"Deposit","inputs":[{"name":"wtxId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DepositScriptUpdate","inputs":[{"name":"depositScript","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"scriptSuffix","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"requiredSigsCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorUpdated","inputs":[{"name":"oldOperator","type":"address","indexed":false,"internalType":"address"},{"name":"newOperator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"bitcoin_address","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a060405230608052348015601357600080fd5b506080516129e061003d600039600081816113e60152818161140f015261155501526129e06000f3fe6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033","sourceMap":"484:8830:42:-:0;;;1171:4:31;1128:48;;484:8830:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033","sourceMap":"484:8830:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1089:23;;;;;;;;;;-1:-1:-1;1089:23:42;;;;;;;;;;;179:14:53;;172:22;154:41;;142:2;127:18;1089:23:42;;;;;;;;2340:810;;;;;;;;;;-1:-1:-1;2340:810:42;;;;;:::i;:::-;;:::i;:::-;;1204:32;;;;;;;;;;;;;;;;;;;1494:25:53;;;1482:2;1467:18;1204:32:42;1348:177:53;4158:214:31;;;;;;:::i;:::-;;:::i;3705:134::-;;;;;;;;;;;;;:::i;1175:23:42:-;;;;;;;;;;-1:-1:-1;1175:23:42;;;;;;;-1:-1:-1;;;;;1175:23:42;;;;;;-1:-1:-1;;;;;3186:32:53;;;3168:51;;3156:2;3141:18;1175:23:42;3022:203:53;7361:440:42;;;;;;:::i;:::-;;:::i;1310:43::-;;;;;;;;;;-1:-1:-1;1310:43:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;3155:101:29;;;;;;;;;;;;;:::i;7864:108:42:-;;;;;;;;;;-1:-1:-1;7943:15:42;:22;7864:108;;2774:229:28;;;;;;;;;;;;;:::i;1274:25:42:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2441:144:29:-;;;;;;;;;;;;;:::i;6815:301:42:-;;;;;;:::i;:::-;;:::i;3643:505::-;;;;;;;;;;-1:-1:-1;3643:505:42;;;;;:::i;:::-;;:::i;1819:58:31:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:31;;;;;8115:147:42;;;;;;;;;;-1:-1:-1;8115:147:42;;;;;:::i;:::-;;:::i;1242:26::-;;;;;;;;;;;;;:::i;1359:32::-;;;;;;;;;;-1:-1:-1;1359:32:42;;;;;:::i;:::-;;:::i;991:91::-;;;;;;;;;;;;1039:42;991:91;;4376:2185;;;;;;;;;;-1:-1:-1;4376:2185:42;;;;;:::i;:::-;;:::i;1680:168:28:-;;;;;;;;;;;;;:::i;864:121:42:-;;;;;;;;;;;;-1:-1:-1;;;;;864:121:42;;1118:51;;;;;;;;;;;;1159:10;1118:51;;2041:247:28;;;;;;;;;;-1:-1:-1;2041:247:28;;;;;:::i;:::-;;:::i;2340:810:42:-;1764:10;1039:42;1764:27;1756:71;;;;-1:-1:-1;;;1756:71:42;;6224:2:53;1756:71:42;;;6206:21:53;6263:2;6243:18;;;6236:30;6302:33;6282:18;;;6275:61;6353:18;;1756:71:42;;;;;;;;;2488:11:::1;::::0;::::1;;2487:12;2479:56;;;::::0;-1:-1:-1;;;2479:56:42;;6584:2:53;2479:56:42::1;::::0;::::1;6566:21:53::0;6623:2;6603:18;;;6596:30;6662:33;6642:18;;;6635:61;6713:18;;2479:56:42::1;6382:355:53::0;2479:56:42::1;2553:18;2575:1;2553:23:::0;2545:62:::1;;;::::0;-1:-1:-1;;;2545:62:42;;6944:2:53;2545:62:42::1;::::0;::::1;6926:21:53::0;6983:2;6963:18;;;6956:30;7022:28;7002:18;;;6995:56;7068:18;;2545:62:42::1;6742:350:53::0;2545:62:42::1;2650:1;2625:26:::0;;;2617:69:::1;;;::::0;-1:-1:-1;;;2617:69:42;;7299:2:53;2617:69:42::1;::::0;::::1;7281:21:53::0;7338:2;7318:18;;;7311:30;7377:32;7357:18;;;7350:60;7427:18;;2617:69:42::1;7097:354:53::0;2617:69:42::1;2697:11;:18:::0;;-1:-1:-1;;2697:18:42::1;2711:4;2697:18;::::0;;2725:13:::1;:30;2741:14:::0;;2725:13;:30:::1;:::i;:::-;-1:-1:-1::0;2765:12:42::1;:28;2780:13:::0;;2765:12;:28:::1;:::i;:::-;-1:-1:-1::0;2803:17:42::1;:38:::0;;;2976:8:::1;:24:::0;;-1:-1:-1;;;;;;2976:24:42::1;::::0;::::1;::::0;;3016:42:::1;::::0;;10103:34:53;;;1039:42:42::1;10168:2:53::0;10153:18;;10146:43;3016:42:42::1;::::0;10038:18:53;3016:42:42::1;;;;;;;3073:70;3093:14;;3109:13;;3124:18;3073:70;;;;;;;;;;:::i;:::-;;;;;;;;2340:810:::0;;;;;:::o;4158:214:31:-;2653:13;:11;:13::i;:::-;4273:36:::1;4291:17;4273;:36::i;:::-;4319:46;4341:17;4360:4;4319:21;:46::i;:::-;4158:214:::0;;:::o;3705:134::-;3774:7;2924:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3705:134:31;:::o;7361:440:42:-;7470:41;7487:17;1159:10;7470:41;:::i;:::-;7457:9;:54;7449:90;;;;-1:-1:-1;;;7449:90:42;;11485:2:53;7449:90:42;;;11467:21:53;11524:2;11504:18;;;11497:30;-1:-1:-1;;;11543:18:53;;;11536:53;11606:18;;7449:90:42;11283:347:53;7449:90:42;7565:15;:22;7549:13;7597:198;7614:28;;;7597:198;;;7663:15;7684:17;;7702:1;7684:20;;;;;;;:::i;:::-;7663:42;;;;;;;-1:-1:-1;7663:42:42;;;7684:20;7663:42;;;;7684:20;;;;;;;;;7663:42;;;;;-1:-1:-1;7724:60:42;7735:17;;7753:1;7735:20;;;;;;;:::i;:::-;;;;;;;7765:1;7757:5;:9;;;;:::i;:::-;7724:60;;;12099:25:53;;;12155:2;12140:18;;12133:34;;;;7768:15:42;12183:18:53;;;12176:34;12087:2;12072:18;7724:60:42;;;;;;;7644:3;;7597:198;;;;7439:362;7361:440;;:::o;3155:101:29:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;2774:229:28:-;966:10:32;;2869:14:28;:12;:14::i;:::-;-1:-1:-1;;;;;2869:24:28;;2865:96;;2916:34;;-1:-1:-1;;;2916:34:28;;-1:-1:-1;;;;;3186:32:53;;2916:34:28;;;3168:51:53;3141:18;;2916:34:28;3022:203:53;2865:96:28;2970:26;2989:6;2970:18;:26::i;:::-;2816:187;2774:229::o;1274:25:42:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2441:144:29:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:29;;2441:144;-1:-1:-1;;2441:144:29:o;6815:301:42:-;1159:10;6893:9;:27;6885:63;;;;-1:-1:-1;;;6885:63:42;;11485:2:53;6885:63:42;;;11467:21:53;11524:2;11504:18;;;11497:30;-1:-1:-1;;;11543:18:53;;;11536:53;11606:18;;6885:63:42;11283:347:53;6885:63:42;6974:15;:22;;7006:37;;;;;-1:-1:-1;7006:37:42;;;;;;;;;;7058:51;;;12099:25:53;;;12155:2;12140:18;;12133:34;;;7093:15:42;12183:18:53;;;12176:34;7058:51:42;;;;;;;12087:2:53;7058:51:42;;;6875:241;6815:301;:::o;3643:505::-;2334:13:29;:11;:13::i;:::-;3795:18:42::1;3817:1;3795:23:::0;3787:62:::1;;;::::0;-1:-1:-1;;;3787:62:42;;6944:2:53;3787:62:42::1;::::0;::::1;6926:21:53::0;6983:2;6963:18;;;6956:30;7022:28;7002:18;;;6995:56;7068:18;;3787:62:42::1;6742:350:53::0;3787:62:42::1;3892:1;3867:26:::0;;;3859:69:::1;;;::::0;-1:-1:-1;;;3859:69:42;;7299:2:53;3859:69:42::1;::::0;::::1;7281:21:53::0;7338:2;7318:18;;;7311:30;7377:32;7357:18;;;7350:60;7427:18;;3859:69:42::1;7097:354:53::0;3859:69:42::1;3939:13;:30;3955:14:::0;;3939:13;:30:::1;:::i;:::-;-1:-1:-1::0;3979:12:42::1;:28;3994:13:::0;;3979:12;:28:::1;:::i;:::-;-1:-1:-1::0;4017:17:42::1;:38:::0;;;4071:70:::1;::::0;::::1;::::0;::::1;::::0;4091:14;;;;4107:13;;;;4037:18;;4071:70:::1;:::i;8115:147::-:0;2334:13:29;:11;:13::i;:::-;8184:8:42::1;:20:::0;;-1:-1:-1;;;;;;8184:20:42::1;;-1:-1:-1::0;;;;;8184:20:42;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;8219:36:::1;::::0;;8235:8;;;::::1;;10103:34:53::0;;10168:2;10153:18;;10146:43;;;;8219:36:42::1;::::0;10038:18:53;8219:36:42::1;;;;;;;8115:147:::0;:::o;1242:26::-;;;;;;;:::i;1359:32::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1359:32:42;:::o;4376:2185::-;1907:8;;;;;-1:-1:-1;;;;;1907:8:42;1893:10;:22;1885:61;;;;-1:-1:-1;;;1885:61:42;;12423:2:53;1885:61:42;;;12405:21:53;12462:2;12442:18;;;12435:30;12501:28;12481:18;;;12474:56;12547:18;;1885:61:42;12221:350:53;1885:61:42;4802:13:::1;4818:84;4846:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;4857:6;::::0;;;::::1;::::0;::::1;;:::i;:::-;4865:5;;::::0;::::1;:1:::0;:5:::1;:::i;:::-;4872:6;;::::0;::::1;:1:::0;:6:::1;:::i;:::-;4880:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;4891:10;::::0;;;::::1;::::0;::::1;;:::i;:::-;4818:27;:84::i;:::-;4921:18;::::0;;;:11:::1;:18;::::0;;;;;4802:100;;-1:-1:-1;4921:18:42::1;;4920:19;4912:51;;;::::0;-1:-1:-1;;;4912:51:42;;13881:2:53;4912:51:42::1;::::0;::::1;13863:21:53::0;13920:2;13900:18;;;13893:30;-1:-1:-1;;;13939:18:53;;;13932:49;13998:18;;4912:51:42::1;13679:343:53::0;4912:51:42::1;4973:18;::::0;;;:11:::1;:18;::::0;;;;;;:25;;-1:-1:-1;;4973:25:42::1;4994:4;4973:25;::::0;;5017:27:::1;::::0;5038:5:::1;::::0;;::::1;:1:::0;:5:::1;:::i;:::-;5017:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5017:20:42::1;::::0;-1:-1:-1;;;5017:27:42:i:1;:::-;5009:69;;;::::0;-1:-1:-1;;;5009:69:42;;14229:2:53;5009:69:42::1;::::0;::::1;14211:21:53::0;14268:2;14248:18;;;14241:30;14307:31;14287:18;;;14280:59;14356:18;;5009:69:42::1;14027:353:53::0;5009:69:42::1;5096:29;5118:6;;::::0;::::1;:1:::0;:6:::1;:::i;:::-;5096:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5096:21:42::1;::::0;-1:-1:-1;;;5096:29:42:i:1;:::-;5088:72;;;::::0;-1:-1:-1;;;5088:72:42;;14587:2:53;5088:72:42::1;::::0;::::1;14569:21:53::0;14626:2;14606:18;;;14599:30;14665:32;14645:18;;;14638:60;14715:18;;5088:72:42::1;14385:354:53::0;5088:72:42::1;5182:13;5199:27;5220:5;;::::0;::::1;:1:::0;:5:::1;:::i;:::-;5199:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5199:20:42::1;::::0;-1:-1:-1;;;5199:27:42:i:1;:::-;5179:47;;;5244:5;5253:1;5244:10;5236:45;;;::::0;-1:-1:-1;;;5236:45:42;;14946:2:53;5236:45:42::1;::::0;::::1;14928:21:53::0;14985:2;14965:18;;;14958:30;-1:-1:-1;;;15004:18:53;;;14997:52;15066:18;;5236:45:42::1;14744:346:53::0;5236:45:42::1;5350:46;5379:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;5350:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5390:5:42;;-1:-1:-1;5350:28:42::1;::::0;-1:-1:-1;;5350:46:42:i:1;:::-;5342:92;;;::::0;-1:-1:-1;;;5342:92:42;;15297:2:53;5342:92:42::1;::::0;::::1;15279:21:53::0;15336:2;15316:18;;;15309:30;15375:34;15355:18;;;15348:62;-1:-1:-1;;;15426:18:53;;;15419:31;15467:19;;5342:92:42::1;15095:397:53::0;5342:92:42::1;-1:-1:-1::0;;;;;5453:28:42::1;5482:14;::::0;::::1;;5498:5:::0;5505:20:::1;;::::0;::::1;5482:1:::0;5505:20:::1;:::i;:::-;5527:1;:7;;;5453:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5445:122;;;::::0;-1:-1:-1;;;5445:122:42;;16445:2:53;5445:122:42::1;::::0;::::1;16427:21:53::0;16484:2;16464:18;;;16457:30;16523:29;16503:18;;;16496:57;16570:18;;5445:122:42::1;16243:351:53::0;5445:122:42::1;5578:21;5602:48;5637:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;5602:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;5602:48:42;-1:-1:-1;5602:34:42::1;::::0;-1:-1:-1;;5602:48:42:i:1;:::-;5578:72;;5663:15;5682:30;5703:8;5682:20;:30::i;:::-;5660:52;;;5741:17;;5761:1;5741:21;;;;:::i;:::-;5730:7;:32;5722:66;;;::::0;-1:-1:-1;;;5722:66:42;;16801:2:53;5722:66:42::1;::::0;::::1;16783:21:53::0;16840:2;16820:18;;;16813:30;-1:-1:-1;;;16859:18:53;;;16852:51;16920:18;;5722:66:42::1;16599:345:53::0;5722:66:42::1;5850:19;5872:64;5908:8;5918:17;;5872:35;:64::i;:::-;5850:86;;5946:12;5961:13;:20;;;;;:::i;:::-;::::0;-1:-1:-1;5991:27:42::1;::::0;-1:-1:-1;6021:21:42::1;:6:::0;5991:27;5961:20;6021:12:::1;:21::i;:::-;5991:51;;6060:43;6073:14;6089:13;6060:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:43::i;:::-;6052:78;;;::::0;-1:-1:-1;;;6052:78:42;;17151:2:53;6052:78:42::1;::::0;::::1;17133:21:53::0;17190:2;17170:18;;;17163:30;-1:-1:-1;;;17209:18:53;;;17202:52;17271:18;;6052:78:42::1;16949:346:53::0;6052:78:42::1;6140:20;6163:52;6176:9;:4:::0;6183:2:::1;6176:9;:::i;:::-;6204;:4:::0;6211:2:::1;6204:9;:::i;:::-;6187:6;:13;:27;;;;:::i;:::-;6163:6:::0;;:52;:12:::1;:52::i;:::-;6140:75;;6257:35;6270:7;6279:12;6257:35;;;;;:::i;:::-;6249:69;;;::::0;-1:-1:-1;;;6249:69:42;;17635:2:53;6249:69:42::1;::::0;::::1;17617:21:53::0;17674:2;17654:18;;;17647:30;-1:-1:-1;;;17693:18:53;;;17686:51;17754:18;;6249:69:42::1;17433:345:53::0;6249:69:42::1;6329:17;6349:31;6373:6;6349:23;:31::i;:::-;6396:42;::::0;;17985:25:53;;;-1:-1:-1;;;;;18046:32:53;;18041:2;18026:18;;18019:60;6422:15:42::1;18095:18:53::0;;;18088:34;6396:42:42;;18046:32:53;;-1:-1:-1;6396:42:42::1;::::0;;;;;17973:2:53;6396:42:42;;::::1;6450:12;6468:9;-1:-1:-1::0;;;;;6468:14:42::1;1159:10;6468:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6449:60;;;6527:7;6519:35;;;::::0;-1:-1:-1;;;6519:35:42;;18545:2:53;6519:35:42::1;::::0;::::1;18527:21:53::0;18584:2;18564:18;;;18557:30;-1:-1:-1;;;18603:18:53;;;18596:45;18658:18;;6519:35:42::1;18343:339:53::0;6519:35:42::1;4455:2106;;;;;;;;;;4376:2185:::0;:::o;1680:168:28:-;1733:7;;1318:27;1784:25;1187:174;2041:247;2334:13:29;:11;:13::i;:::-;1318:27:28;2197:26;;-1:-1:-1;;;;;;2197:26:28::1;-1:-1:-1::0;;;;;2197:26:28;::::1;::::0;;::::1;::::0;;2263:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2238:43:28::1;;;;;;;;;;;2120:168;2041:247:::0;:::o;4599:312:31:-;4679:4;-1:-1:-1;;;;;4688:6:31;4671:23;;;:120;;;4785:6;-1:-1:-1;;;;;4749:42:31;:32;-1:-1:-1;;;;;;;;;;;2035:53:35;-1:-1:-1;;;;;2035:53:35;;1957:138;4749:32:31;-1:-1:-1;;;;;4749:42:31;;;4671:120;4654:251;;;4865:29;;-1:-1:-1;;;4865:29:31;;;;;;;;;;;9246:66:42;2334:13:29;:11;:13::i;6052:538:31:-;6169:17;-1:-1:-1;;;;;6151:50:31;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6151:52:31;;;;;;;;-1:-1:-1;;6151:52:31;;;;;;;;;;;;:::i;:::-;;;6147:437;;6513:60;;-1:-1:-1;;;6513:60:31;;-1:-1:-1;;;;;3186:32:53;;6513:60:31;;;3168:51:53;3141:18;;6513:60:31;3022:203:53;6147:437:31;-1:-1:-1;;;;;;;;;;;6245:40:31;;6241:120;;6312:34;;-1:-1:-1;;;6312:34:31;;;;;1494:25:53;;;1467:18;;6312:34:31;1348:177:53;6241:120:31;6374:54;6404:17;6423:4;6374:29;:54::i;:::-;6204:235;6052:538;;:::o;5028:213::-;5102:4;-1:-1:-1;;;;;5111:6:31;5094:23;;5090:145;;5195:29;;-1:-1:-1;;;5195:29:31;;;;;;;;;;;2658:162:29;966:10:32;2717:7:29;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:29;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:29;;966:10:32;2763:40:29;;;3168:51:53;3141:18;;2763:40:29;3022:203:53;2472:222:28;1318:27;2621:22;;-1:-1:-1;;;;;;2621:22:28;;;2653:34;2678:8;2653:24;:34::i;463:320:0:-;675:7;701:75;718:7;727:4;733:3;;738:4;;744:7;;753:8;701:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:73;:75::i;:::-;694:82;463:320;-1:-1:-1;;;;;;;;;;463:320:0:o;27793:991:1:-;27856:4;27872:22;27904:13;27954:17;27966:4;27954:11;:17::i;:::-;27928:43;;-1:-1:-1;27928:43:1;-1:-1:-1;28050:10:1;;;:43;;;-1:-1:-1;;28064:14:1;:29;28050:43;28046:86;;;-1:-1:-1;28116:5:1;;27793:991;-1:-1:-1;;;27793:991:1:o;28046:86::-;28142:15;28160:18;28164:14;28160:1;:18;:::i;:::-;28142:36;;28194:9;28189:492;28213:5;28209:1;:9;28189:492;;;28312:4;:11;28301:7;:22;28297:73;;-1:-1:-1;28350:5:1;;27793:991;-1:-1:-1;;;;;27793:991:1:o;28297:73::-;28445:16;28464:37;28487:4;28493:7;28464:22;:37::i;:::-;28445:56;;-1:-1:-1;;28519:8:1;:23;28515:74;;-1:-1:-1;28569:5:1;;27793:991;-1:-1:-1;;;;;;27793:991:1:o;28515:74::-;28651:19;28662:8;28651:19;;:::i;:::-;;-1:-1:-1;;28220:3:1;;28189:492;;;-1:-1:-1;28766:11:1;;28755:22;;;;;-1:-1:-1;;;27793:991:1:o;29056:1004::-;29121:4;29137:22;29169:14;29221:18;29233:5;29221:11;:18::i;:::-;29194:45;;-1:-1:-1;29194:45:1;-1:-1:-1;29319:11:1;;;:44;;;-1:-1:-1;;29334:14:1;:29;29319:44;29315:87;;;-1:-1:-1;29386:5:1;;29056:1004;-1:-1:-1;;;29056:1004:1:o;29315:87::-;29412:15;29430:18;29434:14;29430:1;:18;:::i;:::-;29412:36;;29464:9;29459:497;29483:6;29479:1;:10;29459:497;;;29583:5;:12;29572:7;:23;29568:74;;-1:-1:-1;29622:5:1;;29056:1004;-1:-1:-1;;;;;29056:1004:1:o;29568:74::-;29766:16;29785:39;29809:5;29816:7;29785:23;:39::i;:::-;29766:58;;-1:-1:-1;;29842:8:1;:23;29838:74;;-1:-1:-1;29892:5:1;;29056:1004;-1:-1:-1;;;;;;29056:1004:1:o;29838:74::-;29926:19;29937:8;29926:19;;:::i;:::-;;-1:-1:-1;;29491:3:1;;29459:497;;2414:123;2475:7;2484;2510:20;2524:2;2528:1;2510:13;:20::i;:::-;2503:27;;;;2414:123;;;:::o;1092:871:0:-;1179:4;1254:6;1264:1;1254:11;1250:54;;-1:-1:-1;1288:5:0;1281:12;;1250:54;1314:15;1349:9;1344:512;1368:6;1364:1;:10;1344:512;;;1468:8;:15;1457:7;:26;1453:77;;1510:5;1503:12;;;;;;1453:77;1605:16;1624:43;1649:8;1659:7;1624:24;:43::i;:::-;1605:62;;-1:-1:-1;;1685:8:0;:32;1681:83;;1744:5;1737:12;;;;;;;1681:83;1826:19;1837:8;1826:19;;:::i;:::-;;-1:-1:-1;;1376:3:0;;1344:512;;;-1:-1:-1;1941:15:0;;1930:26;;-1:-1:-1;1092:871:0;;;;;:::o;3428:579::-;3521:12;3545;3571:15;3606:10;3601:221;3627:6;3622:2;:11;3601:221;;;3663:43;3688:8;3698:7;3663:24;:43::i;:::-;3656:50;;-1:-1:-1;;3728:4:0;:28;3720:62;;;;-1:-1:-1;;;3720:62:0;;19968:2:53;3720:62:0;;;19950:21:53;20007:2;19987:18;;;19980:30;-1:-1:-1;;;20026:18:53;;;20019:51;20087:18;;3720:62:0;19766:345:53;3720:62:0;3796:15;3807:4;3796:15;;:::i;:::-;;-1:-1:-1;3635:5:0;;3601:221;;;;3839:43;3864:8;3874:7;3839:24;:43::i;:::-;3832:50;;-1:-1:-1;;3900:4:0;:28;3892:62;;;;-1:-1:-1;;;3892:62:0;;19968:2:53;3892:62:0;;;19950:21:53;20007:2;19987:18;;;19980:30;-1:-1:-1;;;20026:18:53;;;20019:51;20087:18;;3892:62:0;19766:345:53;3892:62:0;3971:29;:8;3986:7;3995:4;3971:14;:29::i;:::-;3964:36;3428:579;-1:-1:-1;;;;;3428:579:0:o;4368:974::-;4462:12;4486:22;4518:15;4580:30;4601:8;4580:20;:30::i;:::-;4552:58;;-1:-1:-1;4552:58:0;-1:-1:-1;4628:38:0;;;4620:85;;;;-1:-1:-1;;;4620:85:0;;20318:2:53;4620:85:0;;;20300:21:53;20357:2;20337:18;;;20330:30;20396:34;20376:18;;;20369:62;-1:-1:-1;;;20447:18:53;;;20440:32;20489:19;;4620:85:0;20116:398:53;4620:85:0;4732:7;4723:6;:16;4715:45;;;;-1:-1:-1;;;4715:45:0;;20721:2:53;4715:45:0;;;20703:21:53;20760:2;20740:18;;;20733:30;-1:-1:-1;;;20779:18:53;;;20772:46;20835:18;;4715:45:0;20519:340:53;4715:45:0;4771:16;;4819:18;4823:14;4819:1;:18;:::i;:::-;4801:36;;4853:9;4848:263;4872:6;4868:1;:10;4848:263;;;4928:41;4951:8;4961:7;4928:22;:41::i;:::-;4899:70;;-1:-1:-1;4899:70:0;-1:-1:-1;4991:32:0;;;4983:63;;;;-1:-1:-1;;;4983:63:0;;21066:2:53;4983:63:0;;;21048:21:53;21105:2;21085:18;;;21078:30;-1:-1:-1;;;21124:18:53;;;21117:48;21182:18;;4983:63:0;20864:342:53;4983:63:0;5092:8;5071:18;5075:14;5071:1;:18;:::i;:::-;:29;;;;:::i;:::-;5060:40;;;;:::i;:::-;;-1:-1:-1;4880:3:0;;4848:263;;;;5150:41;5173:8;5183:7;5150:22;:41::i;:::-;5121:70;;-1:-1:-1;5121:70:0;-1:-1:-1;5209:32:0;;;5201:63;;;;-1:-1:-1;;;5201:63:0;;21066:2:53;5201:63:0;;;21048:21:53;21105:2;21085:18;;;21078:30;-1:-1:-1;;;21124:18:53;;;21117:48;21182:18;;5201:63:0;20864:342:53;5201:63:0;5281:54;5296:7;5305:25;5316:14;5305:8;:25;:::i;:::-;:29;;5333:1;5305:29;:::i;:::-;5281:8;;:54;:14;:54::i;:::-;5274:61;4368:974;-1:-1:-1;;;;;;;4368:974:0:o;10344:924:2:-;10431:16;10463:7;10474:1;10463:12;10459:55;;-1:-1:-1;10491:12:2;;;;;;;;;-1:-1:-1;10491:12:2;;;;10459:55;10523:9;10535:16;10544:7;10535:6;:16;:::i;:::-;10523:28;;10576:6;10569:4;:13;:38;;;;;10603:4;10586:6;:13;:21;;10569:38;10561:70;;;;-1:-1:-1;;;10561:70:2;;21413:2:53;10561:70:2;;;21395:21:53;21452:2;21432:18;;;21425:30;-1:-1:-1;;;21471:18:53;;;21464:49;21530:18;;10561:70:2;21211:343:53;10561:70:2;10768:4;10762:11;10755:18;;10817:7;10812:2;10807:3;10803:12;10799:26;10793:4;10786:40;10851:7;10846:3;10839:20;10978:6;10970;10966:19;10961:3;10957:29;11054:6;11049:2;11041:6;11037:15;11033:28;11098:7;11093:3;11089:17;11000:252;11129:3;11124;11121:12;11000:252;;;11233:3;11227:10;11220:4;11215:3;11211:14;11204:34;11168:2;11163:3;11159:12;11152:19;;11000:252;;;11004:116;;;10651:611;10344:924;;;;;;:::o;8553:440:42:-;8630:11;8673:1;:8;8661:1;:8;:20;8653:53;;;;-1:-1:-1;;;8653:53:42;;21761:2:53;8653:53:42;;;21743:21:53;21800:2;21780:18;;;21773:30;-1:-1:-1;;;21819:18:53;;;21812:50;21879:18;;8653:53:42;21559:344:53;8653:53:42;8792:8;;8778:11;8810:154;8831:6;8827:1;:10;8810:154;;;8870:1;8872;8870:4;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8862:12:42;;:1;8864;8862:4;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;8862:4:42;:12;8858:96;;8903:5;8894:14;;8926:13;;;;8858:96;8839:3;;8810:154;;;-1:-1:-1;8982:4:42;;8553:440;-1:-1:-1;;;;8553:440:42:o;8999:241::-;9077:7;9096:14;9113:13;:20;;;;;:::i;:::-;;-1:-1:-1;9143:13:42;;-1:-1:-1;9167:25:42;:7;9113:20;9189:2;9167:13;:25::i;:::-;9159:34;;;:::i;:::-;9218:14;;;8999:241;-1:-1:-1;;;;8999:241:42:o;2779:335:35:-;2870:37;2889:17;2870:18;:37::i;:::-;2922:27;;-1:-1:-1;;;;;2922:27:35;;;;;;;;2964:11;;:15;2960:148;;2995:53;3024:17;3043:4;2995:28;:53::i;2960:148::-;3079:18;:16;:18::i;3774:248:29:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:29;;-1:-1:-1;;;;;3941:19:29;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;9609:335:1:-;9670:11;9835:2;9829:4;9824:2;9818:9;9813:2;9809;9805:11;9802:1;9795:5;9784:54;9780:59;9893:2;9887:4;9883:2;9877:4;9874:1;9867:5;9856:40;-1:-1:-1;;9923:4:1;9917:11;;9609:335;-1:-1:-1;9609:335:1:o;14980:394::-;15069:7;15088:22;15120:21;15185:34;15207:6;15215:3;15185:21;:34::i;:::-;15151:68;;-1:-1:-1;15151:68:1;-1:-1:-1;15233:29:1;;;15229:78;;-1:-1:-1;;15278:18:1;;;;;;15229:78;15350:13;15324:23;15333:14;15324:6;:23;:::i;:::-;:39;;;;:::i;:::-;:43;;15366:1;15324:43;:::i;20911:536::-;21002:7;21042;21046:3;21042:1;:7;:::i;:::-;21025;:14;:24;21021:73;;;-1:-1:-1;;;21065:18:1;;21021:73;21103:22;;21212:31;21226:7;21235;21239:3;21235:1;:7;:::i;:::-;21212:13;:31::i;:::-;21172:71;;-1:-1:-1;21172:71:1;-1:-1:-1;21258:29:1;;;21254:78;;-1:-1:-1;;21303:18:1;;;;;;21254:78;21421:19;21396:22;21404:14;21396:5;:22;:::i;:::-;:44;;;;:::i;2999:704::-;3075:7;3084;3103:14;3120:36;3148:2;3152:3;3120:27;:36::i;:::-;3103:53;;3171:8;:13;;3183:1;3171:13;3167:70;;3208:1;3217:2;3220:3;3217:7;;;;;;;;:::i;:::-;;;;;3200:26;;-1:-1:-1;3217:7:1;;;-1:-1:-1;3200:26:1;;-1:-1:-1;3200:26:1;3167:70;3277:3;3262:12;3266:8;3262:1;:12;:::i;:::-;:18;;;;;;:::i;:::-;3250:2;:9;:30;3246:84;;;-1:-1:-1;;3317:1:1;3296:23;;;;;;;3246:84;3339:15;3368:8;:13;;3380:1;3368:13;3364:297;;3407:41;3428:18;3438:7;3442:3;3438:1;:7;:::i;:::-;3428:2;;:9;:18::i;:::-;7042:7;;;;;;7054;;;;;7041:21;;6959:110;3407:41;3397:51;;;;3364:297;;;3469:8;:13;;3481:1;3469:13;3465:196;;3508:41;3529:18;3539:7;3543:3;3539:1;:7;:::i;3529:18::-;6397:21;;;;;;6402:10;6360:6;;;;;6359:21;;;;6358:61;6485:2;6480:7;;;6468;;;6467:21;;6238:257;3508:41;3498:51;;;;3465:196;;;3570:8;:13;;3582:1;3570:13;3566:95;;3609:41;3630:18;3640:7;3644:3;3640:1;:7;:::i;3630:18::-;3623:26;;5965:22;5866:1;5793:6;;;5965:22;;;;5838:29;;;;5965:22;;;;5992:2;5964:30;;;5838:29;6056:7;5843:18;5792:29;;;;5838;;;;5791:77;;;;5918:7;;;5969:18;5917:30;6056:7;6061:2;6044:7;;;6056;;;6043:21;;5671:400;3609:41;3599:51;;;;3566:95;3670:26;;;;;-1:-1:-1;3688:7:1;-1:-1:-1;2999:704:1;;;;;;:::o;2286:759:0:-;2379:7;2398:22;2430:14;2490:37;2513:8;2523:3;2490:22;:37::i;:::-;2463:64;;-1:-1:-1;2463:64:0;-1:-1:-1;2541:38:0;;;2537:96;;-1:-1:-1;;2595:27:0;;;;;;2537:96;2643:16;;2687:18;2691:14;2687:1;:18;:::i;:::-;2669:36;;2721:9;2716:298;2740:6;2736:1;:10;2716:298;;;2796:41;2819:8;2829:7;2796:22;:41::i;:::-;2767:70;;-1:-1:-1;2767:70:0;-1:-1:-1;2855:32:0;;;2851:98;;-1:-1:-1;;2907:27:0;;;;;;;;;2851:98;2995:8;2974:18;2978:14;2974:1;:18;:::i;:::-;:29;;;;:::i;:::-;2963:40;;;;:::i;:::-;;-1:-1:-1;2748:3:0;;2716:298;;;-1:-1:-1;3031:7:0;2286:759;-1:-1:-1;;;;;;2286:759:0:o;2186:281:35:-;2263:17;-1:-1:-1;;;;;2263:29:35;;2296:1;2263:34;2259:119;;2320:47;;-1:-1:-1;;;2320:47:35;;-1:-1:-1;;;;;3186:32:53;;2320:47:35;;;3168:51:53;3141:18;;2320:47:35;3022:203:53;2259:119:35;-1:-1:-1;;;;;;;;;;;2387:73:35;;-1:-1:-1;;;;;;2387:73:35;-1:-1:-1;;;;;2387:73:35;;;;;;;;;;2186:281::o;4106:253:38:-;4189:12;4214;4228:23;4255:6;-1:-1:-1;;;;;4255:19:38;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;:55::i;6598:122:35:-;6648:9;:13;6644:70;;6684:19;;-1:-1:-1;;;6684:19:35;;;;;;;;;;;13785:388:1;13873:7;;13921:8;13926:3;13921:2;:8;:::i;:::-;13905:6;:13;:24;13901:78;;;-1:-1:-1;;;654:66:1;-1:-1:-1;13966:1:1;13945:23;;13901:78;13989:22;;14086:31;14100:6;14108:8;:3;14114:2;14108:8;:::i;14086:31::-;14052:65;;;;-1:-1:-1;13785:388:1;-1:-1:-1;;;;;13785:388:1:o;1550:446::-;1640:5;1667:2;1670:3;1667:7;;;;;;;;:::i;:::-;;;;;;;1661:14;:22;1657:93;;-1:-1:-1;1706:1:1;1699:8;;1657:93;1769:2;1772:3;1769:7;;;;;;;;:::i;:::-;;;;;;;1781:4;1763:22;1759:93;;-1:-1:-1;1808:1:1;1801:8;;1759:93;1871:2;1874:3;1871:7;;;;;;;;:::i;:::-;;;;;;;1883:4;1865:22;1861:93;;-1:-1:-1;1910:1:1;1903:8;;1861:93;-1:-1:-1;1971:1:1;1550:446;;;;:::o;13493:136:2:-;13566:6;13598:23;13606:6;13614;12550:28;12566:2;12550:28;12544:35;;12417:178;4625:582:38;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:38;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:38;;-1:-1:-1;;;;;3186:32:53;;5121:24:38;;;3168:51:53;3141:18;;5121:24:38;3022:203:53;5041:119:38;-1:-1:-1;5180:10:38;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:38;;;;;;;;;;;206:347:53;257:8;267:6;321:3;314:4;306:6;302:17;298:27;288:55;;339:1;336;329:12;288:55;-1:-1:-1;362:20:53;;405:18;394:30;;391:50;;;437:1;434;427:12;391:50;474:4;466:6;462:17;450:29;;526:3;519:4;510:6;502;498:19;494:30;491:39;488:59;;;543:1;540;533:12;558:785;657:6;665;673;681;689;742:2;730:9;721:7;717:23;713:32;710:52;;;758:1;755;748:12;710:52;798:9;785:23;827:18;868:2;860:6;857:14;854:34;;;884:1;881;874:12;854:34;923:58;973:7;964:6;953:9;949:22;923:58;:::i;:::-;1000:8;;-1:-1:-1;897:84:53;-1:-1:-1;1088:2:53;1073:18;;1060:32;;-1:-1:-1;1104:16:53;;;1101:36;;;1133:1;1130;1123:12;1101:36;;1172:60;1224:7;1213:8;1202:9;1198:24;1172:60;:::i;:::-;558:785;;;;-1:-1:-1;1251:8:53;1333:2;1318:18;1305:32;;558:785;-1:-1:-1;;;;558:785:53:o;1530:173::-;1598:20;;-1:-1:-1;;;;;1647:31:53;;1637:42;;1627:70;;1693:1;1690;1683:12;1627:70;1530:173;;;:::o;1708:127::-;1769:10;1764:3;1760:20;1757:1;1750:31;1800:4;1797:1;1790:15;1824:4;1821:1;1814:15;1840:995;1917:6;1925;1978:2;1966:9;1957:7;1953:23;1949:32;1946:52;;;1994:1;1991;1984:12;1946:52;2017:29;2036:9;2017:29;:::i;:::-;2007:39;;2097:2;2086:9;2082:18;2069:32;2120:18;2161:2;2153:6;2150:14;2147:34;;;2177:1;2174;2167:12;2147:34;2215:6;2204:9;2200:22;2190:32;;2260:7;2253:4;2249:2;2245:13;2241:27;2231:55;;2282:1;2279;2272:12;2231:55;2318:2;2305:16;2340:2;2336;2333:10;2330:36;;;2346:18;;:::i;:::-;2421:2;2415:9;2389:2;2475:13;;-1:-1:-1;;2471:22:53;;;2495:2;2467:31;2463:40;2451:53;;;2519:18;;;2539:22;;;2516:46;2513:72;;;2565:18;;:::i;:::-;2605:10;2601:2;2594:22;2640:2;2632:6;2625:18;2680:7;2675:2;2670;2666;2662:11;2658:20;2655:33;2652:53;;;2701:1;2698;2691:12;2652:53;2757:2;2752;2748;2744:11;2739:2;2731:6;2727:15;2714:46;2802:1;2797:2;2792;2784:6;2780:15;2776:24;2769:35;2823:6;2813:16;;;;;;;1840:995;;;;;:::o;3230:615::-;3316:6;3324;3377:2;3365:9;3356:7;3352:23;3348:32;3345:52;;;3393:1;3390;3383:12;3345:52;3433:9;3420:23;3462:18;3503:2;3495:6;3492:14;3489:34;;;3519:1;3516;3509:12;3489:34;3557:6;3546:9;3542:22;3532:32;;3602:7;3595:4;3591:2;3587:13;3583:27;3573:55;;3624:1;3621;3614:12;3573:55;3664:2;3651:16;3690:2;3682:6;3679:14;3676:34;;;3706:1;3703;3696:12;3676:34;3759:7;3754:2;3744:6;3741:1;3737:14;3733:2;3729:23;3725:32;3722:45;3719:65;;;3780:1;3777;3770:12;3719:65;3811:2;3803:11;;;;;3833:6;;-1:-1:-1;3230:615:53;;-1:-1:-1;;;;3230:615:53:o;3850:180::-;3909:6;3962:2;3950:9;3941:7;3937:23;3933:32;3930:52;;;3978:1;3975;3968:12;3930:52;-1:-1:-1;4001:23:53;;3850:180;-1:-1:-1;3850:180:53:o;4035:250::-;4120:1;4130:113;4144:6;4141:1;4138:13;4130:113;;;4220:11;;;4214:18;4201:11;;;4194:39;4166:2;4159:10;4130:113;;;-1:-1:-1;;4277:1:53;4259:16;;4252:27;4035:250::o;4290:270::-;4331:3;4369:5;4363:12;4396:6;4391:3;4384:19;4412:76;4481:6;4474:4;4469:3;4465:14;4458:4;4451:5;4447:16;4412:76;:::i;:::-;4542:2;4521:15;-1:-1:-1;;4517:29:53;4508:39;;;;4549:4;4504:50;;4290:270;-1:-1:-1;;4290:270:53:o;4565:217::-;4712:2;4701:9;4694:21;4675:4;4732:44;4772:2;4761:9;4757:18;4749:6;4732:44;:::i;5011:186::-;5070:6;5123:2;5111:9;5102:7;5098:23;5094:32;5091:52;;;5139:1;5136;5129:12;5091:52;5162:29;5181:9;5162:29;:::i;5387:394::-;5480:6;5533:2;5521:9;5512:7;5508:23;5504:32;5501:52;;;5549:1;5546;5539:12;5501:52;5589:9;5576:23;5622:18;5614:6;5611:30;5608:50;;;5654:1;5651;5644:12;5608:50;5677:22;;5733:3;5715:16;;;5711:26;5708:46;;;5750:1;5747;5740:12;7456:380;7535:1;7531:12;;;;7578;;;7599:61;;7653:4;7645:6;7641:17;7631:27;;7599:61;7706:2;7698:6;7695:14;7675:18;7672:38;7669:161;;7752:10;7747:3;7743:20;7740:1;7733:31;7787:4;7784:1;7777:15;7815:4;7812:1;7805:15;7669:161;;7456:380;;;:::o;7966:542::-;8067:2;8062:3;8059:11;8056:446;;;8103:1;8127:5;8124:1;8117:16;8171:4;8168:1;8158:18;8241:2;8229:10;8225:19;8222:1;8218:27;8212:4;8208:38;8277:4;8265:10;8262:20;8259:47;;;-1:-1:-1;8300:4:53;8259:47;8355:2;8350:3;8346:12;8343:1;8339:20;8333:4;8329:31;8319:41;;8410:82;8428:2;8421:5;8418:13;8410:82;;;8473:17;;;8454:1;8443:13;8410:82;;;8414:3;;;7966:542;;;:::o;8684:1202::-;8806:18;8801:3;8798:27;8795:53;;;8828:18;;:::i;:::-;8857:93;8946:3;8906:38;8938:4;8932:11;8906:38;:::i;:::-;8900:4;8857:93;:::i;:::-;8976:1;9001:2;8996:3;8993:11;9018:1;9013:615;;;;9672:1;9689:3;9686:93;;;-1:-1:-1;9745:19:53;;;9732:33;9686:93;-1:-1:-1;;8641:1:53;8637:11;;;8633:24;8629:29;8619:40;8665:1;8661:11;;;8616:57;9792:78;;8986:894;;9013:615;7913:1;7906:14;;;7950:4;7937:18;;-1:-1:-1;;9049:17:53;;;9149:9;9171:229;9185:7;9182:1;9179:14;9171:229;;;9274:19;;;9261:33;9246:49;;9381:4;9366:20;;;;9334:1;9322:14;;;;9201:12;9171:229;;;9175:3;9428;9419:7;9416:16;9413:159;;;9552:1;9548:6;9542:3;9536;9533:1;9529:11;9525:21;9521:34;9517:39;9504:9;9499:3;9495:19;9482:33;9478:79;9470:6;9463:95;9413:159;;;9615:1;9609:3;9606:1;9602:11;9598:19;9592:4;9585:33;8986:894;;;8684:1202;;;:::o;10200:266::-;10288:6;10283:3;10276:19;10340:6;10333:5;10326:4;10321:3;10317:14;10304:43;-1:-1:-1;10392:1:53;10367:16;;;10385:4;10363:27;;;10356:38;;;;10448:2;10427:15;;;-1:-1:-1;;10423:29:53;10414:39;;;10410:50;;10200:266::o;10471:502::-;10712:2;10701:9;10694:21;10675:4;10738:61;10795:2;10784:9;10780:18;10772:6;10764;10738:61;:::i;:::-;10847:9;10839:6;10835:22;10830:2;10819:9;10815:18;10808:50;10875:49;10917:6;10909;10901;10875:49;:::i;:::-;10867:57;;;10960:6;10955:2;10944:9;10940:18;10933:34;10471:502;;;;;;;;:::o;10978:127::-;11039:10;11034:3;11030:20;11027:1;11020:31;11070:4;11067:1;11060:15;11094:4;11091:1;11084:15;11110:168;11183:9;;;11214;;11231:15;;;11225:22;;11211:37;11201:71;;11252:18;;:::i;11635:127::-;11696:10;11691:3;11687:20;11684:1;11677:31;11727:4;11724:1;11717:15;11751:4;11748:1;11741:15;11767:125;11832:9;;;11853:10;;;11850:36;;;11866:18;;:::i;12576:286::-;12634:6;12687:2;12675:9;12666:7;12662:23;12658:32;12655:52;;;12703:1;12700;12693:12;12655:52;12729:23;;-1:-1:-1;;;;;;12781:32:53;;12771:43;;12761:71;;12828:1;12825;12818:12;12867:281;12925:6;12978:2;12966:9;12957:7;12953:23;12949:32;12946:52;;;12994:1;12991;12984:12;12946:52;13020:23;;-1:-1:-1;;;;;;13072:27:53;;13062:38;;13052:66;;13114:1;13111;13104:12;13153:521;13230:4;13236:6;13296:11;13283:25;13390:2;13386:7;13375:8;13359:14;13355:29;13351:43;13331:18;13327:68;13317:96;;13409:1;13406;13399:12;13317:96;13436:33;;13488:20;;;-1:-1:-1;13531:18:53;13520:30;;13517:50;;;13563:1;13560;13553:12;13517:50;13596:4;13584:17;;-1:-1:-1;13627:14:53;13623:27;;;13613:38;;13610:58;;;13664:1;13661;13654:12;15497:459;15738:6;15727:9;15720:25;15781:6;15776:2;15765:9;15761:18;15754:34;15824:3;15819:2;15808:9;15804:18;15797:31;15701:4;15845:62;15902:3;15891:9;15887:19;15879:6;15871;15845:62;:::i;:::-;15837:70;;15943:6;15938:2;15927:9;15923:18;15916:34;15497:459;;;;;;;;:::o;15961:277::-;16028:6;16081:2;16069:9;16060:7;16056:23;16052:32;16049:52;;;16097:1;16094;16087:12;16049:52;16129:9;16123:16;16182:5;16175:13;16168:21;16161:5;16158:32;16148:60;;16204:1;16201;16194:12;17300:128;17367:9;;;17388:11;;;17385:37;;;17402:18;;:::i;18687:184::-;18757:6;18810:2;18798:9;18789:7;18785:23;18781:32;18778:52;;;18826:1;18823;18816:12;18778:52;-1:-1:-1;18849:16:53;;18687:184;-1:-1:-1;18687:184:53:o;18876:885::-;-1:-1:-1;;;;;;19274:15:53;;;19262:28;;-1:-1:-1;;;;;;19319:28:53;;19315:1;19306:11;;19299:49;19205:3;;19391:6;19383;19379:1;19370:11;;19357:41;19426:6;19421:3;19417:16;19460:1;19456:2;19452:10;19482:1;19478:2;19471:13;19518:6;19510;19506:2;19493:32;;19552:6;19548:2;19544:15;19534:25;;19586:1;19582:2;19578:10;19608:1;19604:2;19597:13;19644:6;19636;19632:2;19619:32;-1:-1:-1;19713:15:53;;19674;;;;19691:1;19670:23;;19702:27;;;;-1:-1:-1;19745:10:53;;;18876:885;-1:-1:-1;;;;;;;;18876:885:53:o;21908:375::-;22026:12;;22074:4;22063:16;;22057:23;-1:-1:-1;;22148:11:53;;;;22026:12;22057:23;22182:2;22171:14;;22168:109;;;22264:2;22258;22248:6;22244:2;22240:15;22237:1;22233:23;22229:32;22225:2;22221:41;22217:50;22208:59;;22168:109;;;;21908:375;;;:::o;22288:148::-;22376:4;22355:12;;;22369;;;22351:31;;22394:13;;22391:39;;;22410:18;;:::i;22441:287::-;22570:3;22608:6;22602:13;22624:66;22683:6;22678:3;22671:4;22663:6;22659:17;22624:66;:::i;:::-;22706:16;;;;;22441:287;-1:-1:-1;;22441:287:53:o","linkReferences":{},"immutableReferences":{"50525":[{"start":5094,"length":32},{"start":5135,"length":32},{"start":5461,"length":32}]}},"methodIdentifiers":{"DEPOSIT_AMOUNT()":"ec6925a7","LIGHT_CLIENT()":"e613ae00","SYSTEM_CALLER()":"d761753e","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptOwnership()":"79ba5097","batchWithdraw(bytes32[])":"59c19cee","deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))":"dd95c7c6","depositScript()":"b93780f6","getWithdrawalCount()":"781952a8","initialize(bytes,bytes,uint256)":"41260137","initialized()":"158ef93e","operator()":"570ca735","owner()":"8da5cb5b","pendingOwner()":"e30c3978","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","requiredSigsCount()":"43e31687","scriptSuffix()":"87f8bf56","setDepositScript(bytes,bytes,uint256)":"9f963f59","setOperator(address)":"b3ab15fb","spentWtxIds(bytes32)":"5e0e5b3e","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(bytes32)":"8e19899e","withdrawalAddrs(uint256)":"d1c44456"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wtxId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"depositScript\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"scriptSuffix\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredSigsCount\",\"type\":\"uint256\"}],\"name\":\"DepositScriptUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"OperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"bitcoin_address\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSIT_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIGHT_CLIENT\",\"outputs\":[{\"internalType\":\"contract BitcoinLightClient\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYSTEM_CALLER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"bitcoin_addresses\",\"type\":\"bytes32[]\"}],\"name\":\"batchWithdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes4\",\"name\":\"version\",\"type\":\"bytes4\"},{\"internalType\":\"bytes2\",\"name\":\"flag\",\"type\":\"bytes2\"},{\"internalType\":\"bytes\",\"name\":\"vin\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"vout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"witness\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"locktime\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"intermediate_nodes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"block_height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct Bridge.DepositParams\",\"name\":\"p\",\"type\":\"tuple\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositScript\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWithdrawalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_depositScript\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_scriptSuffix\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_requiredSigsCount\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requiredSigsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scriptSuffix\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_depositScript\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_scriptSuffix\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_requiredSigsCount\",\"type\":\"uint256\"}],\"name\":\"setDepositScript\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"spentWtxIds\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bitcoin_address\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdrawalAddrs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Citrea\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"batchWithdraw(bytes32[])\":{\"details\":\"Takes in multiple Bitcoin addresses as recipient addresses should be unique\",\"params\":{\"bitcoin_addresses\":\"The Bitcoin addresses of the receivers\"}},\"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))\":{\"params\":{\"p\":\"The deposit parameters that contains the info of the deposit transaction on Bitcoin\"}},\"getWithdrawalCount()\":{\"returns\":{\"_0\":\"The count of withdrawals happened so far\"}},\"initialize(bytes,bytes,uint256)\":{\"params\":{\"_depositScript\":\"The deposit script expected in the witness field for all L1 deposits\",\"_requiredSigsCount\":\"The number of signatures that is contained in the deposit script\",\"_scriptSuffix\":\"The suffix of the deposit script that follows the receiver address\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDepositScript(bytes,bytes,uint256)\":{\"details\":\"Deposit script contains a fixed script that checks signatures of verifiers and pushes EVM address of the receiver\",\"params\":{\"_depositScript\":\"The new deposit script\",\"_requiredSigsCount\":\"The number of signatures that are needed for deposit transaction\",\"_scriptSuffix\":\"The part of the deposit script that succeeds the receiver address\"}},\"setOperator(address)\":{\"params\":{\"_operator\":\"Address of the privileged operator\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(bytes32)\":{\"params\":{\"bitcoin_address\":\"The Bitcoin address of the receiver\"}}},\"title\":\"Bridge contract of Clementine\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"batchWithdraw(bytes32[])\":{\"notice\":\"Batch version of `withdraw` that can accept multiple cBTC\"},\"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))\":{\"notice\":\"Checks if funds 1 BTC is sent to the bridge multisig on Bitcoin, and if so, sends 1 cBTC to the receiver\"},\"initialize(bytes,bytes,uint256)\":{\"notice\":\"Initializes the bridge contract and sets the deposit script\"},\"setDepositScript(bytes,bytes,uint256)\":{\"notice\":\"Sets the expected deposit script of the deposit transaction on Bitcoin, contained in the witness\"},\"setOperator(address)\":{\"notice\":\"Sets the operator address that can process user deposits\"},\"withdraw(bytes32)\":{\"notice\":\"Accepts 1 cBTC from the sender and inserts this withdrawal request of 1 BTC on Bitcoin into the withdrawals array so that later on can be processed by the operator \"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Bridge.sol\":\"Bridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":bitcoin-spv/=lib/bitcoin-spv/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/WitnessUtils.sol\":{\"keccak256\":\"0x1fa2790ebb0313f318f3c864fd6aed82b88216caff7fa7397960c132544d7a4a\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://bccb5efa0edc81a435a9917433f0aea005ad71697dc5635edbc5acb9067d42cf\",\"dweb:/ipfs/QmUXSwCsXinGZKbdWbhYHDvDLsRgYMuWsKbQR7JFoawA6K\"]},\"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol\":{\"keccak256\":\"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc\",\"urls\":[\"bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667\",\"dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH\"]},\"lib/bitcoin-spv/solidity/contracts/BytesLib.sol\":{\"keccak256\":\"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1\",\"urls\":[\"bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6\",\"dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT\"]},\"lib/bitcoin-spv/solidity/contracts/SafeMath.sol\":{\"keccak256\":\"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3\",\"urls\":[\"bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b\",\"dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe\"]},\"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol\":{\"keccak256\":\"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b\",\"urls\":[\"bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a\",\"dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7\",\"dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f13b947637c4969c0644cab4ef399cdc4b67f101463b8775c5a43b118558e53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6683e6ade6985d394d32baaef5eea0d8b9ff0b3eca86ae413d6cdde114a9930\",\"dweb:/ipfs/QmdBE8T1BTddZxpdECMsb3KiCFyjNWmxcCddYrWFTXmWPj\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x2a1f9944df2015c081d89cd41ba22ffaf10aa6285969f0dc612b235cc448999c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef381843676aec64421200ee85eaa0b1356a35f28b9fc67e746a6bbb832077d9\",\"dweb:/ipfs/QmY8aorMYA2TeTCnu6ejDjzb4rW4t7TCtW4GZ6LoxTFm7v\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"src/BitcoinLightClient.sol\":{\"keccak256\":\"0x668f026e05f732ed49b9a3d2a587e53442a866eca9b76162b113716c6ad1ad3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73e5f4e08fd5a1ae985105222d86ab81a7a6f8a9266ca1c25a4ded5afa2a2c1e\",\"dweb:/ipfs/QmPDxx3CV8EHGoQFAfJP4ChdUHRiPeMC6KvLZv7nhBfeT9\"]},\"src/Bridge.sol\":{\"keccak256\":\"0x39d942a84e715ae04d79ae8744859e682bb816ce5358a93decdb8c0eb81d2582\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b1028afd6ff63cfad66a34b28f65d0387e8ed6d8c85dc8528b4e31f3beb2fb4\",\"dweb:/ipfs/QmYVXJkdNHRfnYN2o6LX6E8UH2gqt83c7J57ke5A7n4i2c\"]},\"src/interfaces/IBitcoinLightClient.sol\":{\"keccak256\":\"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650\",\"dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"bytes32","name":"wtxId","type":"bytes32","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"bytes","name":"depositScript","type":"bytes","indexed":false},{"internalType":"bytes","name":"scriptSuffix","type":"bytes","indexed":false},{"internalType":"uint256","name":"requiredSigsCount","type":"uint256","indexed":false}],"type":"event","name":"DepositScriptUpdate","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOperator","type":"address","indexed":false},{"internalType":"address","name":"newOperator","type":"address","indexed":false}],"type":"event","name":"OperatorUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bitcoin_address","type":"bytes32","indexed":false},{"internalType":"uint256","name":"index","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LIGHT_CLIENT","outputs":[{"internalType":"contract BitcoinLightClient","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SYSTEM_CALLER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"bytes32[]","name":"bitcoin_addresses","type":"bytes32[]"}],"stateMutability":"payable","type":"function","name":"batchWithdraw"},{"inputs":[{"internalType":"struct Bridge.DepositParams","name":"p","type":"tuple","components":[{"internalType":"bytes4","name":"version","type":"bytes4"},{"internalType":"bytes2","name":"flag","type":"bytes2"},{"internalType":"bytes","name":"vin","type":"bytes"},{"internalType":"bytes","name":"vout","type":"bytes"},{"internalType":"bytes","name":"witness","type":"bytes"},{"internalType":"bytes4","name":"locktime","type":"bytes4"},{"internalType":"bytes","name":"intermediate_nodes","type":"bytes"},{"internalType":"uint256","name":"block_height","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"depositScript","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getWithdrawalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_depositScript","type":"bytes"},{"internalType":"bytes","name":"_scriptSuffix","type":"bytes"},{"internalType":"uint256","name":"_requiredSigsCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"requiredSigsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scriptSuffix","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"_depositScript","type":"bytes"},{"internalType":"bytes","name":"_scriptSuffix","type":"bytes"},{"internalType":"uint256","name":"_requiredSigsCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositScript"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperator"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"spentWtxIds","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"bytes32","name":"bitcoin_address","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalAddrs","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"batchWithdraw(bytes32[])":{"details":"Takes in multiple Bitcoin addresses as recipient addresses should be unique","params":{"bitcoin_addresses":"The Bitcoin addresses of the receivers"}},"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))":{"params":{"p":"The deposit parameters that contains the info of the deposit transaction on Bitcoin"}},"getWithdrawalCount()":{"returns":{"_0":"The count of withdrawals happened so far"}},"initialize(bytes,bytes,uint256)":{"params":{"_depositScript":"The deposit script expected in the witness field for all L1 deposits","_requiredSigsCount":"The number of signatures that is contained in the deposit script","_scriptSuffix":"The suffix of the deposit script that follows the receiver address"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDepositScript(bytes,bytes,uint256)":{"details":"Deposit script contains a fixed script that checks signatures of verifiers and pushes EVM address of the receiver","params":{"_depositScript":"The new deposit script","_requiredSigsCount":"The number of signatures that are needed for deposit transaction","_scriptSuffix":"The part of the deposit script that succeeds the receiver address"}},"setOperator(address)":{"params":{"_operator":"Address of the privileged operator"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdraw(bytes32)":{"params":{"bitcoin_address":"The Bitcoin address of the receiver"}}},"version":1},"userdoc":{"kind":"user","methods":{"batchWithdraw(bytes32[])":{"notice":"Batch version of `withdraw` that can accept multiple cBTC"},"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))":{"notice":"Checks if funds 1 BTC is sent to the bridge multisig on Bitcoin, and if so, sends 1 cBTC to the receiver"},"initialize(bytes,bytes,uint256)":{"notice":"Initializes the bridge contract and sets the deposit script"},"setDepositScript(bytes,bytes,uint256)":{"notice":"Sets the expected deposit script of the deposit transaction on Bitcoin, contained in the witness"},"setOperator(address)":{"notice":"Sets the operator address that can process user deposits"},"withdraw(bytes32)":{"notice":"Accepts 1 cBTC from the sender and inserts this withdrawal request of 1 BTC on Bitcoin into the withdrawals array so that later on can be processed by the operator "}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","bitcoin-spv/=lib/bitcoin-spv/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Bridge.sol":"Bridge"},"evmVersion":"paris","libraries":{}},"sources":{"lib/WitnessUtils.sol":{"keccak256":"0x1fa2790ebb0313f318f3c864fd6aed82b88216caff7fa7397960c132544d7a4a","urls":["bzz-raw://bccb5efa0edc81a435a9917433f0aea005ad71697dc5635edbc5acb9067d42cf","dweb:/ipfs/QmUXSwCsXinGZKbdWbhYHDvDLsRgYMuWsKbQR7JFoawA6K"],"license":"LGPL-3.0-or-later"},"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol":{"keccak256":"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc","urls":["bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667","dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH"],"license":null},"lib/bitcoin-spv/solidity/contracts/BytesLib.sol":{"keccak256":"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1","urls":["bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6","dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT"],"license":null},"lib/bitcoin-spv/solidity/contracts/SafeMath.sol":{"keccak256":"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3","urls":["bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b","dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe"],"license":null},"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol":{"keccak256":"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b","urls":["bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a","dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J"],"license":null},"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol":{"keccak256":"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f","urls":["bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7","dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f13b947637c4969c0644cab4ef399cdc4b67f101463b8775c5a43b118558e53","urls":["bzz-raw://c6683e6ade6985d394d32baaef5eea0d8b9ff0b3eca86ae413d6cdde114a9930","dweb:/ipfs/QmdBE8T1BTddZxpdECMsb3KiCFyjNWmxcCddYrWFTXmWPj"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x2a1f9944df2015c081d89cd41ba22ffaf10aa6285969f0dc612b235cc448999c","urls":["bzz-raw://ef381843676aec64421200ee85eaa0b1356a35f28b9fc67e746a6bbb832077d9","dweb:/ipfs/QmY8aorMYA2TeTCnu6ejDjzb4rW4t7TCtW4GZ6LoxTFm7v"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"src/BitcoinLightClient.sol":{"keccak256":"0x668f026e05f732ed49b9a3d2a587e53442a866eca9b76162b113716c6ad1ad3c","urls":["bzz-raw://73e5f4e08fd5a1ae985105222d86ab81a7a6f8a9266ca1c25a4ded5afa2a2c1e","dweb:/ipfs/QmPDxx3CV8EHGoQFAfJP4ChdUHRiPeMC6KvLZv7nhBfeT9"],"license":"MIT"},"src/Bridge.sol":{"keccak256":"0x39d942a84e715ae04d79ae8744859e682bb816ce5358a93decdb8c0eb81d2582","urls":["bzz-raw://8b1028afd6ff63cfad66a34b28f65d0387e8ed6d8c85dc8528b4e31f3beb2fb4","dweb:/ipfs/QmYVXJkdNHRfnYN2o6LX6E8UH2gqt83c7J57ke5A7n4i2c"],"license":"UNLICENSED"},"src/interfaces/IBitcoinLightClient.sol":{"keccak256":"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a","urls":["bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650","dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL"],"license":"MIT"}},"version":1},"id":42} +{"abi":[{"type":"function","name":"DEPOSIT_AMOUNT","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"LIGHT_CLIENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract BitcoinLightClient"}],"stateMutability":"view"},{"type":"function","name":"SYSTEM_CALLER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchWithdraw","inputs":[{"name":"bitcoin_addresses","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[{"name":"p","type":"tuple","internalType":"struct Bridge.DepositParams","components":[{"name":"version","type":"bytes4","internalType":"bytes4"},{"name":"flag","type":"bytes2","internalType":"bytes2"},{"name":"vin","type":"bytes","internalType":"bytes"},{"name":"vout","type":"bytes","internalType":"bytes"},{"name":"witness","type":"bytes","internalType":"bytes"},{"name":"locktime","type":"bytes4","internalType":"bytes4"},{"name":"intermediate_nodes","type":"bytes","internalType":"bytes"},{"name":"block_height","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositScript","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getWithdrawalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_depositScript","type":"bytes","internalType":"bytes"},{"name":"_scriptSuffix","type":"bytes","internalType":"bytes"},{"name":"_requiredSigsCount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requiredSigsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"scriptSuffix","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"setDepositScript","inputs":[{"name":"_depositScript","type":"bytes","internalType":"bytes"},{"name":"_scriptSuffix","type":"bytes","internalType":"bytes"},{"name":"_requiredSigsCount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spentWtxIds","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"bitcoin_address","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawalAddrs","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"Deposit","inputs":[{"name":"wtxId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DepositScriptUpdate","inputs":[{"name":"depositScript","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"scriptSuffix","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"requiredSigsCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OperatorUpdated","inputs":[{"name":"oldOperator","type":"address","indexed":false,"internalType":"address"},{"name":"newOperator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"bitcoin_address","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"index","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506124478061001f6000396000f3fe6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56","sourceMap":"430:8760:43:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56","sourceMap":"430:8760:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1018:23;;;;;;;;;;-1:-1:-1;1018:23:43;;;;;;;;;;;179:14:48;;172:22;154:41;;142:2;127:18;1018:23:43;;;;;;;;2269:810;;;;;;;;;;-1:-1:-1;2269:810:43;;;;;:::i;:::-;;:::i;:::-;;1133:32;;;;;;;;;;;;;;;;;;;1535:25:48;;;1523:2;1508:18;1133:32:43;1389:177:48;1104:23:43;;;;;;;;;;-1:-1:-1;1104:23:43;;;;;;;-1:-1:-1;;;;;1104:23:43;;;;;;-1:-1:-1;;;;;1735:32:48;;;1717:51;;1705:2;1690:18;1104:23:43;1571:203:48;7309:440:43;;;;;;:::i;:::-;;:::i;1239:43::-;;;;;;;;;;-1:-1:-1;1239:43:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;3155:101:25;;;;;;;;;;;;;:::i;7812:108:43:-;;;;;;;;;;-1:-1:-1;7891:15:43;:22;7812:108;;2774:229:24;;;;;;;;;;;;;:::i;1203:25:43:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2441:144:25:-;;;;;;;;;;;;;:::i;6763:301:43:-;;;;;;:::i;:::-;;:::i;3572:505::-;;;;;;;;;;-1:-1:-1;3572:505:43;;;;;:::i;:::-;;:::i;8063:147::-;;;;;;;;;;-1:-1:-1;8063:147:43;;;;;:::i;:::-;;:::i;1171:26::-;;;;;;;;;;;;;:::i;1288:32::-;;;;;;;;;;-1:-1:-1;1288:32:43;;;;;:::i;:::-;;:::i;920:91::-;;;;;;;;;;;;968:42;920:91;;4324:2185;;;;;;;;;;-1:-1:-1;4324:2185:43;;;;;:::i;:::-;;:::i;1680:168:24:-;;;;;;;;;;;;;:::i;793:121:43:-;;;;;;;;;;;;-1:-1:-1;;;;;793:121:43;;1047:51;;;;;;;;;;;;1088:10;1047:51;;2041:247:24;;;;;;;;;;-1:-1:-1;2041:247:24;;;;;:::i;:::-;;:::i;2269:810:43:-;1693:10;968:42;1693:27;1685:71;;;;-1:-1:-1;;;1685:71:43;;4650:2:48;1685:71:43;;;4632:21:48;4689:2;4669:18;;;4662:30;4728:33;4708:18;;;4701:61;4779:18;;1685:71:43;;;;;;;;;2417:11:::1;::::0;::::1;;2416:12;2408:56;;;::::0;-1:-1:-1;;;2408:56:43;;5010:2:48;2408:56:43::1;::::0;::::1;4992:21:48::0;5049:2;5029:18;;;5022:30;5088:33;5068:18;;;5061:61;5139:18;;2408:56:43::1;4808:355:48::0;2408:56:43::1;2482:18;2504:1;2482:23:::0;2474:62:::1;;;::::0;-1:-1:-1;;;2474:62:43;;5370:2:48;2474:62:43::1;::::0;::::1;5352:21:48::0;5409:2;5389:18;;;5382:30;5448:28;5428:18;;;5421:56;5494:18;;2474:62:43::1;5168:350:48::0;2474:62:43::1;2579:1;2554:26:::0;;;2546:69:::1;;;::::0;-1:-1:-1;;;2546:69:43;;5725:2:48;2546:69:43::1;::::0;::::1;5707:21:48::0;5764:2;5744:18;;;5737:30;5803:32;5783:18;;;5776:60;5853:18;;2546:69:43::1;5523:354:48::0;2546:69:43::1;2626:11;:18:::0;;-1:-1:-1;;2626:18:43::1;2640:4;2626:18;::::0;;2654:13:::1;:30;2670:14:::0;;2654:13;:30:::1;:::i;:::-;-1:-1:-1::0;2694:12:43::1;:28;2709:13:::0;;2694:12;:28:::1;:::i;:::-;-1:-1:-1::0;2732:17:43::1;:38:::0;;;2905:8:::1;:24:::0;;-1:-1:-1;;;;;;2905:24:43::1;::::0;::::1;::::0;;2945:42:::1;::::0;;8598:51:48;;;968:42:43::1;8680:2:48::0;8665:18;;8658:60;2945:42:43::1;::::0;8571:18:48;2945:42:43::1;;;;;;;3002:70;3022:14;;3038:13;;3053:18;3002:70;;;;;;;;;;:::i;:::-;;;;;;;;2269:810:::0;;;;;:::o;7309:440::-;7418:41;7435:17;1088:10;7418:41;:::i;:::-;7405:9;:54;7397:90;;;;-1:-1:-1;;;7397:90:43;;10014:2:48;7397:90:43;;;9996:21:48;10053:2;10033:18;;;10026:30;-1:-1:-1;;;10072:18:48;;;10065:53;10135:18;;7397:90:43;9812:347:48;7397:90:43;7513:15;:22;7497:13;7545:198;7562:28;;;7545:198;;;7611:15;7632:17;;7650:1;7632:20;;;;;;;:::i;:::-;7611:42;;;;;;;-1:-1:-1;7611:42:43;;;7632:20;7611:42;;;;7632:20;;;;;;;;;7611:42;;;;;-1:-1:-1;7672:60:43;7683:17;;7701:1;7683:20;;;;;;;:::i;:::-;;;;;;;7713:1;7705:5;:9;;;;:::i;:::-;7672:60;;;10628:25:48;;;10684:2;10669:18;;10662:34;;;;7716:15:43;10712:18:48;;;10705:34;10616:2;10601:18;7672:60:43;;;;;;;7592:3;;7545:198;;;;7387:362;7309:440;;:::o;3155:101:25:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;2774:229:24:-;966:10:27;;2869:14:24;:12;:14::i;:::-;-1:-1:-1;;;;;2869:24:24;;2865:96;;2916:34;;-1:-1:-1;;;2916:34:24;;-1:-1:-1;;;;;1735:32:48;;2916:34:24;;;1717:51:48;1690:18;;2916:34:24;1571:203:48;2865:96:24;2970:26;2989:6;2970:18;:26::i;:::-;2816:187;2774:229::o;1203:25:43:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2441:144:25:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:25;;2441:144;-1:-1:-1;;2441:144:25:o;6763:301:43:-;1088:10;6841:9;:27;6833:63;;;;-1:-1:-1;;;6833:63:43;;10014:2:48;6833:63:43;;;9996:21:48;10053:2;10033:18;;;10026:30;-1:-1:-1;;;10072:18:48;;;10065:53;10135:18;;6833:63:43;9812:347:48;6833:63:43;6922:15;:22;;6954:37;;;;;-1:-1:-1;6954:37:43;;;;;;;;;;7006:51;;;10628:25:48;;;10684:2;10669:18;;10662:34;;;7041:15:43;10712:18:48;;;10705:34;7006:51:43;;;;;;;10616:2:48;7006:51:43;;;6823:241;6763:301;:::o;3572:505::-;2334:13:25;:11;:13::i;:::-;3724:18:43::1;3746:1;3724:23:::0;3716:62:::1;;;::::0;-1:-1:-1;;;3716:62:43;;5370:2:48;3716:62:43::1;::::0;::::1;5352:21:48::0;5409:2;5389:18;;;5382:30;5448:28;5428:18;;;5421:56;5494:18;;3716:62:43::1;5168:350:48::0;3716:62:43::1;3821:1;3796:26:::0;;;3788:69:::1;;;::::0;-1:-1:-1;;;3788:69:43;;5725:2:48;3788:69:43::1;::::0;::::1;5707:21:48::0;5764:2;5744:18;;;5737:30;5803:32;5783:18;;;5776:60;5853:18;;3788:69:43::1;5523:354:48::0;3788:69:43::1;3868:13;:30;3884:14:::0;;3868:13;:30:::1;:::i;:::-;-1:-1:-1::0;3908:12:43::1;:28;3923:13:::0;;3908:12;:28:::1;:::i;:::-;-1:-1:-1::0;3946:17:43::1;:38:::0;;;4000:70:::1;::::0;::::1;::::0;::::1;::::0;4020:14;;;;4036:13;;;;3966:18;;4000:70:::1;:::i;8063:147::-:0;2334:13:25;:11;:13::i;:::-;8132:8:43::1;:20:::0;;-1:-1:-1;;;;;;8132:20:43::1;;-1:-1:-1::0;;;;;8132:20:43;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;8167:36:::1;::::0;;8183:8;;;::::1;;8598:51:48::0;;8680:2;8665:18;;8658:60;;;;8167:36:43::1;::::0;8571:18:48;8167:36:43::1;;;;;;;8063:147:::0;:::o;1171:26::-;;;;;;;:::i;1288:32::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1288:32:43;:::o;4324:2185::-;1836:8;;;;;-1:-1:-1;;;;;1836:8:43;1822:10;:22;1814:61;;;;-1:-1:-1;;;1814:61:43;;10952:2:48;1814:61:43;;;10934:21:48;10991:2;10971:18;;;10964:30;11030:28;11010:18;;;11003:56;11076:18;;1814:61:43;10750:350:48;1814:61:43;4750:13:::1;4766:84;4794:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;4805:6;::::0;;;::::1;::::0;::::1;;:::i;:::-;4813:5;;::::0;::::1;:1:::0;:5:::1;:::i;:::-;4820:6;;::::0;::::1;:1:::0;:6:::1;:::i;:::-;4828:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;4839:10;::::0;;;::::1;::::0;::::1;;:::i;:::-;4766:27;:84::i;:::-;4869:18;::::0;;;:11:::1;:18;::::0;;;;;4750:100;;-1:-1:-1;4869:18:43::1;;4868:19;4860:51;;;::::0;-1:-1:-1;;;4860:51:43;;12410:2:48;4860:51:43::1;::::0;::::1;12392:21:48::0;12449:2;12429:18;;;12422:30;-1:-1:-1;;;12468:18:48;;;12461:49;12527:18;;4860:51:43::1;12208:343:48::0;4860:51:43::1;4921:18;::::0;;;:11:::1;:18;::::0;;;;;;:25;;-1:-1:-1;;4921:25:43::1;4942:4;4921:25;::::0;;4965:27:::1;::::0;4986:5:::1;::::0;;::::1;:1:::0;:5:::1;:::i;:::-;4965:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4965:20:43::1;::::0;-1:-1:-1;;;4965:27:43:i:1;:::-;4957:69;;;::::0;-1:-1:-1;;;4957:69:43;;12758:2:48;4957:69:43::1;::::0;::::1;12740:21:48::0;12797:2;12777:18;;;12770:30;12836:31;12816:18;;;12809:59;12885:18;;4957:69:43::1;12556:353:48::0;4957:69:43::1;5044:29;5066:6;;::::0;::::1;:1:::0;:6:::1;:::i;:::-;5044:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5044:21:43::1;::::0;-1:-1:-1;;;5044:29:43:i:1;:::-;5036:72;;;::::0;-1:-1:-1;;;5036:72:43;;13116:2:48;5036:72:43::1;::::0;::::1;13098:21:48::0;13155:2;13135:18;;;13128:30;13194:32;13174:18;;;13167:60;13244:18;;5036:72:43::1;12914:354:48::0;5036:72:43::1;5130:13;5147:27;5168:5;;::::0;::::1;:1:::0;:5:::1;:::i;:::-;5147:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5147:20:43::1;::::0;-1:-1:-1;;;5147:27:43:i:1;:::-;5127:47;;;5192:5;5201:1;5192:10;5184:45;;;::::0;-1:-1:-1;;;5184:45:43;;13475:2:48;5184:45:43::1;::::0;::::1;13457:21:48::0;13514:2;13494:18;;;13487:30;-1:-1:-1;;;13533:18:48;;;13526:52;13595:18;;5184:45:43::1;13273:346:48::0;5184:45:43::1;5298:46;5327:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;5298:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;5338:5:43;;-1:-1:-1;5298:28:43::1;::::0;-1:-1:-1;;5298:46:43:i:1;:::-;5290:92;;;::::0;-1:-1:-1;;;5290:92:43;;13826:2:48;5290:92:43::1;::::0;::::1;13808:21:48::0;13865:2;13845:18;;;13838:30;13904:34;13884:18;;;13877:62;-1:-1:-1;;;13955:18:48;;;13948:31;13996:19;;5290:92:43::1;13624:397:48::0;5290:92:43::1;-1:-1:-1::0;;;;;5401:28:43::1;5430:14;::::0;::::1;;5446:5:::0;5453:20:::1;;::::0;::::1;5430:1:::0;5453:20:::1;:::i;:::-;5475:1;:7;;;5401:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5393:122;;;::::0;-1:-1:-1;;;5393:122:43;;14974:2:48;5393:122:43::1;::::0;::::1;14956:21:48::0;15013:2;14993:18;;;14986:30;15052:29;15032:18;;;15025:57;15099:18;;5393:122:43::1;14772:351:48::0;5393:122:43::1;5526:21;5550:48;5585:9;;::::0;::::1;:1:::0;:9:::1;:::i;:::-;5550:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;5550:48:43;-1:-1:-1;5550:34:43::1;::::0;-1:-1:-1;;5550:48:43:i:1;:::-;5526:72;;5611:15;5630:30;5651:8;5630:20;:30::i;:::-;5608:52;;;5689:17;;5709:1;5689:21;;;;:::i;:::-;5678:7;:32;5670:66;;;::::0;-1:-1:-1;;;5670:66:43;;15330:2:48;5670:66:43::1;::::0;::::1;15312:21:48::0;15369:2;15349:18;;;15342:30;-1:-1:-1;;;15388:18:48;;;15381:51;15449:18;;5670:66:43::1;15128:345:48::0;5670:66:43::1;5798:19;5820:64;5856:8;5866:17;;5820:35;:64::i;:::-;5798:86;;5894:12;5909:13;:20;;;;;:::i;:::-;::::0;-1:-1:-1;5939:27:43::1;::::0;-1:-1:-1;5969:21:43::1;:6:::0;5939:27;5909:20;5969:12:::1;:21::i;:::-;5939:51;;6008:43;6021:14;6037:13;6008:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:43::i;:::-;6000:78;;;::::0;-1:-1:-1;;;6000:78:43;;15680:2:48;6000:78:43::1;::::0;::::1;15662:21:48::0;15719:2;15699:18;;;15692:30;-1:-1:-1;;;15738:18:48;;;15731:52;15800:18;;6000:78:43::1;15478:346:48::0;6000:78:43::1;6088:20;6111:52;6124:9;:4:::0;6131:2:::1;6124:9;:::i;:::-;6152;:4:::0;6159:2:::1;6152:9;:::i;:::-;6135:6;:13;:27;;;;:::i;:::-;6111:6:::0;;:52;:12:::1;:52::i;:::-;6088:75;;6205:35;6218:7;6227:12;6205:35;;;;;:::i;:::-;6197:69;;;::::0;-1:-1:-1;;;6197:69:43;;16164:2:48;6197:69:43::1;::::0;::::1;16146:21:48::0;16203:2;16183:18;;;16176:30;-1:-1:-1;;;16222:18:48;;;16215:51;16283:18;;6197:69:43::1;15962:345:48::0;6197:69:43::1;6277:17;6297:31;6321:6;6297:23;:31::i;:::-;6344:42;::::0;;16514:25:48;;;-1:-1:-1;;;;;16575:32:48;;16570:2;16555:18;;16548:60;6370:15:43::1;16624:18:48::0;;;16617:34;6344:42:43;;16575:32:48;;-1:-1:-1;6344:42:43::1;::::0;;;;;16502:2:48;6344:42:43;;::::1;6398:12;6416:9;-1:-1:-1::0;;;;;6416:14:43::1;1088:10;6416:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6397:60;;;6475:7;6467:35;;;::::0;-1:-1:-1;;;6467:35:43;;17074:2:48;6467:35:43::1;::::0;::::1;17056:21:48::0;17113:2;17093:18;;;17086:30;-1:-1:-1;;;17132:18:48;;;17125:45;17187:18;;6467:35:43::1;16872:339:48::0;6467:35:43::1;4403:2106;;;;;;;;;;4324:2185:::0;:::o;1680:168:24:-;1733:7;;1318:27;1784:25;1187:174;2041:247;2334:13:25;:11;:13::i;:::-;1318:27:24;2197:26;;-1:-1:-1;;;;;;2197:26:24::1;-1:-1:-1::0;;;;;2197:26:24;::::1;::::0;;::::1;::::0;;2263:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2238:43:24::1;;;;;;;;;;;2120:168;2041:247:::0;:::o;2658:162:25:-;966:10:27;2717:7:25;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:25;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:25;;966:10:27;2763:40:25;;;1717:51:48;1690:18;;2763:40:25;1571:203:48;2472:222:24;1318:27;2621:22;;-1:-1:-1;;;;;;2621:22:24;;;2653:34;2678:8;2653:24;:34::i;:::-;2544:150;2472:222;:::o;463:320:0:-;675:7;701:75;718:7;727:4;733:3;;738:4;;744:7;;753:8;701:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:73;:75::i;:::-;694:82;463:320;-1:-1:-1;;;;;;;;;;463:320:0:o;27793:991:1:-;27856:4;27872:22;27904:13;27954:17;27966:4;27954:11;:17::i;:::-;27928:43;;-1:-1:-1;27928:43:1;-1:-1:-1;28050:10:1;;;:43;;;-1:-1:-1;;28064:14:1;:29;28050:43;28046:86;;;-1:-1:-1;28116:5:1;;27793:991;-1:-1:-1;;;27793:991:1:o;28046:86::-;28142:15;28160:18;28164:14;28160:1;:18;:::i;:::-;28142:36;;28194:9;28189:492;28213:5;28209:1;:9;28189:492;;;28312:4;:11;28301:7;:22;28297:73;;-1:-1:-1;28350:5:1;;27793:991;-1:-1:-1;;;;;27793:991:1:o;28297:73::-;28445:16;28464:37;28487:4;28493:7;28464:22;:37::i;:::-;28445:56;;-1:-1:-1;;28519:8:1;:23;28515:74;;-1:-1:-1;28569:5:1;;27793:991;-1:-1:-1;;;;;;27793:991:1:o;28515:74::-;28651:19;28662:8;28651:19;;:::i;:::-;;-1:-1:-1;;28220:3:1;;28189:492;;;-1:-1:-1;28766:11:1;;28755:22;;;;;-1:-1:-1;;;27793:991:1:o;29056:1004::-;29121:4;29137:22;29169:14;29221:18;29233:5;29221:11;:18::i;:::-;29194:45;;-1:-1:-1;29194:45:1;-1:-1:-1;29319:11:1;;;:44;;;-1:-1:-1;;29334:14:1;:29;29319:44;29315:87;;;-1:-1:-1;29386:5:1;;29056:1004;-1:-1:-1;;;29056:1004:1:o;29315:87::-;29412:15;29430:18;29434:14;29430:1;:18;:::i;:::-;29412:36;;29464:9;29459:497;29483:6;29479:1;:10;29459:497;;;29583:5;:12;29572:7;:23;29568:74;;-1:-1:-1;29622:5:1;;29056:1004;-1:-1:-1;;;;;29056:1004:1:o;29568:74::-;29766:16;29785:39;29809:5;29816:7;29785:23;:39::i;:::-;29766:58;;-1:-1:-1;;29842:8:1;:23;29838:74;;-1:-1:-1;29892:5:1;;29056:1004;-1:-1:-1;;;;;;29056:1004:1:o;29838:74::-;29926:19;29937:8;29926:19;;:::i;:::-;;-1:-1:-1;;29491:3:1;;29459:497;;2414:123;2475:7;2484;2510:20;2524:2;2528:1;2510:13;:20::i;:::-;2503:27;;;;2414:123;;;:::o;1092:871:0:-;1179:4;1254:6;1264:1;1254:11;1250:54;;-1:-1:-1;1288:5:0;1281:12;;1250:54;1314:15;1349:9;1344:512;1368:6;1364:1;:10;1344:512;;;1468:8;:15;1457:7;:26;1453:77;;1510:5;1503:12;;;;;;1453:77;1605:16;1624:43;1649:8;1659:7;1624:24;:43::i;:::-;1605:62;;-1:-1:-1;;1685:8:0;:32;1681:83;;1744:5;1737:12;;;;;;;1681:83;1826:19;1837:8;1826:19;;:::i;:::-;;-1:-1:-1;;1376:3:0;;1344:512;;;-1:-1:-1;1941:15:0;;1930:26;;-1:-1:-1;1092:871:0;;;;;:::o;3428:579::-;3521:12;3545;3571:15;3606:10;3601:221;3627:6;3622:2;:11;3601:221;;;3663:43;3688:8;3698:7;3663:24;:43::i;:::-;3656:50;;-1:-1:-1;;3728:4:0;:28;3720:62;;;;-1:-1:-1;;;3720:62:0;;18276:2:48;3720:62:0;;;18258:21:48;18315:2;18295:18;;;18288:30;-1:-1:-1;;;18334:18:48;;;18327:51;18395:18;;3720:62:0;18074:345:48;3720:62:0;3796:15;3807:4;3796:15;;:::i;:::-;;-1:-1:-1;3635:5:0;;3601:221;;;;3839:43;3864:8;3874:7;3839:24;:43::i;:::-;3832:50;;-1:-1:-1;;3900:4:0;:28;3892:62;;;;-1:-1:-1;;;3892:62:0;;18276:2:48;3892:62:0;;;18258:21:48;18315:2;18295:18;;;18288:30;-1:-1:-1;;;18334:18:48;;;18327:51;18395:18;;3892:62:0;18074:345:48;3892:62:0;3971:29;:8;3986:7;3995:4;3971:14;:29::i;:::-;3964:36;3428:579;-1:-1:-1;;;;;3428:579:0:o;4368:974::-;4462:12;4486:22;4518:15;4580:30;4601:8;4580:20;:30::i;:::-;4552:58;;-1:-1:-1;4552:58:0;-1:-1:-1;4628:38:0;;;4620:85;;;;-1:-1:-1;;;4620:85:0;;18626:2:48;4620:85:0;;;18608:21:48;18665:2;18645:18;;;18638:30;18704:34;18684:18;;;18677:62;-1:-1:-1;;;18755:18:48;;;18748:32;18797:19;;4620:85:0;18424:398:48;4620:85:0;4732:7;4723:6;:16;4715:45;;;;-1:-1:-1;;;4715:45:0;;19029:2:48;4715:45:0;;;19011:21:48;19068:2;19048:18;;;19041:30;-1:-1:-1;;;19087:18:48;;;19080:46;19143:18;;4715:45:0;18827:340:48;4715:45:0;4771:16;;4819:18;4823:14;4819:1;:18;:::i;:::-;4801:36;;4853:9;4848:263;4872:6;4868:1;:10;4848:263;;;4928:41;4951:8;4961:7;4928:22;:41::i;:::-;4899:70;;-1:-1:-1;4899:70:0;-1:-1:-1;4991:32:0;;;4983:63;;;;-1:-1:-1;;;4983:63:0;;19374:2:48;4983:63:0;;;19356:21:48;19413:2;19393:18;;;19386:30;-1:-1:-1;;;19432:18:48;;;19425:48;19490:18;;4983:63:0;19172:342:48;4983:63:0;5092:8;5071:18;5075:14;5071:1;:18;:::i;:::-;:29;;;;:::i;:::-;5060:40;;;;:::i;:::-;;-1:-1:-1;4880:3:0;;4848:263;;;;5150:41;5173:8;5183:7;5150:22;:41::i;:::-;5121:70;;-1:-1:-1;5121:70:0;-1:-1:-1;5209:32:0;;;5201:63;;;;-1:-1:-1;;;5201:63:0;;19374:2:48;5201:63:0;;;19356:21:48;19413:2;19393:18;;;19386:30;-1:-1:-1;;;19432:18:48;;;19425:48;19490:18;;5201:63:0;19172:342:48;5201:63:0;5281:54;5296:7;5305:25;5316:14;5305:8;:25;:::i;:::-;:29;;5333:1;5305:29;:::i;:::-;5281:8;;:54;:14;:54::i;:::-;5274:61;4368:974;-1:-1:-1;;;;;;;4368:974:0:o;10344:924:2:-;10431:16;10463:7;10474:1;10463:12;10459:55;;-1:-1:-1;10491:12:2;;;;;;;;;-1:-1:-1;10491:12:2;;;;10459:55;10523:9;10535:16;10544:7;10535:6;:16;:::i;:::-;10523:28;;10576:6;10569:4;:13;:38;;;;;10603:4;10586:6;:13;:21;;10569:38;10561:70;;;;-1:-1:-1;;;10561:70:2;;19721:2:48;10561:70:2;;;19703:21:48;19760:2;19740:18;;;19733:30;-1:-1:-1;;;19779:18:48;;;19772:49;19838:18;;10561:70:2;19519:343:48;10561:70:2;10768:4;10762:11;10755:18;;10817:7;10812:2;10807:3;10803:12;10799:26;10793:4;10786:40;10851:7;10846:3;10839:20;10978:6;10970;10966:19;10961:3;10957:29;11054:6;11049:2;11041:6;11037:15;11033:28;11098:7;11093:3;11089:17;11000:252;11129:3;11124;11121:12;11000:252;;;11233:3;11227:10;11220:4;11215:3;11211:14;11204:34;11168:2;11163:3;11159:12;11152:19;;11000:252;;;11004:116;;;10651:611;10344:924;;;;;;:::o;8501:440:43:-;8578:11;8621:1;:8;8609:1;:8;:20;8601:53;;;;-1:-1:-1;;;8601:53:43;;20069:2:48;8601:53:43;;;20051:21:48;20108:2;20088:18;;;20081:30;-1:-1:-1;;;20127:18:48;;;20120:50;20187:18;;8601:53:43;19867:344:48;8601:53:43;8740:8;;8726:11;8758:154;8779:6;8775:1;:10;8758:154;;;8818:1;8820;8818:4;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8810:12:43;;:1;8812;8810:4;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;8810:4:43;:12;8806:96;;8851:5;8842:14;;8874:13;;;;8806:96;8787:3;;8758:154;;;-1:-1:-1;8930:4:43;;8501:440;-1:-1:-1;;;;8501:440:43:o;8947:241::-;9025:7;9044:14;9061:13;:20;;;;;:::i;:::-;;-1:-1:-1;9091:13:43;;-1:-1:-1;9115:25:43;:7;9061:20;9137:2;9115:13;:25::i;:::-;9107:34;;;:::i;:::-;9166:14;;;8947:241;-1:-1:-1;;;;8947:241:43:o;3774:248:25:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:25;;-1:-1:-1;;;;;3941:19:25;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;9609:335:1:-;9670:11;9835:2;9829:4;9824:2;9818:9;9813:2;9809;9805:11;9802:1;9795:5;9784:54;9780:59;9893:2;9887:4;9883:2;9877:4;9874:1;9867:5;9856:40;-1:-1:-1;;9923:4:1;9917:11;;9609:335;-1:-1:-1;9609:335:1:o;14980:394::-;15069:7;15088:22;15120:21;15185:34;15207:6;15215:3;15185:21;:34::i;:::-;15151:68;;-1:-1:-1;15151:68:1;-1:-1:-1;15233:29:1;;;15229:78;;-1:-1:-1;;15278:18:1;;;;;;15229:78;15350:13;15324:23;15333:14;15324:6;:23;:::i;:::-;:39;;;;:::i;:::-;:43;;15366:1;15324:43;:::i;20911:536::-;21002:7;21042;21046:3;21042:1;:7;:::i;:::-;21025;:14;:24;21021:73;;;-1:-1:-1;;;21065:18:1;;21021:73;21103:22;;21212:31;21226:7;21235;21239:3;21235:1;:7;:::i;:::-;21212:13;:31::i;:::-;21172:71;;-1:-1:-1;21172:71:1;-1:-1:-1;21258:29:1;;;21254:78;;-1:-1:-1;;21303:18:1;;;;;;21254:78;21421:19;21396:22;21404:14;21396:5;:22;:::i;:::-;:44;;;;:::i;2999:704::-;3075:7;3084;3103:14;3120:36;3148:2;3152:3;3120:27;:36::i;:::-;3103:53;;3171:8;:13;;3183:1;3171:13;3167:70;;3208:1;3217:2;3220:3;3217:7;;;;;;;;:::i;:::-;;;;;3200:26;;-1:-1:-1;3217:7:1;;;-1:-1:-1;3200:26:1;;-1:-1:-1;3200:26:1;3167:70;3277:3;3262:12;3266:8;3262:1;:12;:::i;:::-;:18;;;;;;:::i;:::-;3250:2;:9;:30;3246:84;;;-1:-1:-1;;3317:1:1;3296:23;;;;;;;3246:84;3339:15;3368:8;:13;;3380:1;3368:13;3364:297;;3407:41;3428:18;3438:7;3442:3;3438:1;:7;:::i;:::-;3428:2;;:9;:18::i;:::-;7042:7;;;;;;7054;;;;;7041:21;;6959:110;3407:41;3397:51;;;;3364:297;;;3469:8;:13;;3481:1;3469:13;3465:196;;3508:41;3529:18;3539:7;3543:3;3539:1;:7;:::i;3529:18::-;6397:21;;;;;;6402:10;6360:6;;;;;6359:21;;;;6358:61;6485:2;6480:7;;;6468;;;6467:21;;6238:257;3508:41;3498:51;;;;3465:196;;;3570:8;:13;;3582:1;3570:13;3566:95;;3609:41;3630:18;3640:7;3644:3;3640:1;:7;:::i;3630:18::-;3623:26;;5965:22;5866:1;5793:6;;;5965:22;;;;5838:29;;;;5965:22;;;;5992:2;5964:30;;;5838:29;6056:7;5843:18;5792:29;;;;5838;;;;5791:77;;;;5918:7;;;5969:18;5917:30;6056:7;6061:2;6044:7;;;6056;;;6043:21;;5671:400;3609:41;3599:51;;;;3566:95;3670:26;;;;;-1:-1:-1;3688:7:1;-1:-1:-1;2999:704:1;;;;;;:::o;2286:759:0:-;2379:7;2398:22;2430:14;2490:37;2513:8;2523:3;2490:22;:37::i;:::-;2463:64;;-1:-1:-1;2463:64:0;-1:-1:-1;2541:38:0;;;2537:96;;-1:-1:-1;;2595:27:0;;;;;;2537:96;2643:16;;2687:18;2691:14;2687:1;:18;:::i;:::-;2669:36;;2721:9;2716:298;2740:6;2736:1;:10;2716:298;;;2796:41;2819:8;2829:7;2796:22;:41::i;:::-;2767:70;;-1:-1:-1;2767:70:0;-1:-1:-1;2855:32:0;;;2851:98;;-1:-1:-1;;2907:27:0;;;;;;;;;2851:98;2995:8;2974:18;2978:14;2974:1;:18;:::i;:::-;:29;;;;:::i;:::-;2963:40;;;;:::i;:::-;;-1:-1:-1;2748:3:0;;2716:298;;;-1:-1:-1;3031:7:0;2286:759;-1:-1:-1;;;;;;2286:759:0:o;13785:388:1:-;13873:7;;13921:8;13926:3;13921:2;:8;:::i;:::-;13905:6;:13;:24;13901:78;;;-1:-1:-1;;;654:66:1;-1:-1:-1;13966:1:1;13945:23;;13901:78;13989:22;;14086:31;14100:6;14108:8;:3;14114:2;14108:8;:::i;14086:31::-;14052:65;;;;-1:-1:-1;13785:388:1;-1:-1:-1;;;;;13785:388:1:o;1550:446::-;1640:5;1667:2;1670:3;1667:7;;;;;;;;:::i;:::-;;;;;;;1661:14;:22;1657:93;;-1:-1:-1;1706:1:1;1699:8;;1657:93;1769:2;1772:3;1769:7;;;;;;;;:::i;:::-;;;;;;;1781:4;1763:22;1759:93;;-1:-1:-1;1808:1:1;1801:8;;1759:93;1871:2;1874:3;1871:7;;;;;;;;:::i;:::-;;;;;;;1883:4;1865:22;1861:93;;-1:-1:-1;1910:1:1;1903:8;;1861:93;-1:-1:-1;1971:1:1;1550:446;;;;:::o;13493:136:2:-;13566:6;13598:23;13606:6;13614;12550:28;12566:2;12550:28;12544:35;;12417:178;206:347:48;257:8;267:6;321:3;314:4;306:6;302:17;298:27;288:55;;339:1;336;329:12;288:55;-1:-1:-1;362:20:48;;405:18;394:30;;391:50;;;437:1;434;427:12;391:50;474:4;466:6;462:17;450:29;;526:3;519:4;510:6;502;498:19;494:30;491:39;488:59;;;543:1;540;533:12;558:826;657:6;665;673;681;689;742:2;730:9;721:7;717:23;713:32;710:52;;;758:1;755;748:12;710:52;798:9;785:23;831:18;823:6;820:30;817:50;;;863:1;860;853:12;817:50;902:58;952:7;943:6;932:9;928:22;902:58;:::i;:::-;979:8;;-1:-1:-1;876:84:48;-1:-1:-1;;1067:2:48;1052:18;;1039:32;1096:18;1083:32;;1080:52;;;1128:1;1125;1118:12;1080:52;1167:60;1219:7;1208:8;1197:9;1193:24;1167:60;:::i;:::-;558:826;;;;-1:-1:-1;1246:8:48;1350:2;1335:18;1322:32;;558:826;-1:-1:-1;;;;558:826:48:o;1779:610::-;1865:6;1873;1926:2;1914:9;1905:7;1901:23;1897:32;1894:52;;;1942:1;1939;1932:12;1894:52;1982:9;1969:23;2015:18;2007:6;2004:30;2001:50;;;2047:1;2044;2037:12;2001:50;2070:22;;2123:4;2115:13;;2111:27;-1:-1:-1;2101:55:48;;2152:1;2149;2142:12;2101:55;2192:2;2179:16;2218:18;2210:6;2207:30;2204:50;;;2250:1;2247;2240:12;2204:50;2303:7;2298:2;2288:6;2285:1;2281:14;2277:2;2273:23;2269:32;2266:45;2263:65;;;2324:1;2321;2314:12;2263:65;2355:2;2347:11;;;;;2377:6;;-1:-1:-1;1779:610:48;-1:-1:-1;;;1779:610:48:o;2394:180::-;2453:6;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;-1:-1:-1;2545:23:48;;2394:180;-1:-1:-1;2394:180:48:o;2579:525::-;2726:2;2715:9;2708:21;2689:4;2758:6;2752:13;2801:6;2796:2;2785:9;2781:18;2774:34;2826:1;2836:140;2850:6;2847:1;2844:13;2836:140;;;2961:2;2945:14;;;2941:23;;2935:30;2930:2;2911:17;;;2907:26;2900:66;2865:10;2836:140;;;2840:3;3025:1;3020:2;3011:6;3000:9;2996:22;2992:31;2985:42;3095:2;3088;3084:7;3079:2;3071:6;3067:15;3063:29;3052:9;3048:45;3044:54;3036:62;;;2579:525;;;;:::o;3109:286::-;3168:6;3221:2;3209:9;3200:7;3196:23;3192:32;3189:52;;;3237:1;3234;3227:12;3189:52;3263:23;;-1:-1:-1;;;;;3315:31:48;;3305:42;;3295:70;;3361:1;3358;3351:12;3813:394;3906:6;3959:2;3947:9;3938:7;3934:23;3930:32;3927:52;;;3975:1;3972;3965:12;3927:52;4015:9;4002:23;4048:18;4040:6;4037:30;4034:50;;;4080:1;4077;4070:12;4034:50;4103:22;;4159:3;4141:16;;;4137:26;4134:46;;;4176:1;4173;4166:12;5882:127;5943:10;5938:3;5934:20;5931:1;5924:31;5974:4;5971:1;5964:15;5998:4;5995:1;5988:15;6014:380;6093:1;6089:12;;;;6136;;;6157:61;;6211:4;6203:6;6199:17;6189:27;;6157:61;6264:2;6256:6;6253:14;6233:18;6230:38;6227:161;;6310:10;6305:3;6301:20;6298:1;6291:31;6345:4;6342:1;6335:15;6373:4;6370:1;6363:15;6227:161;;6014:380;;;:::o;6524:517::-;6625:2;6620:3;6617:11;6614:421;;;6661:5;6658:1;6651:16;6705:4;6702:1;6692:18;6775:2;6763:10;6759:19;6756:1;6752:27;6746:4;6742:38;6811:4;6799:10;6796:20;6793:47;;;-1:-1:-1;6834:4:48;6793:47;6889:2;6884:3;6880:12;6877:1;6873:20;6867:4;6863:31;6853:41;;6944:81;6962:2;6955:5;6952:13;6944:81;;;7021:1;7007:16;;6988:1;6977:13;6944:81;;;6948:3;;6614:421;6524:517;;;:::o;7217:1202::-;7339:18;7334:3;7331:27;7328:53;;;7361:18;;:::i;:::-;7390:93;7479:3;7439:38;7471:4;7465:11;7439:38;:::i;:::-;7433:4;7390:93;:::i;:::-;7509:1;7534:2;7529:3;7526:11;7551:1;7546:615;;;;8205:1;8222:3;8219:93;;;-1:-1:-1;8278:19:48;;;8265:33;8219:93;-1:-1:-1;;7174:1:48;7170:11;;;7166:24;7162:29;7152:40;7198:1;7194:11;;;7149:57;8325:78;;7519:894;;7546:615;6471:1;6464:14;;;6508:4;6495:18;;-1:-1:-1;;7582:17:48;;;7682:9;7704:229;7718:7;7715:1;7712:14;7704:229;;;7807:19;;;7794:33;7779:49;;7914:4;7899:20;;;;7867:1;7855:14;;;;7734:12;7704:229;;;7708:3;7961;7952:7;7949:16;7946:159;;;8085:1;8081:6;8075:3;8069;8066:1;8062:11;8058:21;8054:34;8050:39;8037:9;8032:3;8028:19;8015:33;8011:79;8003:6;7996:95;7946:159;;;8148:1;8142:3;8139:1;8135:11;8131:19;8125:4;8118:33;7519:894;;7217:1202;;;:::o;8729:266::-;8817:6;8812:3;8805:19;8869:6;8862:5;8855:4;8850:3;8846:14;8833:43;-1:-1:-1;8921:1:48;8896:16;;;8914:4;8892:27;;;8885:38;;;;8977:2;8956:15;;;-1:-1:-1;;8952:29:48;8943:39;;;8939:50;;8729:266::o;9000:502::-;9241:2;9230:9;9223:21;9204:4;9267:61;9324:2;9313:9;9309:18;9301:6;9293;9267:61;:::i;:::-;9376:9;9368:6;9364:22;9359:2;9348:9;9344:18;9337:50;9404:49;9446:6;9438;9430;9404:49;:::i;:::-;9396:57;;;9489:6;9484:2;9473:9;9469:18;9462:34;9000:502;;;;;;;;:::o;9507:127::-;9568:10;9563:3;9559:20;9556:1;9549:31;9599:4;9596:1;9589:15;9623:4;9620:1;9613:15;9639:168;9712:9;;;9743;;9760:15;;;9754:22;;9740:37;9730:71;;9781:18;;:::i;10164:127::-;10225:10;10220:3;10216:20;10213:1;10206:31;10256:4;10253:1;10246:15;10280:4;10277:1;10270:15;10296:125;10361:9;;;10382:10;;;10379:36;;;10395:18;;:::i;11105:286::-;11163:6;11216:2;11204:9;11195:7;11191:23;11187:32;11184:52;;;11232:1;11229;11222:12;11184:52;11258:23;;-1:-1:-1;;;;;;11310:32:48;;11300:43;;11290:71;;11357:1;11354;11347:12;11396:281;11454:6;11507:2;11495:9;11486:7;11482:23;11478:32;11475:52;;;11523:1;11520;11513:12;11475:52;11549:23;;-1:-1:-1;;;;;;11601:27:48;;11591:38;;11581:66;;11643:1;11640;11633:12;11682:521;11759:4;11765:6;11825:11;11812:25;11919:2;11915:7;11904:8;11888:14;11884:29;11880:43;11860:18;11856:68;11846:96;;11938:1;11935;11928:12;11846:96;11965:33;;12017:20;;;-1:-1:-1;12060:18:48;12049:30;;12046:50;;;12092:1;12089;12082:12;12046:50;12125:4;12113:17;;-1:-1:-1;12156:14:48;12152:27;;;12142:38;;12139:58;;;12193:1;12190;12183:12;14026:459;14267:6;14256:9;14249:25;14310:6;14305:2;14294:9;14290:18;14283:34;14353:3;14348:2;14337:9;14333:18;14326:31;14230:4;14374:62;14431:3;14420:9;14416:19;14408:6;14400;14374:62;:::i;:::-;14366:70;;14472:6;14467:2;14456:9;14452:18;14445:34;14026:459;;;;;;;;:::o;14490:277::-;14557:6;14610:2;14598:9;14589:7;14585:23;14581:32;14578:52;;;14626:1;14623;14616:12;14578:52;14658:9;14652:16;14711:5;14704:13;14697:21;14690:5;14687:32;14677:60;;14733:1;14730;14723:12;15829:128;15896:9;;;15917:11;;;15914:37;;;15931:18;;:::i;17216:853::-;-1:-1:-1;;;;;;17575:33:48;;17563:46;;-1:-1:-1;;;;;;17638:28:48;;17634:1;17625:11;;17618:49;17710:6;17702;17698:1;17689:11;;17676:41;17545:3;17745:6;17740:3;17736:16;17779:1;17775:2;17771:10;17801:1;17797:2;17790:13;17837:6;17829;17825:2;17812:32;-1:-1:-1;17906:1:48;17867:15;;;17884:1;17863:23;17895:13;;;17942:6;17934;17863:23;17917:32;-1:-1:-1;;;;;;18003:33:48;;;;17968:15;;;;17992:45;;;-1:-1:-1;18061:1:48;18053:10;;17216:853;-1:-1:-1;;;;;;;;17216:853:48:o;20216:412::-;20334:12;;20382:4;20371:16;;20365:23;-1:-1:-1;;20406:40:48;;;20334:12;20469:2;20458:14;;20455:167;;;20584:26;20580:31;20549:26;20545:31;20535:6;20531:2;20527:15;20524:1;20520:23;20516:61;20512:2;20508:70;20504:108;20495:117;;20455:167;;;20216:412;;;:::o;20633:148::-;20721:4;20700:12;;;20714;;;20696:31;;20739:13;;20736:39;;;20755:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DEPOSIT_AMOUNT()":"ec6925a7","LIGHT_CLIENT()":"e613ae00","SYSTEM_CALLER()":"d761753e","acceptOwnership()":"79ba5097","batchWithdraw(bytes32[])":"59c19cee","deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))":"dd95c7c6","depositScript()":"b93780f6","getWithdrawalCount()":"781952a8","initialize(bytes,bytes,uint256)":"41260137","initialized()":"158ef93e","operator()":"570ca735","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","requiredSigsCount()":"43e31687","scriptSuffix()":"87f8bf56","setDepositScript(bytes,bytes,uint256)":"9f963f59","setOperator(address)":"b3ab15fb","spentWtxIds(bytes32)":"5e0e5b3e","transferOwnership(address)":"f2fde38b","withdraw(bytes32)":"8e19899e","withdrawalAddrs(uint256)":"d1c44456"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wtxId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"depositScript\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"scriptSuffix\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredSigsCount\",\"type\":\"uint256\"}],\"name\":\"DepositScriptUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"OperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"bitcoin_address\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSIT_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIGHT_CLIENT\",\"outputs\":[{\"internalType\":\"contract BitcoinLightClient\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYSTEM_CALLER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"bitcoin_addresses\",\"type\":\"bytes32[]\"}],\"name\":\"batchWithdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes4\",\"name\":\"version\",\"type\":\"bytes4\"},{\"internalType\":\"bytes2\",\"name\":\"flag\",\"type\":\"bytes2\"},{\"internalType\":\"bytes\",\"name\":\"vin\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"vout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"witness\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"locktime\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"intermediate_nodes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"block_height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct Bridge.DepositParams\",\"name\":\"p\",\"type\":\"tuple\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositScript\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWithdrawalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_depositScript\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_scriptSuffix\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_requiredSigsCount\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requiredSigsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scriptSuffix\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_depositScript\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_scriptSuffix\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_requiredSigsCount\",\"type\":\"uint256\"}],\"name\":\"setDepositScript\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"spentWtxIds\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bitcoin_address\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdrawalAddrs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Citrea\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"batchWithdraw(bytes32[])\":{\"details\":\"Takes in multiple Bitcoin addresses as recipient addresses should be unique\",\"params\":{\"bitcoin_addresses\":\"The Bitcoin addresses of the receivers\"}},\"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))\":{\"params\":{\"p\":\"The deposit parameters that contains the info of the deposit transaction on Bitcoin\"}},\"getWithdrawalCount()\":{\"returns\":{\"_0\":\"The count of withdrawals happened so far\"}},\"initialize(bytes,bytes,uint256)\":{\"params\":{\"_depositScript\":\"The deposit script expected in the witness field for all L1 deposits\",\"_requiredSigsCount\":\"The number of signatures that is contained in the deposit script\",\"_scriptSuffix\":\"The suffix of the deposit script that follows the receiver address\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDepositScript(bytes,bytes,uint256)\":{\"details\":\"Deposit script contains a fixed script that checks signatures of verifiers and pushes EVM address of the receiver\",\"params\":{\"_depositScript\":\"The new deposit script\",\"_requiredSigsCount\":\"The number of signatures that are needed for deposit transaction\",\"_scriptSuffix\":\"The part of the deposit script that succeeds the receiver address\"}},\"setOperator(address)\":{\"params\":{\"_operator\":\"Address of the privileged operator\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"withdraw(bytes32)\":{\"params\":{\"bitcoin_address\":\"The Bitcoin address of the receiver\"}}},\"title\":\"Bridge contract for the Citrea end of Citrea <> Bitcoin bridge\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"batchWithdraw(bytes32[])\":{\"notice\":\"Batch version of `withdraw` that can accept multiple cBTC\"},\"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))\":{\"notice\":\"Checks if the deposit amount is sent to the bridge multisig on Bitcoin, and if so, sends the deposit amount to the receiver\"},\"initialize(bytes,bytes,uint256)\":{\"notice\":\"Initializes the bridge contract and sets the deposit script\"},\"setDepositScript(bytes,bytes,uint256)\":{\"notice\":\"Sets the expected deposit script of the deposit transaction on Bitcoin, contained in the witness\"},\"setOperator(address)\":{\"notice\":\"Sets the operator address that can process user deposits\"},\"withdraw(bytes32)\":{\"notice\":\"Accepts 1 cBTC from the sender and inserts this withdrawal request of 1 BTC on Bitcoin into the withdrawals array so that later on can be processed by the operator \"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Bridge.sol\":\"Bridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":bitcoin-spv/=lib/bitcoin-spv/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/WitnessUtils.sol\":{\"keccak256\":\"0x1fa2790ebb0313f318f3c864fd6aed82b88216caff7fa7397960c132544d7a4a\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://bccb5efa0edc81a435a9917433f0aea005ad71697dc5635edbc5acb9067d42cf\",\"dweb:/ipfs/QmUXSwCsXinGZKbdWbhYHDvDLsRgYMuWsKbQR7JFoawA6K\"]},\"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol\":{\"keccak256\":\"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc\",\"urls\":[\"bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667\",\"dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH\"]},\"lib/bitcoin-spv/solidity/contracts/BytesLib.sol\":{\"keccak256\":\"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1\",\"urls\":[\"bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6\",\"dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT\"]},\"lib/bitcoin-spv/solidity/contracts/SafeMath.sol\":{\"keccak256\":\"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3\",\"urls\":[\"bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b\",\"dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe\"]},\"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol\":{\"keccak256\":\"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b\",\"urls\":[\"bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a\",\"dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7\",\"dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"src/BitcoinLightClient.sol\":{\"keccak256\":\"0x9c8acc0e16c7a02b3328bf41cf08922b43f1eaf780199a0cf4aefac61ad2528c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac95a3440699da490d6830aec1ad4d515d7bba605be570767b39cf7fbdd182e7\",\"dweb:/ipfs/QmUt8FcufKn5afs1n2cf2JF1wwti1pDSaNnxDzJNRcqyWf\"]},\"src/Bridge.sol\":{\"keccak256\":\"0xa7a2f7cacb08eeba59342258e4b417ad64b176848ab1a8a08690075f98b8bcf4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://07344bad000cfba385638a58f9a856148b0255c00101ee66bd10a97528c00707\",\"dweb:/ipfs/QmWt9Y3fbhufjjr6TbAt1y6aWYLSaRRSCXY49Ng5EXNoLz\"]},\"src/interfaces/IBitcoinLightClient.sol\":{\"keccak256\":\"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650\",\"dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"bytes32","name":"wtxId","type":"bytes32","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"bytes","name":"depositScript","type":"bytes","indexed":false},{"internalType":"bytes","name":"scriptSuffix","type":"bytes","indexed":false},{"internalType":"uint256","name":"requiredSigsCount","type":"uint256","indexed":false}],"type":"event","name":"DepositScriptUpdate","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOperator","type":"address","indexed":false},{"internalType":"address","name":"newOperator","type":"address","indexed":false}],"type":"event","name":"OperatorUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bitcoin_address","type":"bytes32","indexed":false},{"internalType":"uint256","name":"index","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LIGHT_CLIENT","outputs":[{"internalType":"contract BitcoinLightClient","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SYSTEM_CALLER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"bytes32[]","name":"bitcoin_addresses","type":"bytes32[]"}],"stateMutability":"payable","type":"function","name":"batchWithdraw"},{"inputs":[{"internalType":"struct Bridge.DepositParams","name":"p","type":"tuple","components":[{"internalType":"bytes4","name":"version","type":"bytes4"},{"internalType":"bytes2","name":"flag","type":"bytes2"},{"internalType":"bytes","name":"vin","type":"bytes"},{"internalType":"bytes","name":"vout","type":"bytes"},{"internalType":"bytes","name":"witness","type":"bytes"},{"internalType":"bytes4","name":"locktime","type":"bytes4"},{"internalType":"bytes","name":"intermediate_nodes","type":"bytes"},{"internalType":"uint256","name":"block_height","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"depositScript","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getWithdrawalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_depositScript","type":"bytes"},{"internalType":"bytes","name":"_scriptSuffix","type":"bytes"},{"internalType":"uint256","name":"_requiredSigsCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"requiredSigsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scriptSuffix","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"_depositScript","type":"bytes"},{"internalType":"bytes","name":"_scriptSuffix","type":"bytes"},{"internalType":"uint256","name":"_requiredSigsCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositScript"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperator"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"spentWtxIds","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes32","name":"bitcoin_address","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalAddrs","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"batchWithdraw(bytes32[])":{"details":"Takes in multiple Bitcoin addresses as recipient addresses should be unique","params":{"bitcoin_addresses":"The Bitcoin addresses of the receivers"}},"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))":{"params":{"p":"The deposit parameters that contains the info of the deposit transaction on Bitcoin"}},"getWithdrawalCount()":{"returns":{"_0":"The count of withdrawals happened so far"}},"initialize(bytes,bytes,uint256)":{"params":{"_depositScript":"The deposit script expected in the witness field for all L1 deposits","_requiredSigsCount":"The number of signatures that is contained in the deposit script","_scriptSuffix":"The suffix of the deposit script that follows the receiver address"}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDepositScript(bytes,bytes,uint256)":{"details":"Deposit script contains a fixed script that checks signatures of verifiers and pushes EVM address of the receiver","params":{"_depositScript":"The new deposit script","_requiredSigsCount":"The number of signatures that are needed for deposit transaction","_scriptSuffix":"The part of the deposit script that succeeds the receiver address"}},"setOperator(address)":{"params":{"_operator":"Address of the privileged operator"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"withdraw(bytes32)":{"params":{"bitcoin_address":"The Bitcoin address of the receiver"}}},"version":1},"userdoc":{"kind":"user","methods":{"batchWithdraw(bytes32[])":{"notice":"Batch version of `withdraw` that can accept multiple cBTC"},"deposit((bytes4,bytes2,bytes,bytes,bytes,bytes4,bytes,uint256,uint256))":{"notice":"Checks if the deposit amount is sent to the bridge multisig on Bitcoin, and if so, sends the deposit amount to the receiver"},"initialize(bytes,bytes,uint256)":{"notice":"Initializes the bridge contract and sets the deposit script"},"setDepositScript(bytes,bytes,uint256)":{"notice":"Sets the expected deposit script of the deposit transaction on Bitcoin, contained in the witness"},"setOperator(address)":{"notice":"Sets the operator address that can process user deposits"},"withdraw(bytes32)":{"notice":"Accepts 1 cBTC from the sender and inserts this withdrawal request of 1 BTC on Bitcoin into the withdrawals array so that later on can be processed by the operator "}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","bitcoin-spv/=lib/bitcoin-spv/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Bridge.sol":"Bridge"},"evmVersion":"paris","libraries":{}},"sources":{"lib/WitnessUtils.sol":{"keccak256":"0x1fa2790ebb0313f318f3c864fd6aed82b88216caff7fa7397960c132544d7a4a","urls":["bzz-raw://bccb5efa0edc81a435a9917433f0aea005ad71697dc5635edbc5acb9067d42cf","dweb:/ipfs/QmUXSwCsXinGZKbdWbhYHDvDLsRgYMuWsKbQR7JFoawA6K"],"license":"LGPL-3.0-or-later"},"lib/bitcoin-spv/solidity/contracts/BTCUtils.sol":{"keccak256":"0x439eaa97e9239705f3d31e8d39dccbad32311f1f119e295d53c65e0ae3c5a5fc","urls":["bzz-raw://976a361a89c21afc44b5e0a552271d9288b12cf34a9925c25f3c6975ece4e667","dweb:/ipfs/QmNTb4eJyxV5iZj8RJGFBGSKXWsuvoMYqLLBgk16dhWePH"],"license":null},"lib/bitcoin-spv/solidity/contracts/BytesLib.sol":{"keccak256":"0x43e0f3b3b23c861bd031588bf410dfdd02e2af17941a89aa38d70e534e0380d1","urls":["bzz-raw://76011d699a8b229dbfdc698b3ece658daad9d96778e86d679aa576bc966209d6","dweb:/ipfs/QmRZEWAeRQtsTUvfzEd1jb2wAqpTNR5KAme92gBRn4SYiT"],"license":null},"lib/bitcoin-spv/solidity/contracts/SafeMath.sol":{"keccak256":"0x35930d982394c7ffde439b82e5e696c5b21a6f09699d44861dfe409ef64084a3","urls":["bzz-raw://090e9d78755d4916fa2f5f5d8f9fd2fc59bfc5a25a5e91636a92c4c07aee9c6b","dweb:/ipfs/QmXfz4TPDvgnuYz9eS5AL87GfCLxHQZJV1Y8ieJU9M8yTe"],"license":null},"lib/bitcoin-spv/solidity/contracts/ValidateSPV.sol":{"keccak256":"0xce3febbf3ad3a7ff8a8effd0c7ccaf7ccfa2719578b537d49ea196f0bae8062b","urls":["bzz-raw://5f18942483bf20507ae6c0abb5421df96b1aebb7af15f541bda8470f6277312a","dweb:/ipfs/QmPzEpA8w5k6pVFadm3UCLqNdxFAjPwP9Lpi5HMQsQg52J"],"license":null},"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol":{"keccak256":"0xbca4a4f66d98028293dba695851d1b20d3e0ba2fff7453fb241f192fa3fc6b6f","urls":["bzz-raw://013b3cfd9d1e34dad409c3b9a340860e8651e61cda509de33599fb5102f62fe7","dweb:/ipfs/QmTVjDKofM9Nst8w8LAA3HHgi1eCnGYBpFb7Nbat71e2xz"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"src/BitcoinLightClient.sol":{"keccak256":"0x9c8acc0e16c7a02b3328bf41cf08922b43f1eaf780199a0cf4aefac61ad2528c","urls":["bzz-raw://ac95a3440699da490d6830aec1ad4d515d7bba605be570767b39cf7fbdd182e7","dweb:/ipfs/QmUt8FcufKn5afs1n2cf2JF1wwti1pDSaNnxDzJNRcqyWf"],"license":"MIT"},"src/Bridge.sol":{"keccak256":"0xa7a2f7cacb08eeba59342258e4b417ad64b176848ab1a8a08690075f98b8bcf4","urls":["bzz-raw://07344bad000cfba385638a58f9a856148b0255c00101ee66bd10a97528c00707","dweb:/ipfs/QmWt9Y3fbhufjjr6TbAt1y6aWYLSaRRSCXY49Ng5EXNoLz"],"license":"UNLICENSED"},"src/interfaces/IBitcoinLightClient.sol":{"keccak256":"0x7b7bce470657991ad77890c0f9a3e01570279e6143038ed1b6f82f783feea33a","urls":["bzz-raw://52c1a77b309c61d34eb39b8a77fd5a5f8c154e50fd60db3007f5049d6b06b650","dweb:/ipfs/QmdHbULcAzZtD7u55bkQ8D9FEPMRvy1jgwNC3pFxHtiUfL"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/out/ProxyAdmin.sol/ProxyAdmin.json b/crates/evm/src/evm/system_contracts/out/ProxyAdmin.sol/ProxyAdmin.json new file mode 100644 index 000000000..b620669c5 --- /dev/null +++ b/crates/evm/src/evm/system_contracts/out/ProxyAdmin.sol/ProxyAdmin.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"changeProxyAdmin","inputs":[{"name":"proxy","type":"address","internalType":"contract ITransparentUpgradeableProxy"},{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getProxyAdmin","inputs":[{"name":"proxy","type":"address","internalType":"contract ITransparentUpgradeableProxy"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProxyImplementation","inputs":[{"name":"proxy","type":"address","internalType":"contract ITransparentUpgradeableProxy"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgrade","inputs":[{"name":"proxy","type":"address","internalType":"contract ITransparentUpgradeableProxy"},{"name":"implementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeAndCall","inputs":[{"name":"proxy","type":"address","internalType":"contract ITransparentUpgradeableProxy"},{"name":"implementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61065e8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056","sourceMap":"450:2409:35:-:0;;;;;;;;;;;;-1:-1:-1;936:32:28;734:10:38;936:18:28;:32::i;:::-;450:2409:35;;2426:187:28;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:28;;;-1:-1:-1;;;;;;2534:17:28;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;450:2409:35:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056","sourceMap":"450:2409:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;650:438;;;;;;;;;;-1:-1:-1;650:438:35;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;664:32:48;;;646:51;;634:2;619:18;650:438:35;;;;;;;1824:101:28;;;;;;;;;;;;;:::i;:::-;;1842:149:35;;;;;;;;;;-1:-1:-1;1842:149:35;;;;;:::i;:::-;;:::i;1201:85:28:-;;;;;;;;;;-1:-1:-1;1247:7:28;1273:6;-1:-1:-1;;;;;1273:6:28;1201:85;;2612:245:35;;;;;;:::i;:::-;;:::i;2196:150::-;;;;;;;;;;-1:-1:-1;2196:150:35;;;;;:::i;:::-;;:::i;2074:198:28:-;;;;;;;;;;-1:-1:-1;2074:198:28;;;;;:::i;:::-;;:::i;1248:420:35:-;;;;;;;;;;-1:-1:-1;1248:420:35;;;;;:::i;:::-;;:::i;650:438::-;747:7;924:12;938:23;973:5;-1:-1:-1;;;;;965:25:35;:40;;;;-1:-1:-1;;;3114:33:48;;3172:1;3163:11;;2913:267;965:40:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:82;;;;1023:7;1015:16;;;;;;1059:10;1048:33;;;;;;;;;;;;:::i;:::-;1041:40;650:438;-1:-1:-1;;;;650:438:35:o;1824:101:28:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1842:149:35:-;1094:13:28;:11;:13::i;:::-;1957:27:35::1;::::0;-1:-1:-1;;;1957:27:35;;-1:-1:-1;;;;;664:32:48;;;1957:27:35::1;::::0;::::1;646:51:48::0;1957:17:35;::::1;::::0;::::1;::::0;619:18:48;;1957:27:35::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1842:149:::0;;:::o;2612:245::-;1094:13:28;:11;:13::i;:::-;2788:62:35::1;::::0;-1:-1:-1;;;2788:62:35;;-1:-1:-1;;;;;2788:22:35;::::1;::::0;::::1;::::0;2818:9:::1;::::0;2788:62:::1;::::0;2829:14;;2845:4;;2788:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2612:245:::0;;;:::o;2196:150::-;1094:13:28;:11;:13::i;:::-;2308:31:35::1;::::0;-1:-1:-1;;;2308:31:35;;-1:-1:-1;;;;;664:32:48;;;2308:31:35::1;::::0;::::1;646:51:48::0;2308:15:35;::::1;::::0;::::1;::::0;619:18:48;;2308:31:35::1;500:203:48::0;2074:198:28;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:28;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:28;;4329:2:48;2154:73:28::1;::::0;::::1;4311:21:48::0;4368:2;4348:18;;;4341:30;4407:34;4387:18;;;4380:62;-1:-1:-1;;;4458:18:48;;;4451:36;4504:19;;2154:73:28::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1248:420:35:-;1336:7;1504:12;1518:23;1553:5;-1:-1:-1;;;;;1545:25:35;:40;;;;-1:-1:-1;;;4735:33:48;;4793:1;4784:11;;4534:267;1359:130:28;1247:7;1273:6;-1:-1:-1;;;;;1273:6:28;734:10:38;1422:23:28;1414:68;;;;-1:-1:-1;;;1414:68:28;;5008:2:48;1414:68:28;;;4990:21:48;;;5027:18;;;5020:30;5086:34;5066:18;;;5059:62;5138:18;;1414:68:28;4806:356:48;2426:187:28;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:28;;;-1:-1:-1;;;;;;2534:17:28;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:161:48:-;-1:-1:-1;;;;;119:31:48;;109:42;;99:70;;165:1;162;155:12;180:315;277:6;330:2;318:9;309:7;305:23;301:32;298:52;;;346:1;343;336:12;298:52;385:9;372:23;404:61;459:5;404:61;:::i;:::-;484:5;180:315;-1:-1:-1;;;180:315:48:o;708:486::-;814:6;822;875:2;863:9;854:7;850:23;846:32;843:52;;;891:1;888;881:12;843:52;930:9;917:23;949:61;1004:5;949:61;:::i;:::-;1029:5;-1:-1:-1;1086:2:48;1071:18;;1058:32;1099:63;1058:32;1099:63;:::i;:::-;1181:7;1171:17;;;708:486;;;;;:::o;1199:127::-;1260:10;1255:3;1251:20;1248:1;1241:31;1291:4;1288:1;1281:15;1315:4;1312:1;1305:15;1331:1295;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1579:9;1566:23;1598:61;1653:5;1598:61;:::i;:::-;1678:5;-1:-1:-1;1735:2:48;1720:18;;1707:32;1748:63;1707:32;1748:63;:::i;:::-;1830:7;-1:-1:-1;1888:2:48;1873:18;;1860:32;1911:18;1941:14;;;1938:34;;;1968:1;1965;1958:12;1938:34;2006:6;1995:9;1991:22;1981:32;;2051:7;2044:4;2040:2;2036:13;2032:27;2022:55;;2073:1;2070;2063:12;2022:55;2109:2;2096:16;2131:2;2127;2124:10;2121:36;;;2137:18;;:::i;:::-;2212:2;2206:9;2180:2;2266:13;;-1:-1:-1;;2262:22:48;;;2286:2;2258:31;2254:40;2242:53;;;2310:18;;;2330:22;;;2307:46;2304:72;;;2356:18;;:::i;:::-;2396:10;2392:2;2385:22;2431:2;2423:6;2416:18;2471:7;2466:2;2461;2457;2453:11;2449:20;2446:33;2443:53;;;2492:1;2489;2482:12;2443:53;2548:2;2543;2539;2535:11;2530:2;2522:6;2518:15;2505:46;2593:1;2588:2;2583;2575:6;2571:15;2567:24;2560:35;2614:6;2604:16;;;;;;;1331:1295;;;;;:::o;3185:289::-;3263:6;3316:2;3304:9;3295:7;3291:23;3287:32;3284:52;;;3332:1;3329;3322:12;3284:52;3364:9;3358:16;3383:61;3438:5;3383:61;:::i;3479:643::-;3683:1;3679;3674:3;3670:11;3666:19;3658:6;3654:32;3643:9;3636:51;3617:4;3706:2;3744;3739;3728:9;3724:18;3717:30;3776:6;3770:13;3819:6;3814:2;3803:9;3799:18;3792:34;3844:1;3854:140;3868:6;3865:1;3862:13;3854:140;;;3963:14;;;3959:23;;3953:30;3929:17;;;3948:2;3925:26;3918:66;3883:10;;3854:140;;;3858:3;4043:1;4038:2;4029:6;4018:9;4014:22;4010:31;4003:42;4113:2;4106;4102:7;4097:2;4089:6;4085:15;4081:29;4070:9;4066:45;4062:54;4054:62;;;;3479:643;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"details\":\"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.\"},\"getProxyAdmin(address)\":{\"details\":\"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"getProxyImplementation(address)\":{\"details\":\"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"details\":\"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":bitcoin-spv/=lib/bitcoin-spv/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x8e99882a991853dc446278576c8cb9b3a5ded84642e9bcc917b1677807c2f18c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310153c1a4c739002ffbc1351ed1dd7488a0d20f5dd816353332fc2c1d81e0a3\",\"dweb:/ipfs/QmcvwXQVUBRTEAoNcvwSVFmhpHUXQ21s2Hfj79hq2uQNVM\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017\",\"dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeProxyAdmin"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"}],"stateMutability":"view","type":"function","name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"}],"stateMutability":"view","type":"function","name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeAndCall"}],"devdoc":{"kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","bitcoin-spv/=lib/bitcoin-spv/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol":"ProxyAdmin"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol":{"keccak256":"0x8e99882a991853dc446278576c8cb9b3a5ded84642e9bcc917b1677807c2f18c","urls":["bzz-raw://310153c1a4c739002ffbc1351ed1dd7488a0d20f5dd816353332fc2c1d81e0a3","dweb:/ipfs/QmcvwXQVUBRTEAoNcvwSVFmhpHUXQ21s2Hfj79hq2uQNVM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689","urls":["bzz-raw://a45c64b97311fabbcbe8dad7e94fa89e06a7f96060d5565326ef706f5f239017","dweb:/ipfs/QmeU2jiBGbHhz9DqRotjbpAx5s2xExDSRQtSD5ENjuHzDq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"}},"version":1},"id":35} \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/script/GenesisGenerator.s.sol b/crates/evm/src/evm/system_contracts/script/GenesisGenerator.s.sol new file mode 100644 index 000000000..4a3e7ed07 --- /dev/null +++ b/crates/evm/src/evm/system_contracts/script/GenesisGenerator.s.sol @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import { Script } from "forge-std/Script.sol"; +import { console2 as console } from "forge-std/console2.sol"; +import "openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol"; + +import "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; +import "openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol"; + + +import "../src/BitcoinLightClient.sol"; +import "../src/Bridge.sol"; +import "../src/BaseFeeVault.sol"; +import "../src/L1FeeVault.sol"; +import "../src/PriorityFeeVault.sol"; +import {VmSafe} from "forge-std/Vm.sol"; + +// Taken from Optimism +// https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/scripts/libraries/Process.sol +library Process { + error FfiFailed(string); + VmSafe private constant vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code"))))); + /// @notice Foundry cheatcode VM. + function run(string[] memory _command, bool _allowEmpty) public returns (bytes memory stdout_) { + VmSafe.FfiResult memory result = vm.tryFfi(_command); + string memory command; + for (uint256 i = 0; i < _command.length; i++) { + command = string.concat(command, _command[i], " "); + } + if (result.exitCode != 0) { + revert FfiFailed(string.concat("Command: ", command, "\nError: ", string(result.stderr))); + } + // If the output is empty, result.stdout is "[]". + if (!_allowEmpty && keccak256(result.stdout) == keccak256(bytes("[]"))) { + revert FfiFailed(string.concat("No output from Command: ", command)); + } + stdout_ = result.stdout; + } +} + +// Inspired from Optimism's L2Genesis.s.sol +// https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/scripts/L2Genesis.s.sol +contract GenesisGenerator is Script { + address internal proxyAdmin = address(0x31fFFfFfFFFffFFFFFFfFFffffFFffffFfFFfffF); + bytes32 IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + bytes32 ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; + bytes32 OWNER_SLOT = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; // from OwnableUpgradeable + bytes32 FEE_RECIPIENT_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000000; + bytes32 MIN_WITHDRAW_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000001; + uint160 PROXY_IMPL_OFFSET = uint160(0x0100000000000000000000000000000000000000); // uint160(address(proxy)) - uint160(address(impl)) + + // Owner of proxy admin + //! CHANGE THIS IN PRODUCTION TO THE INITIAL EOA OWNER + address internal owner = address(0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266); + address internal feeRecipient = address(0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266); + + address[] internal devAddresses = + [ + address(0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266), + address(0x70997970C51812dc3A010C7d01b50e0d17dc79C8), + address(0x66f68692c03eB9C0656D676f2F4bD13eba40D1B7), + address(0xaafB7442f7F00B64057C2e9EaE2815bb63Ee0EcE), + address(0x9fCDf8f60d3009656E50Bf805Cd53C7335b284Fb), + address(0xe756fdf89367EF428b48BCa2d272Ec8EcEC053fD), + address(0x3AEEb871F83C85E68fFD1868bef3425eD6649D39), + address(0xd44821f906E3909b8AE944F7060551c33b922cc9), + address(0x0f820f428AE436C1000b27577bF5bbf09BfeC8f2), + address(0xC2F8Eed77da1583f7bae0a3125Dc7BC426002dDE) + ]; + + + function run() public { + dealBalanceToDevAddrs(); + dealBalanceToBridge(); + setProxyAdmin(); + setContracts(); + vm.dumpState("./state/genesis.json"); + generateEvmJson("./state/genesis.json", "./state/evm.json"); + } + + function dealBalanceToDevAddrs() internal { + for (uint i = 0; i < devAddresses.length; i++) { + vm.deal(devAddresses[i], type(uint120).max); + } + } + + function dealBalanceToBridge() internal { + address bridge = address(0x3100000000000000000000000000000000000002); + uint256 balance = 21_000_000 ether; + vm.deal(bridge, balance); + } + + function setProxyAdmin() internal { + address proxyAdminImpl = address(new ProxyAdmin()); + vm.etch(proxyAdmin, proxyAdminImpl.code); + vm.store(proxyAdmin, bytes32(0), bytes32(uint256(uint160(owner)))); + // Remove init proxy impl code from genesis state as it is already copied + vm.etch(proxyAdminImpl, ""); + vm.resetNonce(proxyAdminImpl); + vm.store(proxyAdminImpl, bytes32(0), bytes32(0)); + } + + function setContracts() internal { + deployContract(address(new BitcoinLightClient()), 1); + deployContract(address(new Bridge()), 2); + deployContract(address(new BaseFeeVault()), 3); + deployContract(address(new L1FeeVault()), 4); + deployContract(address(new PriorityFeeVault()), 5); + } + + function deployContract(address initImpl, uint160 index) internal { + address namespacedProxy = address(uint160(0x3100000000000000000000000000000000000000) + index); + address namespacedImpl = address(uint160(namespacedProxy) + PROXY_IMPL_OFFSET); + vm.etch(namespacedImpl, initImpl.code); + + // Remove init impl code from genesis state as it is already copied + vm.etch(initImpl, ""); + vm.resetNonce(initImpl); + + address initProxyImpl = address(new TransparentUpgradeableProxy(namespacedImpl, proxyAdmin, "")); + vm.etch(namespacedProxy, initProxyImpl.code); + vm.store(namespacedProxy, IMPLEMENTATION_SLOT, bytes32(uint256(uint160(namespacedImpl)))); + vm.store(namespacedProxy, ADMIN_SLOT, bytes32(uint256(uint160(proxyAdmin)))); + + // First contract is BitcoinLightClient, and it is the only one that doesn't have an owner, thus everything else's owner slot is set + if (index != 1) { + vm.store(namespacedProxy, OWNER_SLOT, bytes32(uint256(uint160(owner)))); + } + + // Fee vault contracts have a fee recipient and min withdraw amount + if ((index >= 3) && (index <= 5)) { + vm.store(namespacedProxy, FEE_RECIPIENT_SLOT, bytes32(uint256(uint160(feeRecipient)))); + vm.store(namespacedProxy, MIN_WITHDRAW_SLOT, bytes32(uint256(0.5 ether))); + } + + // Remove initial proxy impl code from genesis + vm.etch(initProxyImpl, ""); + vm.resetNonce(initProxyImpl); + } + + function generateEvmJson(string memory _genesisPath, string memory _evmPath) internal { + string[] memory commands = new string[](3); + commands[0] = "bash"; + commands[1] = "-c"; + commands[2] = string.concat("python3 ./script/GenesisToEvmJson.py ", _genesisPath, " ", _evmPath ); + Process.run(commands, false); + } +} diff --git a/crates/evm/src/evm/system_contracts/script/GenesisToEvmJson.py b/crates/evm/src/evm/system_contracts/script/GenesisToEvmJson.py new file mode 100644 index 000000000..70e7d9f91 --- /dev/null +++ b/crates/evm/src/evm/system_contracts/script/GenesisToEvmJson.py @@ -0,0 +1,57 @@ +import json +import sys + +with open(sys.argv[1], "r") as file: + data = json.load(file) + +# Sort the data by key +data = {k: data[k] for k in sorted(data)} + +new_data = [] + +for key in data: + new_data.append({ + "address": key, + "balance": data[key]["balance"], + "code": data[key]["code"] + }) + if data[key]["storage"] != {}: + new_data[-1]["storage"] = data[key]["storage"] + +evm_json = {} +evm_json["data"] = new_data +evm_json["chain_id"] = 5655 +evm_json["limit_contract_code_size"] = None +evm_json["spec"] = {"0": "SHANGHAI"} +evm_json["coinbase"] = "0x3100000000000000000000000000000000000005" +evm_json["starting_base_fee"] = 1000000000 +evm_json["block_gas_limit"] = 30000000 +evm_json["base_fee_params"] = {"max_change_denominator": 8, "elasticity_multiplier" : 2} +evm_json["difficulty"] = 0 +evm_json["extra_data"] = "0x" +evm_json["timestamp"] = 0 +evm_json["nonce"] = 0 + +with open(sys.argv[2], "w") as file: + json.dump(evm_json, file, indent=2) + +# Copy evm.json to following paths +paths = [ + "../../../../../resources/genesis/bitcoin-regtest/evm.json", + "../../../../../resources/genesis/mock/evm.json", + "../../../../../resources/genesis/mock-dockerized/evm.json", + "../../../../../resources/test-data/demo-tests/bitcoin-regtest/evm.json", + "../../../../../resources/test-data/demo-tests/mock/evm.json", + "../../../../../resources/test-data/integration-tests/evm.json", + "../../../../../resources/test-data/integration-tests-low-block-gas-limit/evm.json", + "../../../../../resources/test-data/integration-tests-low-max-l2-blocks-per-l1/evm.json" +] + +for path in paths: + with open(path, "w") as file: + if path == "../../../../../resources/test-data/integration-tests-low-block-gas-limit/evm.json": + new_evm_json = evm_json.copy() + new_evm_json["block_gas_limit"] = 1500000 + json.dump(new_evm_json, file, indent=2) + continue + json.dump(evm_json, file, indent=2) \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/src/BaseFeeVault.sol b/crates/evm/src/evm/system_contracts/src/BaseFeeVault.sol index 9b5058514..a13d73b17 100644 --- a/crates/evm/src/evm/system_contracts/src/BaseFeeVault.sol +++ b/crates/evm/src/evm/system_contracts/src/BaseFeeVault.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; +pragma solidity ^0.8.26; import "./FeeVault.sol"; diff --git a/crates/evm/src/evm/system_contracts/src/BitcoinLightClient.sol b/crates/evm/src/evm/system_contracts/src/BitcoinLightClient.sol index f05496041..71ac95a47 100644 --- a/crates/evm/src/evm/system_contracts/src/BitcoinLightClient.sol +++ b/crates/evm/src/evm/system_contracts/src/BitcoinLightClient.sol @@ -1,9 +1,8 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.13; +pragma solidity ^0.8.26; import "./interfaces/IBitcoinLightClient.sol"; import "bitcoin-spv/solidity/contracts/ValidateSPV.sol"; -import "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol"; import "openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol"; /// @title A system contract that stores block hashes and witness root hashes of L1 blocks @@ -13,7 +12,7 @@ import "openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradea // - Block hash getters returning 0 value means no such block is recorded // - Witness root getters returning 0 value doesn't necessarily mean no such block is recorded, as 0 is also a valid witness root hash in the case of a 1 transaction block -contract BitcoinLightClient is UUPSUpgradeable, Ownable2StepUpgradeable, IBitcoinLightClient { +contract BitcoinLightClient is IBitcoinLightClient { uint256 public blockNumber; address public constant SYSTEM_CALLER = address(0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD); mapping(uint256 => bytes32) public blockHashes; @@ -91,6 +90,4 @@ contract BitcoinLightClient is UUPSUpgradeable, Ownable2StepUpgradeable, IBitcoi bytes32 _witnessRoot = witnessRoots[_blockHash]; return ValidateSPV.prove(_wtxId, _witnessRoot, _proof, _index); } - - function _authorizeUpgrade(address) internal override onlyOwner {} } diff --git a/crates/evm/src/evm/system_contracts/src/Bridge.sol b/crates/evm/src/evm/system_contracts/src/Bridge.sol index b77ec6b7e..6d6ecda32 100644 --- a/crates/evm/src/evm/system_contracts/src/Bridge.sol +++ b/crates/evm/src/evm/system_contracts/src/Bridge.sol @@ -1,17 +1,16 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; +pragma solidity ^0.8.26; import "bitcoin-spv/solidity/contracts/ValidateSPV.sol"; import "bitcoin-spv/solidity/contracts/BTCUtils.sol"; import "../lib/WitnessUtils.sol"; import "./BitcoinLightClient.sol"; -import "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol"; import "openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol"; /// @title Bridge contract for the Citrea end of Citrea <> Bitcoin bridge /// @author Citrea -contract Bridge is UUPSUpgradeable, Ownable2StepUpgradeable { +contract Bridge is Ownable2StepUpgradeable { using BTCUtils for bytes; using BytesLib for bytes; @@ -190,6 +189,4 @@ contract Bridge is UUPSUpgradeable, Ownable2StepUpgradeable { bytes20 _addr = bytes20(_script.slice(offset, 20)); return address(uint160(_addr)); } - - function _authorizeUpgrade(address) internal override onlyOwner {} } diff --git a/crates/evm/src/evm/system_contracts/src/FeeVault.sol b/crates/evm/src/evm/system_contracts/src/FeeVault.sol index a3e14147f..286e02d7c 100644 --- a/crates/evm/src/evm/system_contracts/src/FeeVault.sol +++ b/crates/evm/src/evm/system_contracts/src/FeeVault.sol @@ -1,13 +1,12 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; +pragma solidity ^0.8.26; -import "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol"; import "openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol"; /// @title Fee accumulator contract template /// @author Citrea -abstract contract FeeVault is UUPSUpgradeable, Ownable2StepUpgradeable { +abstract contract FeeVault is Ownable2StepUpgradeable { address public recipient; uint256 public minWithdraw; @@ -40,6 +39,4 @@ abstract contract FeeVault is UUPSUpgradeable, Ownable2StepUpgradeable { minWithdraw = _minWithdraw; emit MinWithdrawUpdated(oldMinWithdraw, _minWithdraw); } - - function _authorizeUpgrade(address) internal override onlyOwner {} } \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/src/L1FeeVault.sol b/crates/evm/src/evm/system_contracts/src/L1FeeVault.sol index fce78a92c..305c8ba38 100644 --- a/crates/evm/src/evm/system_contracts/src/L1FeeVault.sol +++ b/crates/evm/src/evm/system_contracts/src/L1FeeVault.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; +pragma solidity ^0.8.26; import "./FeeVault.sol"; diff --git a/crates/evm/src/evm/system_contracts/src/PriorityFeeVault.sol b/crates/evm/src/evm/system_contracts/src/PriorityFeeVault.sol index 726c60825..180f27446 100644 --- a/crates/evm/src/evm/system_contracts/src/PriorityFeeVault.sol +++ b/crates/evm/src/evm/system_contracts/src/PriorityFeeVault.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; +pragma solidity ^0.8.26; import "./FeeVault.sol"; diff --git a/crates/evm/src/evm/system_contracts/test/BaseFeeVault.t.sol b/crates/evm/src/evm/system_contracts/test/BaseFeeVault.t.sol index c2718a9ac..ba5b1dabf 100644 --- a/crates/evm/src/evm/system_contracts/test/BaseFeeVault.t.sol +++ b/crates/evm/src/evm/system_contracts/test/BaseFeeVault.t.sol @@ -3,21 +3,22 @@ pragma solidity ^0.8.13; import "./FeeVault.t.sol"; import "../src/BaseFeeVault.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - contract BaseFeeVaultTest is FeeVaultTest { - function setUp() public { + function setUp() public override{ + super.setUp(); feeVault = BaseFeeVault(payable(address(0x3100000000000000000000000000000000000003))); address baseFeeVaultImpl = address(new BaseFeeVault()); - address erc1967Impl = address(new ERC1967Proxy(baseFeeVaultImpl, "")); - vm.etch(address(feeVault), erc1967Impl.code); + address proxy_impl = address(new TransparentUpgradeableProxy(baseFeeVaultImpl, address(proxyAdmin), "")); + vm.etch(address(feeVault), proxy_impl.code); bytes32 IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; bytes32 OWNER_SLOT = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; + bytes32 ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; bytes32 RECIPIENT_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000000; bytes32 MIN_WITHDRAW_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000001; vm.store(address(feeVault), IMPLEMENTATION_SLOT, bytes32(uint256(uint160(baseFeeVaultImpl)))); vm.store(address(feeVault), OWNER_SLOT, bytes32(uint256(uint160(owner)))); + vm.store(address(feeVault), ADMIN_SLOT, bytes32(uint256(uint160(address(proxyAdmin))))); vm.store(address(feeVault), RECIPIENT_SLOT, bytes32(uint256(uint160(recipient)))); vm.store(address(feeVault), MIN_WITHDRAW_SLOT, bytes32(uint256(0.5 ether))); } diff --git a/crates/evm/src/evm/system_contracts/test/BitcoinLightClient.t.sol b/crates/evm/src/evm/system_contracts/test/BitcoinLightClient.t.sol index 7fc8ba94e..b8a615bee 100644 --- a/crates/evm/src/evm/system_contracts/test/BitcoinLightClient.t.sol +++ b/crates/evm/src/evm/system_contracts/test/BitcoinLightClient.t.sol @@ -3,15 +3,12 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; import "../src/BitcoinLightClient.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - - -contract Placeholder is UUPSUpgradeable { - function _authorizeUpgrade(address newImplementation) internal override {} -} +import "openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; +import "openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol"; contract FalseClient is BitcoinLightClient { - function getBlockHashFalse(uint256 _blockNumber) public view returns (bytes32) { + function getBlockHashFalse(uint256 /* _blockNumber */) public pure returns (bytes32) { return keccak256("false"); } } @@ -19,22 +16,25 @@ contract FalseClient is BitcoinLightClient { contract BitcoinLightClientTest is Test { BitcoinLightClient bitcoinLightClient = BitcoinLightClient(address(0x3100000000000000000000000000000000000001)); + ProxyAdmin proxyAdmin = ProxyAdmin(0x31fFFfFfFFFffFFFFFFfFFffffFFffffFfFFfffF); bytes32 mockBlockHash = bytes32(keccak256("CITREA_TEST")); bytes32 mockWitnessRoot = bytes32(keccak256("CITREA")); uint256 constant INITIAL_BLOCK_NUMBER = 505050; address constant SYSTEM_CALLER = address(0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD); - address owner = address(0x013); + address owner = makeAddr("owner"); function setUp() public { + proxyAdmin = new ProxyAdmin(); + vm.etch(address(proxyAdmin), address(proxyAdmin).code); + vm.store(address(proxyAdmin), bytes32(0), bytes32(uint256(uint160(owner)))); address lightClient_impl = address(new BitcoinLightClient()); - address placeholder = address(new Placeholder()); - address erc1967_impl = address(new ERC1967Proxy(placeholder, "")); - vm.etch(address(bitcoinLightClient), erc1967_impl.code); + address proxy_impl = address(new TransparentUpgradeableProxy(lightClient_impl, address(proxyAdmin), "")); + vm.etch(address(bitcoinLightClient), proxy_impl.code); bytes32 IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - bytes32 OWNER_SLOT = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; + bytes32 ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; vm.store(address(bitcoinLightClient), IMPLEMENTATION_SLOT, bytes32(uint256(uint160(lightClient_impl)))); - vm.store(address(bitcoinLightClient), OWNER_SLOT, bytes32(uint256(uint160(owner)))); + vm.store(address(bitcoinLightClient), ADMIN_SLOT, bytes32(uint256(uint160(address(proxyAdmin))))); vm.startPrank(SYSTEM_CALLER); } @@ -111,7 +111,7 @@ contract BitcoinLightClientTest is Test { address newImpl = address(new FalseClient()); vm.stopPrank(); vm.prank(owner); - bitcoinLightClient.upgradeToAndCall(newImpl, ""); + proxyAdmin.upgrade(ITransparentUpgradeableProxy(payable(address(bitcoinLightClient))), newImpl); assertEq(FalseClient(address(bitcoinLightClient)).getBlockHashFalse(0), keccak256("false")); } @@ -120,18 +120,17 @@ contract BitcoinLightClientTest is Test { vm.prank(address(0x1)); address newImpl = address(new FalseClient()); vm.expectRevert(); - bitcoinLightClient.upgradeToAndCall(newImpl, ""); + proxyAdmin.upgrade(ITransparentUpgradeableProxy(payable(address(bitcoinLightClient))), newImpl); } function testOwnerCanChangeAndUpgrade() public { address newImpl = address(new FalseClient()); vm.stopPrank(); - address newOwner = address(0x051323242); + address newOwner = makeAddr("newOwner"); vm.prank(owner); - bitcoinLightClient.transferOwnership(newOwner); + proxyAdmin.transferOwnership(newOwner); vm.startPrank(newOwner); - bitcoinLightClient.acceptOwnership(); - bitcoinLightClient.upgradeToAndCall(newImpl, ""); + proxyAdmin.upgrade(ITransparentUpgradeableProxy(payable(address(bitcoinLightClient))), newImpl); assertEq(FalseClient(address(bitcoinLightClient)).getBlockHashFalse(0), keccak256("false")); } } \ No newline at end of file diff --git a/crates/evm/src/evm/system_contracts/test/Bridge.t.sol b/crates/evm/src/evm/system_contracts/test/Bridge.t.sol index 6424a9c10..f0c192022 100644 --- a/crates/evm/src/evm/system_contracts/test/Bridge.t.sol +++ b/crates/evm/src/evm/system_contracts/test/Bridge.t.sol @@ -7,6 +7,10 @@ import "forge-std/console.sol"; import "../src/Bridge.sol"; import "bitcoin-spv/solidity/contracts/BTCUtils.sol"; import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import "openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; + +import "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; + // !!! WARNINGS: @@ -51,14 +55,26 @@ contract BridgeTest is Test { BitcoinLightClient bitcoinLightClient; + ProxyAdmin proxyAdmin = ProxyAdmin(0x31fFFfFfFFFffFFFFFFfFFffffFFffffFfFFfffF); + function setUp() public { + proxyAdmin = new ProxyAdmin(); + vm.etch(address(proxyAdmin), address(proxyAdmin).code); + vm.store(address(proxyAdmin), bytes32(0), bytes32(uint256(uint160(owner)))); + address bridgeImpl = address(new BridgeHarness()); - address erc1967_impl = address(new ERC1967Proxy(bridgeImpl, "")); - vm.etch(address(bridge), erc1967_impl.code); + address proxy_impl = address(new TransparentUpgradeableProxy(bridgeImpl, address(proxyAdmin), "")); + + vm.etch(address(bridge), proxy_impl.code); + bytes32 IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + bytes32 ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; bytes32 OWNER_SLOT = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; + vm.store(address(bridge), IMPLEMENTATION_SLOT, bytes32(uint256(uint160(bridgeImpl)))); + vm.store(address(bridge), ADMIN_SLOT, bytes32(uint256(uint160(address(proxyAdmin))))); vm.store(address(bridge), OWNER_SLOT, bytes32(uint256(uint160(owner)))); + vm.prank(SYSTEM_CALLER); bridge.initialize(depositScript, scriptSuffix, 5); vm.deal(address(bridge), 21_000_000 ether); @@ -250,7 +266,7 @@ contract BridgeTest is Test { function testUpgrade() public { address falseBridgeImpl = address(new FalseBridge()); vm.prank(owner); - bridge.upgradeToAndCall(falseBridgeImpl, ""); + proxyAdmin.upgrade(ITransparentUpgradeableProxy(payable(address(bridge))), falseBridgeImpl); assertEq(FalseBridge(address(bridge)).falseFunc(), keccak256("false")); } @@ -258,7 +274,7 @@ contract BridgeTest is Test { address falseBridgeImpl = address(new FalseBridge()); vm.prank(user); vm.expectRevert(); - bridge.upgradeToAndCall(falseBridgeImpl, ""); + proxyAdmin.upgrade(ITransparentUpgradeableProxy(payable(address(bridge))), falseBridgeImpl); } function testOwnerCanChangeAndUpgrade() public { @@ -266,10 +282,9 @@ contract BridgeTest is Test { vm.stopPrank(); address newOwner = makeAddr("citrea_new_owner"); vm.prank(owner); - bridge.transferOwnership(newOwner); + proxyAdmin.transferOwnership(newOwner); vm.startPrank(newOwner); - bridge.acceptOwnership(); - bridge.upgradeToAndCall(falseBridgeImpl, ""); + proxyAdmin.upgrade(ITransparentUpgradeableProxy(payable(address(bridge))), falseBridgeImpl); assertEq(FalseBridge(address(bridge)).falseFunc(), keccak256("false")); } diff --git a/crates/evm/src/evm/system_contracts/test/FeeVault.t.sol b/crates/evm/src/evm/system_contracts/test/FeeVault.t.sol index e701a279b..56c82d922 100644 --- a/crates/evm/src/evm/system_contracts/test/FeeVault.t.sol +++ b/crates/evm/src/evm/system_contracts/test/FeeVault.t.sol @@ -3,13 +3,20 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; import "forge-std/console.sol"; - +import "openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol"; import "../src/FeeVault.sol"; abstract contract FeeVaultTest is Test { FeeVault feeVault; + ProxyAdmin proxyAdmin = ProxyAdmin(0x31fFFfFfFFFffFFFFFFfFFffffFFffffFfFFfffF); address owner = makeAddr("citrea_owner"); address recipient = makeAddr("citrea_recipient"); + function setUp() public virtual { + proxyAdmin = new ProxyAdmin(); + vm.etch(address(proxyAdmin), address(proxyAdmin).code); + vm.store(address(proxyAdmin), bytes32(0), bytes32(uint256(uint160(owner)))); + } + function testWithdraw() public { vm.deal(address(feeVault), 1 ether); vm.prank(owner); diff --git a/crates/evm/src/evm/system_contracts/test/L1FeeVault.t.sol b/crates/evm/src/evm/system_contracts/test/L1FeeVault.t.sol index 277aefad4..9997265db 100644 --- a/crates/evm/src/evm/system_contracts/test/L1FeeVault.t.sol +++ b/crates/evm/src/evm/system_contracts/test/L1FeeVault.t.sol @@ -3,21 +3,22 @@ pragma solidity ^0.8.13; import "./FeeVault.t.sol"; import "../src/L1FeeVault.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - contract L1FeeVaultTest is FeeVaultTest { - function setUp() public { + function setUp() public override { + super.setUp(); feeVault = L1FeeVault(payable(address(0x3100000000000000000000000000000000000004))); address l1FeeVaultImpl = address(new L1FeeVault()); - address erc1967Impl = address(new ERC1967Proxy(l1FeeVaultImpl, "")); - vm.etch(address(feeVault), erc1967Impl.code); + address proxy_impl = address(new TransparentUpgradeableProxy(l1FeeVaultImpl, address(proxyAdmin), "")); + vm.etch(address(feeVault), proxy_impl.code); bytes32 IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; bytes32 OWNER_SLOT = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; + bytes32 ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; bytes32 RECIPIENT_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000000; bytes32 MIN_WITHDRAW_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000001; vm.store(address(feeVault), IMPLEMENTATION_SLOT, bytes32(uint256(uint160(l1FeeVaultImpl)))); vm.store(address(feeVault), OWNER_SLOT, bytes32(uint256(uint160(owner)))); + vm.store(address(feeVault), ADMIN_SLOT, bytes32(uint256(uint160(address(proxyAdmin))))); vm.store(address(feeVault), RECIPIENT_SLOT, bytes32(uint256(uint160(recipient)))); vm.store(address(feeVault), MIN_WITHDRAW_SLOT, bytes32(uint256(0.5 ether))); } diff --git a/crates/evm/src/evm/system_contracts/test/PriorityFeeVault.t.sol b/crates/evm/src/evm/system_contracts/test/PriorityFeeVault.t.sol index 7a959dcd0..01a6c8596 100644 --- a/crates/evm/src/evm/system_contracts/test/PriorityFeeVault.t.sol +++ b/crates/evm/src/evm/system_contracts/test/PriorityFeeVault.t.sol @@ -3,21 +3,22 @@ pragma solidity ^0.8.13; import "./FeeVault.t.sol"; import "../src/PriorityFeeVault.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - contract PriorityFeeVaultTest is FeeVaultTest { - function setUp() public { + function setUp() public override { + super.setUp(); feeVault = PriorityFeeVault(payable(address(0x3100000000000000000000000000000000000005))); address priorityFeeVaultImpl = address(new PriorityFeeVault()); - address erc1967Impl = address(new ERC1967Proxy(priorityFeeVaultImpl, "")); - vm.etch(address(feeVault), erc1967Impl.code); + address proxy_impl = address(new TransparentUpgradeableProxy(priorityFeeVaultImpl, address(proxyAdmin), "")); + vm.etch(address(feeVault), proxy_impl.code); bytes32 IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; bytes32 OWNER_SLOT = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300; + bytes32 ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; bytes32 RECIPIENT_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000000; bytes32 MIN_WITHDRAW_SLOT = 0x0000000000000000000000000000000000000000000000000000000000000001; vm.store(address(feeVault), IMPLEMENTATION_SLOT, bytes32(uint256(uint160(priorityFeeVaultImpl)))); vm.store(address(feeVault), OWNER_SLOT, bytes32(uint256(uint160(owner)))); + vm.store(address(feeVault), ADMIN_SLOT, bytes32(uint256(uint160(address(proxyAdmin))))); vm.store(address(feeVault), RECIPIENT_SLOT, bytes32(uint256(uint160(recipient)))); vm.store(address(feeVault), MIN_WITHDRAW_SLOT, bytes32(uint256(0.5 ether))); } diff --git a/crates/evm/src/tests/sys_tx_tests.rs b/crates/evm/src/tests/sys_tx_tests.rs index bdb6c5100..622544914 100644 --- a/crates/evm/src/tests/sys_tx_tests.rs +++ b/crates/evm/src/tests/sys_tx_tests.rs @@ -5,7 +5,7 @@ use alloy_primitives::LogData; use reth_primitives::constants::ETHEREUM_BLOCK_GAS_LIMIT; use reth_primitives::{address, b256, hex, BlockNumberOrTag, Log, TxKind}; use reth_rpc_types::{TransactionInput, TransactionRequest}; -use revm::primitives::{Bytes, U256}; +use revm::primitives::{Bytes, KECCAK_EMPTY, U256}; use sov_modules_api::default_context::DefaultContext; use sov_modules_api::hooks::HookSoftConfirmationInfo; use sov_modules_api::utils::generate_address; @@ -15,11 +15,12 @@ use crate::call::CallMessage; use crate::evm::primitive_types::Receipt; use crate::evm::system_contracts::BitcoinLightClient; use crate::smart_contracts::{BlockHashContract, LogsContract}; -use crate::system_contracts::Bridge; +use crate::system_contracts::{Bridge, ProxyAdmin}; use crate::tests::call_tests::{ create_contract_message, create_contract_message_with_fee, get_evm_config_starting_base_fee, publish_event_message, }; +use crate::tests::test_signer::TestSigner; use crate::tests::utils::get_evm; use crate::{AccountData, EvmConfig, BASE_FEE_VAULT, L1_FEE_VAULT, SYSTEM_SIGNER}; @@ -43,10 +44,10 @@ fn test_sys_bitcoin_light_client() { receipt: reth_primitives::Receipt { tx_type: reth_primitives::TxType::Eip1559, success: true, - cumulative_gas_used: 48522, + cumulative_gas_used: 50751, logs: vec![] }, - gas_used: 48522, + gas_used: 50751, log_index_start: 0, l1_diff_size: 168, }, @@ -54,7 +55,7 @@ fn test_sys_bitcoin_light_client() { receipt: reth_primitives::Receipt { tx_type: reth_primitives::TxType::Eip1559, success: true, - cumulative_gas_used: 127013, + cumulative_gas_used: 131471, logs: vec![ Log { address: BitcoinLightClient::address(), @@ -65,7 +66,7 @@ fn test_sys_bitcoin_light_client() { } ] }, - gas_used: 78491, + gas_used: 80720, log_index_start: 0, l1_diff_size: 296, }, @@ -73,7 +74,7 @@ fn test_sys_bitcoin_light_client() { receipt: reth_primitives::Receipt { tx_type: reth_primitives::TxType::Eip1559, success: true, - cumulative_gas_used: 385984, + cumulative_gas_used: 392686, logs: vec![ Log { address: Bridge::address(), @@ -91,7 +92,7 @@ fn test_sys_bitcoin_light_client() { } ] }, - gas_used: 258971, + gas_used: 261215, log_index_start: 1, l1_diff_size: 744, } @@ -188,7 +189,7 @@ fn test_sys_bitcoin_light_client() { receipt: reth_primitives::Receipt { tx_type: reth_primitives::TxType::Eip1559, success: true, - cumulative_gas_used: 78491, + cumulative_gas_used: 80720, logs: vec![ Log { address: BitcoinLightClient::address(), @@ -199,7 +200,7 @@ fn test_sys_bitcoin_light_client() { } ] }, - gas_used: 78491, + gas_used: 80720, log_index_start: 0, l1_diff_size: 296, }, @@ -207,7 +208,7 @@ fn test_sys_bitcoin_light_client() { receipt: reth_primitives::Receipt { tx_type: reth_primitives::TxType::Eip1559, success: true, - cumulative_gas_used: 192726, + cumulative_gas_used: 194955, logs: vec![] }, gas_used: 114235, @@ -321,16 +322,16 @@ fn test_sys_tx_gas_usage_effect_on_block_gas_limit() { let context = C::new(sender_address, sequencer_address, 2); let sys_tx_gas_usage = evm.get_pending_txs_cumulative_gas_used(&mut working_set); - assert_eq!(sys_tx_gas_usage, 78491); + assert_eq!(sys_tx_gas_usage, 80720); let mut rlp_transactions = Vec::new(); // Check: Given now we also push bridge contract, is the following calculation correct? - // the amount of gas left is 30_000_000 - 78491 = 29_921_509 + // the amount of gas left is 30_000_000 - 80720 = 29_919_280 // send barely enough gas to reach the limit // one publish event message is 26388 gas - // 29921509 / 26388 = 1133.09 + // 29919280 / 26388 = 1133.82 // so there cannot be more than 1133 messages for i in 0..11350 { rlp_transactions.push(publish_event_message( @@ -469,22 +470,129 @@ fn test_bridge() { ); } +#[test] +fn test_upgrade_light_client() { + // initialize_logging(tracing::Level::INFO); + let (mut config, _, _) = get_evm_config_starting_base_fee( + U256::from_str("1000000000000000000000").unwrap(), + None, + 1, + ); + + config_push_contracts(&mut config); + + // False bitcoin light client implementation, returns dead address on block hash query + config.data.push(AccountData::new( + address!("deAD00000000000000000000000000000000dEAd"), + U256::ZERO, + Bytes::from_static(&hex!("6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103cf57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610cec565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d05565b6103ef565b005b34801561018757600080fd5b50610179610196366004610cec565b610518565b3480156101a757600080fd5b506101466101b6366004610cec565b60016020526000908152604090205481565b6101796101d6366004610d59565b6105c6565b3480156101e757600080fd5b506101fb6101f6366004610e64565b6105dd565b6040519015158152602001610150565b34801561021757600080fd5b50610146610603565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610cec565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610632565b34801561029157600080fd5b50610179610646565b3480156102a657600080fd5b506102af61068e565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610cec565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610ee3565b34801561033e57600080fd5b506101fb61034d366004610e64565b6106c3565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106d2565b34801561039b57600080fd5b506101466103aa366004610cec565b507fdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead90565b3480156103db57600080fd5b506101796103ea366004610f16565b6106fb565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104575760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361049d5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161044e565b60008181526001602081905260409091208490556104bc908290610f31565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead1461057b5760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161044e565b600054156105c15760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161044e565b600055565b6105cf82610780565b6105d98282610788565b5050565b6000858152600160205260408120546105f9908686868661085c565b9695505050505050565b600061060d6108ba565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61063a610903565b6106446000610935565b565b33806106506106d2565b6001600160a01b0316146106825760405163118cdaa760e01b81526001600160a01b038216600482015260240161044e565b61068b81610935565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105f9868686868661085c565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006106b3565b610703610903565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561074761068e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b61068b610903565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107e2575060408051601f3d908101601f191682019092526107df91810190610f52565b60015b61080a57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161044e565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461084d57604051632a87526960e21b81526004810182905260240161044e565b610857838361096d565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916108af91889184919089908990819084018382808284376000920191909152508992506109c3915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106445760405163703e46dd60e11b815260040160405180910390fd5b3361090c61068e565b6001600160a01b0316146106445760405163118cdaa760e01b815233600482015260240161044e565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105d982610a01565b61097682610a72565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156109bb576108578282610ae9565b6105d9610b61565b600083851480156109d2575081155b80156109dd57508251155b156109ea575060016109f9565b6109f685848685610b80565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610aa857604051634c9c8ce360e01b81526001600160a01b038216600482015260240161044e565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b069190610f6b565b600060405180830381855af49150503d8060008114610b41576040519150601f19603f3d011682016040523d82523d6000602084013e610b46565b606091505b5091509150610b56858383610c2a565b925050505b92915050565b34156106445760405163b398979f60e01b815260040160405180910390fd5b600060208451610b909190610f87565b15610b9d575060006109f9565b8351600003610bae575060006109f9565b818560005b8651811015610c1d57610bc7600284610f87565b600103610beb57610be4610bde8883016020015190565b83610c89565b9150610c04565b610c0182610bfc8984016020015190565b610c89565b91505b60019290921c91610c16602082610f31565b9050610bb3565b5090931495945050505050565b606082610c3f57610c3a82610c95565b610c82565b8151158015610c5657506001600160a01b0384163b155b15610c7f57604051639996b31560e01b81526001600160a01b038516600482015260240161044e565b50805b9392505050565b6000610c828383610cbe565b805115610ca55780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610cfe57600080fd5b5035919050565b60008060408385031215610d1857600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610d3e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610d6c57600080fd5b610d7583610d27565b9150602083013567ffffffffffffffff80821115610d9257600080fd5b818501915085601f830112610da657600080fd5b813581811115610db857610db8610d43565b604051601f8201601f19908116603f01168101908382118183101715610de057610de0610d43565b81604052828152886020848701011115610df957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e2d57600080fd5b50813567ffffffffffffffff811115610e4557600080fd5b602083019150836020828501011115610e5d57600080fd5b9250929050565b600080600080600060808688031215610e7c57600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610ea157600080fd5b610ead88828901610e1b565b96999598509660600135949350505050565b60005b83811015610eda578181015183820152602001610ec2565b50506000910152565b6020815260008251806020840152610f02816040850160208701610ebf565b601f01601f19169190910160400192915050565b600060208284031215610f2857600080fd5b610c8282610d27565b80820180821115610b5b57634e487b7160e01b600052601160045260246000fd5b600060208284031215610f6457600080fd5b5051919050565b60008251610f7d818460208701610ebf565b9190910192915050565b600082610fa457634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220cb22b346a23078243cb869a68fb68e5704b567765a15214f1d3d3d7cadb59a9764736f6c63430008190033")), + 0, + HashMap::new() + )); + + // secret key is 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 + let contract_owner = TestSigner::new( + secp256k1::SecretKey::from_slice(&[ + 0xac, 0x09, 0x74, 0xbe, 0xc3, 0x9a, 0x17, 0xe3, 0x6b, 0xa4, 0xa6, 0xb4, 0xd2, 0x38, + 0xff, 0x94, 0x4b, 0xac, 0xb4, 0x78, 0xcb, 0xed, 0x5e, 0xfc, 0xae, 0x78, 0x4d, 0x7b, + 0xf4, 0xf2, 0xff, 0x80, + ]) + .unwrap(), + ); + + config.data.push(AccountData { + address: contract_owner.address(), + balance: U256::from_str("1000000000000000000000").unwrap(), + code_hash: KECCAK_EMPTY, + code: Bytes::default(), + nonce: 0, + storage: Default::default(), + }); + + let (evm, mut working_set) = get_evm(&config); + + let sender_address = generate_address::("sender"); + let sequencer_address = generate_address::("sequencer"); + let context = C::new(sender_address, sequencer_address, 1); + + evm.begin_soft_confirmation_hook( + &HookSoftConfirmationInfo { + da_slot_hash: [5u8; 32], + da_slot_height: 1, + da_slot_txs_commitment: [42u8; 32], + pre_state_root: [10u8; 32].to_vec(), + pub_key: vec![], + deposit_data: vec![], + l1_fee_rate: 1, + timestamp: 0, + }, + &mut working_set, + ); + + let upgrade_tx = contract_owner + .sign_default_transaction( + TxKind::Call(ProxyAdmin::address()), + ProxyAdmin::upgrade( + BitcoinLightClient::address(), + address!("deAD00000000000000000000000000000000dEAd"), + ) + .to_vec(), + 0, + 0, + ) + .unwrap(); + evm.call( + CallMessage { + txs: vec![upgrade_tx], + }, + &context, + &mut working_set, + ) + .unwrap(); + + evm.end_soft_confirmation_hook(&mut working_set); + evm.finalize_hook(&[99u8; 32].into(), &mut working_set.accessory_state()); + + let hash = evm + .get_call( + TransactionRequest { + to: Some(TxKind::Call(BitcoinLightClient::address())), + input: TransactionInput::new(BitcoinLightClient::get_block_hash(0)), + ..Default::default() + }, + None, + None, + None, + &mut working_set, + ) + .unwrap(); + + // Assert if hash is equal to 0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead + assert_eq!( + hash, + reth_primitives::Bytes::from_str( + "0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead" + ) + .unwrap() + ); +} + fn config_push_contracts(config: &mut EvmConfig) { config.data.push(AccountData::new( BitcoinLightClient::address(), U256::ZERO, - Bytes::from_static(&hex!("6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033")), + Bytes::from_static(&hex!("60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564")), 0, [ - (U256::from_be_slice(&hex!("360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc")), U256::from_be_slice(&hex!("3200000000000000000000000000000000000001"))), - (U256::from_be_slice(&hex!("9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300")), U256::from_be_slice(&hex!("f39fd6e51aad88f6f4ce6ab8827279cfffb92266"))), + (U256::from_be_slice(&hex!("360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc")), U256::from_be_slice(&hex!("0000000000000000000000003200000000000000000000000000000000000001"))), + (U256::from_be_slice(&hex!("b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103")), U256::from_be_slice(&hex!("00000000000000000000000031ffffffffffffffffffffffffffffffffffffff"))), ].into_iter().collect(), )); config.data.push(AccountData::new( address!("3200000000000000000000000000000000000001"), U256::ZERO, - Bytes::from_static(&hex!("6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033")), + Bytes::from_static(&hex!("608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056")), 0, HashMap::new() )); @@ -492,19 +600,30 @@ fn config_push_contracts(config: &mut EvmConfig) { config.data.push(AccountData::new( Bridge::address(), U256::from_str("0x115EEC47F6CF7E35000000").unwrap(), - Bytes::from_static(&hex!("6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033")), + Bytes::from_static(&hex!("60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564")), 0, [ - (U256::from_be_slice(&hex!("360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc")), U256::from_be_slice(&hex!("3200000000000000000000000000000000000002"))), - (U256::from_be_slice(&hex!("9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300")), U256::from_be_slice(&hex!("f39fd6e51aad88f6f4ce6ab8827279cfffb92266"))), + (U256::from_be_slice(&hex!("360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc")), U256::from_be_slice(&hex!("0000000000000000000000003200000000000000000000000000000000000002"))), + (U256::from_be_slice(&hex!("9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300")), U256::from_be_slice(&hex!("000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"))), + (U256::from_be_slice(&hex!("b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103")), U256::from_be_slice(&hex!("00000000000000000000000031ffffffffffffffffffffffffffffffffffffff"))) ].into_iter().collect(), )); config.data.push(AccountData::new( address!("3200000000000000000000000000000000000002"), U256::ZERO, - Bytes::from_static(&hex!("6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033")), + Bytes::from_static(&hex!("6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56")), 0, HashMap::new() )); + + config.data.push(AccountData::new( + address!("31ffffffffffffffffffffffffffffffffffffff"), + U256::ZERO, + Bytes::from_static(&hex!("60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056")), + 0, + [ + (U256::from_be_slice(&hex!("0000000000000000000000000000000000000000000000000000000000000000")), U256::from_be_slice(&hex!("000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"))) + ].into_iter().collect(), + )); } diff --git a/resources/genesis/bitcoin-regtest/evm.json b/resources/genesis/bitcoin-regtest/evm.json index 5a9c5f6a7..9912585bd 100644 --- a/resources/genesis/bitcoin-regtest/evm.json +++ b/resources/genesis/bitcoin-regtest/evm.json @@ -1,130 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x66f68692c03eB9C0656D676f2F4bD13eba40D1B7", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0xaafB7442f7F00B64057C2e9EaE2815bb63Ee0EcE", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x9fCDf8f60d3009656E50Bf805Cd53C7335b284Fb", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0xe756fdf89367EF428b48BCa2d272Ec8EcEC053fD", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3AEEb871F83C85E68fFD1868bef3425eD6649D39", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0xd44821f906E3909b8AE944F7060551c33b922cc9", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x0f820f428AE436C1000b27577bF5bbf09BfeC8f2", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0xC2F8Eed77da1583f7bae0a3125Dc7BC426002dDE", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, diff --git a/resources/genesis/mock-dockerized/evm.json b/resources/genesis/mock-dockerized/evm.json index addf4c384..9912585bd 100644 --- a/resources/genesis/mock-dockerized/evm.json +++ b/resources/genesis/mock-dockerized/evm.json @@ -1,53 +1,142 @@ { "data": [ { - "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "balance": "0xffffffffffffffff", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "balance": "0xffffffffffffffff", + "address": "0x3100000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } + }, + { + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } + }, + { + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } + }, + { + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } + }, + { + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } + }, + { + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } + }, + { + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" + }, + { + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" + }, + { + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3200000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0xcf49fda3be353c69b41ed96333cd24302da4556f", - "balance": "0xffffffffffffffff", + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0x0161e041aad467a890839d5b08b138c1e6373072", - "balance": "0x123450000000000000000", + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0x87da6a8c6e9eff15d703fc2773e32f6af8dbe301", - "balance": "0x123450000000000000000", + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0xb97de4b8c857e4f6bc354f226dc3249aaee49209", - "balance": "0x123450000000000000000", + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0xc5065c9eeebe6df2c2284d046bfc906501846c51", - "balance": "0x123450000000000000000", + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0x0000000000000000000000000000000000000314", - "balance": "0x00", - "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a223e05d1461006a578063abd1a0cf1461008d578063abfced1d146100d4578063e05c914a14610110578063e6768b451461014c575b610000565b346100005761007761019d565b6040518082815260200191505060405180910390f35b34610000576100be600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506101a3565b6040518082815260200191505060405180910390f35b346100005761010e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101ed565b005b346100005761014a600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610236565b005b346100005761017960048080359060200190919080359060200190919080359060200190919050506103c4565b60405180848152602001838152602001828152602001935050505060405180910390f35b60005481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b7f6031a8d62d7c95988fa262657cd92107d90ed96e08d8f867d32f26edfe85502260405180905060405180910390a17f47e2689743f14e97f7dcfa5eec10ba1dff02f83b3d1d4b9c07b206cbbda66450826040518082815260200191505060405180910390a1817fa48a6b249a5084126c3da369fbc9b16827ead8cb5cdc094b717d3f1dcd995e2960405180905060405180910390a27f7890603b316f3509577afd111710f9ebeefa15e12f72347d9dffd0d65ae3bade81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff167f7efef9ea3f60ddc038e50cccec621f86a0195894dc0520482abf8b5c6b659e4160405180905060405180910390a28181604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a05b5050565b6000600060008585859250925092505b935093509390505600a165627a7a72305820aaf842d0d0c35c45622c5263cbb54813d2974d3999c8c38551d7c613ea2bc1170029", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1234", - "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9": "0x01" - } + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0000000000000000000000000000000000000315", - "balance": "0x9999999999999999999999999999999", - "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ef2769ca1461003e575b610000565b3461000057610078600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061007a565b005b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f1935050505015610106578173ffffffffffffffffffffffffffffffffffffffff167f30a3c50752f2552dcc2b93f5b96866280816a986c0c0408cb6778b9fa198288f826040518082815260200191505060405180910390a25b5b50505600a165627a7a72305820637991fabcc8abad4294bf2bb615db78fbec4edff1635a2647d3894e2daf6a610029" + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, @@ -55,15 +144,15 @@ "spec": { "0": "SHANGHAI" }, - "coinbase": "0x0000000000000000000000000000000000000000", + "coinbase": "0x3100000000000000000000000000000000000005", "starting_base_fee": 1000000000, - "block_gas_limit": 3141592, + "block_gas_limit": 30000000, "base_fee_params": { "max_change_denominator": 8, "elasticity_multiplier": 2 }, - "difficulty": 131072, - "extra_data": "0x0000000000000000000000000000000000000000000000000000000000000000658bdf435d810c91414ec09147daa6db624063790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "timestamp": 4660, + "difficulty": 0, + "extra_data": "0x", + "timestamp": 0, "nonce": 0 } \ No newline at end of file diff --git a/resources/genesis/mock/evm.json b/resources/genesis/mock/evm.json index 5a9c5f6a7..9912585bd 100644 --- a/resources/genesis/mock/evm.json +++ b/resources/genesis/mock/evm.json @@ -1,130 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x66f68692c03eB9C0656D676f2F4bD13eba40D1B7", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0xaafB7442f7F00B64057C2e9EaE2815bb63Ee0EcE", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x9fCDf8f60d3009656E50Bf805Cd53C7335b284Fb", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0xe756fdf89367EF428b48BCa2d272Ec8EcEC053fD", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3AEEb871F83C85E68fFD1868bef3425eD6649D39", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0xd44821f906E3909b8AE944F7060551c33b922cc9", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x0f820f428AE436C1000b27577bF5bbf09BfeC8f2", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0xC2F8Eed77da1583f7bae0a3125Dc7BC426002dDE", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, diff --git a/resources/test-data/demo-tests/bitcoin-regtest/evm.json b/resources/test-data/demo-tests/bitcoin-regtest/evm.json index 3c1bbe5a1..9912585bd 100644 --- a/resources/test-data/demo-tests/bitcoin-regtest/evm.json +++ b/resources/test-data/demo-tests/bitcoin-regtest/evm.json @@ -1,90 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "balance": "0xffffffffffffffff", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, @@ -92,7 +144,7 @@ "spec": { "0": "SHANGHAI" }, - "coinbase": "0x0000000000000000000000000000000000000000", + "coinbase": "0x3100000000000000000000000000000000000005", "starting_base_fee": 1000000000, "block_gas_limit": 30000000, "base_fee_params": { diff --git a/resources/test-data/demo-tests/mock/evm.json b/resources/test-data/demo-tests/mock/evm.json index 223aa82a7..9912585bd 100644 --- a/resources/test-data/demo-tests/mock/evm.json +++ b/resources/test-data/demo-tests/mock/evm.json @@ -1,135 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { - "address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x66f68692c03eB9C0656D676f2F4bD13eba40D1B7", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0xaafB7442f7F00B64057C2e9EaE2815bb63Ee0EcE", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x9fCDf8f60d3009656E50Bf805Cd53C7335b284Fb", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0xe756fdf89367EF428b48BCa2d272Ec8EcEC053fD", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3AEEb871F83C85E68fFD1868bef3425eD6649D39", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0xd44821f906E3909b8AE944F7060551c33b922cc9", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x0f820f428AE436C1000b27577bF5bbf09BfeC8f2", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0xC2F8Eed77da1583f7bae0a3125Dc7BC426002dDE", - "balance": "0xffffffffffffffffffffffffffffff", - "code": "0x" + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" }, { - "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, @@ -137,7 +144,7 @@ "spec": { "0": "SHANGHAI" }, - "coinbase": "0x0000000000000000000000000000000000000000", + "coinbase": "0x3100000000000000000000000000000000000005", "starting_base_fee": 1000000000, "block_gas_limit": 30000000, "base_fee_params": { diff --git a/resources/test-data/integration-tests-low-block-gas-limit/evm.json b/resources/test-data/integration-tests-low-block-gas-limit/evm.json index c390b0249..f0301f202 100644 --- a/resources/test-data/integration-tests-low-block-gas-limit/evm.json +++ b/resources/test-data/integration-tests-low-block-gas-limit/evm.json @@ -1,90 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "balance": "0xffffffffffffffffffffff", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, @@ -92,15 +144,15 @@ "spec": { "0": "SHANGHAI" }, - "coinbase": "0x0000000000000000000000000000000000000000", + "coinbase": "0x3100000000000000000000000000000000000005", "starting_base_fee": 1000000000, "block_gas_limit": 1500000, "base_fee_params": { "max_change_denominator": 8, "elasticity_multiplier": 2 }, - "timestamp": 0, "difficulty": 0, "extra_data": "0x", + "timestamp": 0, "nonce": 0 } \ No newline at end of file diff --git a/resources/test-data/integration-tests-low-max-l2-blocks-per-l1/evm.json b/resources/test-data/integration-tests-low-max-l2-blocks-per-l1/evm.json index 3c1bbe5a1..9912585bd 100644 --- a/resources/test-data/integration-tests-low-max-l2-blocks-per-l1/evm.json +++ b/resources/test-data/integration-tests-low-max-l2-blocks-per-l1/evm.json @@ -1,90 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "balance": "0xffffffffffffffff", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, @@ -92,7 +144,7 @@ "spec": { "0": "SHANGHAI" }, - "coinbase": "0x0000000000000000000000000000000000000000", + "coinbase": "0x3100000000000000000000000000000000000005", "starting_base_fee": 1000000000, "block_gas_limit": 30000000, "base_fee_params": { diff --git a/resources/test-data/integration-tests/evm.json b/resources/test-data/integration-tests/evm.json index c5fcb6135..9912585bd 100644 --- a/resources/test-data/integration-tests/evm.json +++ b/resources/test-data/integration-tests/evm.json @@ -1,90 +1,142 @@ { "data": [ { - "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "balance": "0xffffffffffffffffffffff", + "address": "0x0f820f428ae436c1000b27577bf5bbf09bfec8f2", + "balance": "0xffffffffffffffffffffffffffffff", "code": "0x" }, { "address": "0x3100000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000001", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000001", - "balance": "0x00", - "code": "0x6080604052600436106101145760003560e01c8063715018a6116100a0578063d269a03e11610064578063d269a03e14610332578063d761753e14610352578063e30c39781461037a578063ee82ac5e1461038f578063f2fde38b146103bc57600080fd5b8063715018a61461027057806379ba5097146102855780638da5cb5b1461029a578063a91d8b3d146102c7578063ad3cb1cc146102f457600080fd5b80634f1ef286116100e75780634f1ef286146101c85780634ffd344a146101db57806352d1902d1461020b57806357e871e71461022057806361b207e21461023657600080fd5b80630466efc4146101195780630e27bc11146101595780631f5783331461017b57806334cdf78d1461019b575b600080fd5b34801561012557600080fd5b50610146610134366004610d50565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b34801561016557600080fd5b50610179610174366004610d69565b6103dc565b005b34801561018757600080fd5b50610179610196366004610d50565b610505565b3480156101a757600080fd5b506101466101b6366004610d50565b60016020526000908152604090205481565b6101796101d6366004610dbd565b6105b3565b3480156101e757600080fd5b506101fb6101f6366004610ec8565b6105d2565b6040519015158152602001610150565b34801561021757600080fd5b506101466105f8565b34801561022c57600080fd5b5061014660005481565b34801561024257600080fd5b50610146610251366004610d50565b6000908152600160209081526040808320548352600290915290205490565b34801561027c57600080fd5b50610179610615565b34801561029157600080fd5b50610179610629565b3480156102a657600080fd5b506102af610671565b6040516001600160a01b039091168152602001610150565b3480156102d357600080fd5b506101466102e2366004610d50565b60026020526000908152604090205481565b34801561030057600080fd5b50610325604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101509190610f47565b34801561033e57600080fd5b506101fb61034d366004610ec8565b6106a6565b34801561035e57600080fd5b506102af73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561038657600080fd5b506102af6106b5565b34801561039b57600080fd5b506101466103aa366004610d50565b60009081526001602052604090205490565b3480156103c857600080fd5b506101796103d7366004610f7a565b6106de565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104445760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b600080549081900361048a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b604482015260640161043b565b60008181526001602081905260409091208490556104a9908290610f95565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146105685760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c657200604482015260640161043b565b600054156105ae5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161043b565b600055565b6105bb610763565b6105c482610808565b6105ce8282610810565b5050565b6000858152600160205260408120546105ee90868686866108d2565b9695505050505050565b6000610602610930565b5060008051602061100e83398151915290565b61061d610979565b61062760006109ab565b565b33806106336106b5565b6001600160a01b0316146106655760405163118cdaa760e01b81526001600160a01b038216600482015260240161043b565b61066e816109ab565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006105ee86868686866108d2565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610696565b6106e6610979565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561072a610671565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107de60008051602061100e833981519152546001600160a01b031690565b6001600160a01b031614155b156106275760405163703e46dd60e11b815260040160405180910390fd5b61066e610979565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561086a575060408051601f3d908101601f1916820190925261086791810190610fb6565b60015b61089257604051634c9c8ce360e01b81526001600160a01b038316600482015260240161043b565b60008051602061100e83398151915281146108c357604051632a87526960e21b81526004810182905260240161043b565b6108cd83836109e3565b505050565b6000858152600260209081526040808320548151601f8701849004840281018401909252858252916109259188918491908990899081908401838280828437600092019190915250899250610a39915050565b979650505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106275760405163703e46dd60e11b815260040160405180910390fd5b33610982610671565b6001600160a01b0316146106275760405163118cdaa760e01b815233600482015260240161043b565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105ce82610a77565b6109ec82610ae8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610a31576108cd8282610b4d565b6105ce610bc5565b60008385148015610a48575081155b8015610a5357508251155b15610a6057506001610a6f565b610a6c85848685610be4565b90505b949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b600003610b1e57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161043b565b60008051602061100e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610b6a9190610fcf565b600060405180830381855af49150503d8060008114610ba5576040519150601f19603f3d011682016040523d82523d6000602084013e610baa565b606091505b5091509150610bba858383610c8e565b925050505b92915050565b34156106275760405163b398979f60e01b815260040160405180910390fd5b600060208451610bf49190610feb565b15610c0157506000610a6f565b8351600003610c1257506000610a6f565b818560005b8651811015610c8157610c2b600284610feb565b600103610c4f57610c48610c428883016020015190565b83610ced565b9150610c68565b610c6582610c608984016020015190565b610ced565b91505b60019290921c91610c7a602082610f95565b9050610c17565b5090931495945050505050565b606082610ca357610c9e82610cf9565b610ce6565b8151158015610cba57506001600160a01b0384163b155b15610ce357604051639996b31560e01b81526001600160a01b038516600482015260240161043b565b50805b9392505050565b6000610ce68383610d22565b805115610d095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b600060208284031215610d6257600080fd5b5035919050565b60008060408385031215610d7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114610da257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610dd057600080fd5b610dd983610d8b565b9150602083013567ffffffffffffffff80821115610df657600080fd5b818501915085601f830112610e0a57600080fd5b813581811115610e1c57610e1c610da7565b604051601f8201601f19908116603f01168101908382118183101715610e4457610e44610da7565b81604052828152886020848701011115610e5d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f840112610e9157600080fd5b50813567ffffffffffffffff811115610ea957600080fd5b602083019150836020828501011115610ec157600080fd5b9250929050565b600080600080600060808688031215610ee057600080fd5b8535945060208601359350604086013567ffffffffffffffff811115610f0557600080fd5b610f1188828901610e7f565b96999598509660600135949350505050565b60005b83811015610f3e578181015183820152602001610f26565b50506000910152565b6020815260008251806020840152610f66816040850160208701610f23565b601f01601f19169190910160400192915050565b600060208284031215610f8c57600080fd5b610ce682610d8b565b80820180821115610bbf57634e487b7160e01b600052601160045260246000fd5b600060208284031215610fc857600080fd5b5051919050565b60008251610fe1818460208701610f23565b9190910192915050565b60008261100857634e487b7160e01b600052601260045260246000fd5b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208a59ff38af63c8a0ca256bb007b725d98ab1c290599e8cdf87bcbf2a98add93164736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000002", + "balance": "0x115eec47f6cf7e35000000", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000002", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000002", - "balance": "0x115EEC47F6CF7E35000000", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000002", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000003", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000002", - "balance": "0x00", - "code": "0x6080604052600436106101665760003560e01c80638da5cb5b116100d1578063d1c444561161008a578063e30c397811610064578063e30c3978146103ff578063e613ae0014610414578063ec6925a71461042f578063f2fde38b1461044a57600080fd5b8063d1c4445614610397578063d761753e146103b7578063dd95c7c6146103df57600080fd5b80638da5cb5b146102e95780638e19899e146102fe5780639f963f5914610311578063ad3cb1cc14610331578063b3ab15fb14610362578063b93780f61461038257600080fd5b806359c19cee1161012357806359c19cee146102455780635e0e5b3e14610258578063715018a614610288578063781952a81461029d57806379ba5097146102b257806387f8bf56146102c757600080fd5b8063158ef93e1461016b578063412601371461019a57806343e31687146101bc5780634f1ef286146101e057806352d1902d146101f3578063570ca73514610208575b600080fd5b34801561017757600080fd5b506000546101859060ff1681565b60405190151581526020015b60405180910390f35b3480156101a657600080fd5b506101ba6101b53660046122e2565b61046a565b005b3480156101c857600080fd5b506101d260015481565b604051908152602001610191565b6101ba6101ee366004612388565b6106ae565b3480156101ff57600080fd5b506101d26106cd565b34801561021457600080fd5b5060005461022d9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101ba61025336600461244a565b6106ea565b34801561026457600080fd5b506101856102733660046124bf565b60046020526000908152604090205460ff1681565b34801561029457600080fd5b506101ba6107fa565b3480156102a957600080fd5b506005546101d2565b3480156102be57600080fd5b506101ba61080e565b3480156102d357600080fd5b506102dc610856565b6040516101919190612528565b3480156102f557600080fd5b5061022d6108e4565b6101ba61030c3660046124bf565b610919565b34801561031d57600080fd5b506101ba61032c3660046122e2565b6109e2565b34801561033d57600080fd5b506102dc604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561036e57600080fd5b506101ba61037d36600461253b565b610ae4565b34801561038e57600080fd5b506102dc610b55565b3480156103a357600080fd5b506101d26103b23660046124bf565b610b62565b3480156103c357600080fd5b5061022d73deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b3480156103eb57600080fd5b506101ba6103fa366004612556565b610b83565b34801561040b57600080fd5b5061022d61132d565b34801561042057600080fd5b5061022d6001603160981b0181565b34801561043b57600080fd5b506101d2662386f26fc1000081565b34801561045657600080fd5b506101ba61046536600461253b565b611356565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104d25760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff16156105255760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016104c9565b806000036105755760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b60008490036105c65760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6000805460ff1916600117905560026105e085878361261c565b5060036105ee83858361261c565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c34858585858560405161069f959493929190612706565b60405180910390a15050505050565b6106b66113db565b6106bf82611480565b6106c98282611488565b5050565b60006106d761154a565b5060008051602061298b83398151915290565b6106fb81662386f26fc10000612756565b34146107435760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b60055460005b828110156107f45760058484838181106107655761076561276d565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106107ba576107ba61276d565b9050602002013582846107cd9190612783565b604080519283526020830191909152429082015260600160405180910390a1600101610749565b50505050565b610802611593565b61080c60006115c5565b565b338061081861132d565b6001600160a01b03161461084a5760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c9565b610853816115c5565b50565b6003805461086390612592565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90612592565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146109695760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016104c9565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b6109ea611593565b80600003610a3a5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f74206265203000000000000060448201526064016104c9565b6000849003610a8b5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d707479000060448201526064016104c9565b6002610a9885878361261c565b506003610aa683858361261c565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061069f9087908790879087908790612706565b610aec611593565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461086390612592565b60058181548110610b7257600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610be25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016104c9565b6000610c40610bf46020840184612796565b610c0460408501602086016127c0565b610c1160408601866127ea565b610c1e60608801886127ea565b610c2b60808a018a6127ea565b610c3b60c08c0160a08d01612796565b6115fd565b60008181526004602052604090205490915060ff1615610c985760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b60448201526064016104c9565b60008181526004602052604090819020805460ff19166001179055610cfd90610cc3908401846127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061164592505050565b610d495760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d617474656400000060448201526064016104c9565b610d93610d5960608401846127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e992505050565b610ddf5760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d6174746564000060448201526064016104c9565b6000610e2b610df160408501856127ea565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061178092505050565b91505080600114610e775760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b60448201526064016104c9565b610ec3610e8760808501856127ea565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250611797915050565b610f195760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b60648201526084016104c9565b6001603160981b01634ffd344a60e085013584610f3960c08801886127ea565b8861010001356040518663ffffffff1660e01b8152600401610f5f959493929190612831565b602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190612863565b610fec5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b000000000060448201526064016104c9565b6000611038610ffe60808601866127ea565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061180d915050565b9050600061104582611780565b91505060015460026110579190612783565b811461109d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b60448201526064016104c9565b60006110ab836001546118f0565b90506000600280546110bc90612592565b9150600090506110cd838284611aba565b905061116381600280546110e090612592565b80601f016020809104026020016040519081016040528092919081815260200182805461110c90612592565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050611b7e565b6111a85760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b60448201526064016104c9565b60006111d76111b8846014612783565b6111c3856014612783565b86516111cf9190612885565b869190611aba565b90506111ea81600380546110e090612592565b61122e5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b60448201526064016104c9565b600061123985611c40565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d80600081146112d8576040519150601f19603f3d011682016040523d82523d6000602084013e6112dd565b606091505b50509050806113205760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016104c9565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610909565b61135e611593565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556113a26108e4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661145660008051602061298b833981519152546001600160a01b031690565b6001600160a01b031614155b1561080c5760405163703e46dd60e11b815260040160405180910390fd5b610853611593565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114e2575060408051601f3d908101601f191682019092526114df91810190612898565b60015b61150a57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c9565b60008051602061298b833981519152811461153b57604051632a87526960e21b8152600481018290526024016104c9565b6115458383611c76565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080c5760405163703e46dd60e11b815260040160405180910390fd5b3361159c6108e4565b6001600160a01b03161461080c5760405163118cdaa760e01b81523360048201526024016104c9565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556106c982611ccc565b60006116378a8a8a8a8a8a8a8a8a604051602001611623999897969594939291906128b1565b604051602081830303815290604052611d3d565b9a9950505050505050505050565b600080600061165384611780565b9092509050801580611666575060001982145b15611675575060009392505050565b6000611682836001612783565b905060005b828110156116dc57855182106116a35750600095945050505050565b60006116af8784611d64565b905060001981036116c7575060009695505050505050565b6116d18184612783565b925050600101611687565b5093519093149392505050565b60008060006116f784611780565b909250905080158061170a575060001982145b15611719575060009392505050565b6000611726836001612783565b905060005b828110156116dc57855182106117475750600095945050505050565b60006117538784611dad565b9050600019810361176b575060009695505050505050565b6117758184612783565b92505060010161172b565b60008061178e836000611e11565b91509150915091565b6000816000036117a957506000611807565b6000805b8381101561180057845182106117c857600092505050611807565b60006117d48684611fb5565b905060001981036117eb5760009350505050611807565b6117f58184612783565b9250506001016117ad565b5083511490505b92915050565b606060008060005b84811015611886576118278683611fb5565b925060001983036118725760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b61187c8383612783565b9150600101611815565b506118918582611fb5565b915060001982036118dc5760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b60448201526064016104c9565b6118e7858284611aba565b95945050505050565b60606000806118fe85611780565b90925090506001820161195e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016104c9565b8084106119a05760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016104c9565b6000806119ae846001612783565b905060005b86811015611a39576119c58883611e11565b909550925060018301611a0f5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b82611a1b866001612783565b611a259190612783565b611a2f9083612783565b91506001016119b3565b50611a448782611e11565b909450915060018201611a8e5760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b60448201526064016104c9565b611aaf81611a9c8685612783565b611aa7906001612783565b899190611aba565b979650505050505050565b606081600003611ad95750604080516020810190915260008152611b77565b6000611ae58385612783565b90508381118015611af7575080855110155b611b395760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b60448201526064016104c9565b604051915082604083010160405282825283850182038460208701018481015b80821015611b7257815183830152602082019150611b59565b505050505b9392505050565b60008151835114611bc85760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b60448201526064016104c9565b825160005b81811015611c3557838181518110611be757611be761276d565b602001015160f81c60f81b6001600160f81b031916858281518110611c0e57611c0e61276d565b01602001516001600160f81b03191614611c2d57600092505050611807565b600101611bcd565b506001949350505050565b60008060028054611c5090612592565b915060009050611c6284836014611aba565b611c6b90612919565b60601c949350505050565b611c7f82612053565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cc45761154582826120b8565b6106c9612125565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611d738585612144565b909250905060018201611d8c5760001992505050611807565b80611d98836025612783565b611da29190612783565b6118e7906004612783565b6000611dba826009612783565b83511015611dcb5750600019611807565b600080611de285611ddd866008612783565b611e11565b909250905060018201611dfb5760001992505050611807565b80611e07836009612783565b6118e79190612783565b6000806000611e208585612186565b90508060ff16600003611e55576000858581518110611e4157611e4161276d565b016020015190935060f81c9150611fae9050565b83611e61826001612955565b60ff16611e6e9190612783565b85511015611e855760001960009250925050611fae565b60008160ff16600203611ec957611ebe611eaa611ea3876001612783565b889061220c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611fa4565b8160ff16600403611f1857611f0b611ee5611ea3876001612783565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611fa4565b8160ff16600803611fa457611f97611f34611ea3876001612783565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611fc48585611e11565b909250905060018201611fdd5760001992505050611807565b600080611feb846001612783565b905060005b83811015612048576120028883611e11565b90955092506001830161201e5760001995505050505050611807565b8261202a866001612783565b6120349190612783565b61203e9083612783565b9150600101611ff0565b509695505050505050565b806001600160a01b03163b60000361208957604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c9565b60008051602061298b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516120d5919061296e565b600060405180830381855af49150503d8060008114612110576040519150601f19603f3d011682016040523d82523d6000602084013e612115565b606091505b50915091506118e785838361221b565b341561080c5760405163b398979f60e01b815260040160405180910390fd5b600080612152836025612783565b84511015612167575060001990506000611fae565b60008061217986611ddd876024612783565b9097909650945050505050565b600082828151811061219a5761219a61276d565b016020015160f81c60ff036121b157506008611807565b8282815181106121c3576121c361276d565b016020015160f81c60fe036121da57506004611807565b8282815181106121ec576121ec61276d565b016020015160f81c60fd0361220357506002611807565b50600092915050565b6000611b778383016020015190565b6060826122305761222b82612277565b611b77565b815115801561224757506001600160a01b0384163b155b1561227057604051639996b31560e01b81526001600160a01b03851660048201526024016104c9565b5080611b77565b8051156122875780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126122b257600080fd5b50813567ffffffffffffffff8111156122ca57600080fd5b602083019150836020828501011115611fae57600080fd5b6000806000806000606086880312156122fa57600080fd5b853567ffffffffffffffff8082111561231257600080fd5b61231e89838a016122a0565b9097509550602088013591508082111561233757600080fd5b50612344888289016122a0565b96999598509660400135949350505050565b80356001600160a01b038116811461236d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561239b57600080fd5b6123a483612356565b9150602083013567ffffffffffffffff808211156123c157600080fd5b818501915085601f8301126123d557600080fd5b8135818111156123e7576123e7612372565b604051601f8201601f19908116603f0116810190838211818310171561240f5761240f612372565b8160405282815288602084870101111561242857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208260051b85010111156124ad57600080fd5b60209290920196919550909350505050565b6000602082840312156124d157600080fd5b5035919050565b60005b838110156124f35781810151838201526020016124db565b50506000910152565b600081518084526125148160208601602086016124d8565b601f01601f19169290920160200192915050565b602081526000611b7760208301846124fc565b60006020828403121561254d57600080fd5b611b7782612356565b60006020828403121561256857600080fd5b813567ffffffffffffffff81111561257f57600080fd5b82016101208185031215611b7757600080fd5b600181811c908216806125a657607f821691505b6020821081036125c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611545576000816000526020600020601f850160051c810160208610156125f55750805b601f850160051c820191505b8181101561261457828155600101612601565b505050505050565b67ffffffffffffffff83111561263457612634612372565b612648836126428354612592565b836125cc565b6000601f84116001811461267c57600085156126645750838201355b600019600387901b1c1916600186901b1783556126d6565b600083815260209020601f19861690835b828110156126ad578685013582556020948501946001909201910161268d565b50868210156126ca5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061271a6060830187896126dd565b828103602084015261272d8186886126dd565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761180757611807612740565b634e487b7160e01b600052603260045260246000fd5b8082018082111561180757611807612740565b6000602082840312156127a857600080fd5b81356001600160e01b031981168114611b7757600080fd5b6000602082840312156127d257600080fd5b81356001600160f01b031981168114611b7757600080fd5b6000808335601e1984360301811261280157600080fd5b83018035915067ffffffffffffffff82111561281c57600080fd5b602001915036819003821315611fae57600080fd5b8581528460208201526080604082015260006128516080830185876126dd565b90508260608301529695505050505050565b60006020828403121561287557600080fd5b81518015158114611b7757600080fd5b8181038181111561180757611807612740565b6000602082840312156128aa57600080fd5b5051919050565b6001600160e01b03198a811682526001600160f01b03198a166004830152600090888a60068501378883016006810160008152888a823750878101905060068101600081528688823750931692909301600681019290925250600a0198975050505050505050565b805160208201516bffffffffffffffffffffffff19808216929190601483101561294d5780818460140360031b1b83161693505b505050919050565b60ff818116838216019081111561180757611807612740565b600082516129808184602087016124d8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220182f4d2f08ca4c4ec067af41dedeedc7f5d8b29e5b5a7e0810b80d2efbad778064736f6c63430008190033" + "address": "0x3100000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000004", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3100000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000003", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3100000000000000000000000000000000000005", + "balance": "0x0", + "code": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083860279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e8565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e9190610804565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff81111561073257600080fd5b8301601f8101851361074357600080fd5b803567ffffffffffffffff81111561075d5761075d6106e4565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561078c5761078c6106e4565b6040528181528282016020018710156107a457600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107df5781810151838201526020016107c7565b50506000910152565b600082516107fa8184602087016107c4565b9190910192915050565b60208152600082518060208401526108238160408501602087016107c4565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000003200000000000000000000000000000000000005", + "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x00000000000000000000000031ffffffffffffffffffffffffffffffffffffff" + } }, { - "address": "0x3200000000000000000000000000000000000003", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220f529f481ea0ca9aec89f444468cee9d6292c40f4175d2b22aad2d88ce660807a64736f6c63430008190033" + "address": "0x31ffffffffffffffffffffffffffffffffffffff", + "balance": "0x0", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + } }, { - "address": "0x3100000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000004", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000001", + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806357e871e71161007157806357e871e71461014c57806361b207e214610155578063a91d8b3d14610182578063d269a03e146101a2578063d761753e146101b5578063ee82ac5e146101e857600080fd5b80630466efc4146100ae5780630e27bc11146100e15780631f578333146100f657806334cdf78d146101095780634ffd344a14610129575b600080fd5b6100ce6100bc366004610599565b60009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100f46100ef3660046105b2565b610208565b005b6100f4610104366004610599565b610331565b6100ce610117366004610599565b60016020526000908152604090205481565b61013c61013736600461061d565b6103df565b60405190151581526020016100d8565b6100ce60005481565b6100ce610163366004610599565b6000908152600160209081526040808320548352600290915290205490565b6100ce610190366004610599565b60026020526000908152604090205481565b61013c6101b036600461061d565b610405565b6101d073deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b6040516001600160a01b0390911681526020016100d8565b6100ce6101f6366004610599565b60009081526001602052604090205490565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146102705760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60008054908190036102b65760405162461bcd60e51b815260206004820152600f60248201526e139bdd081a5b9a5d1a585b1a5e9959608a1b6044820152606401610267565b60008181526001602081905260409091208490556102d5908290610678565b6000908155838152600260209081526040808320859055915482519081529081018590529081018390527f32eff959e2e8d1609edc4b39ccf75900aa6c1da5719f8432752963fdf008234f9060600160405180910390a1505050565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146103945760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c6572006044820152606401610267565b600054156103da5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610267565b600055565b6000858152600160205260408120546103fb9086868686610410565b9695505050505050565b60006103fb86868686865b6000858152600260209081526040808320548151601f870184900484028101840190925285825291610463918891849190899089908190840183828082843760009201919091525089925061046e915050565b979650505050505050565b6000838514801561047d575081155b801561048857508251155b15610495575060016104a4565b6104a1858486856104ac565b90505b949350505050565b6000602084516104bc9190610699565b156104c9575060006104a4565b83516000036104da575060006104a4565b818560005b8651811015610549576104f3600284610699565b6001036105175761051061050a8883016020015190565b83610556565b9150610530565b61052d826105288984016020015190565b610556565b91505b60019290921c91610542602082610678565b90506104df565b5090931495945050505050565b6000610562838361056b565b90505b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6000602082840312156105ab57600080fd5b5035919050565b600080604083850312156105c557600080fd5b50508035926020909101359150565b60008083601f8401126105e657600080fd5b50813567ffffffffffffffff8111156105fe57600080fd5b60208301915083602082850101111561061657600080fd5b9250929050565b60008060008060006080868803121561063557600080fd5b8535945060208601359350604086013567ffffffffffffffff81111561065a57600080fd5b610666888289016105d4565b96999598509660600135949350505050565b8082018082111561056557634e487b7160e01b600052601160045260246000fd5b6000826106b657634e487b7160e01b600052601260045260246000fd5b50069056" }, { - "address": "0x3200000000000000000000000000000000000004", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212206da7e31894782b771eec86459db5d984e4640831f5cba90721b3f1ee7455a5c464736f6c63430008190033" + "address": "0x3200000000000000000000000000000000000002", + "balance": "0x0", + "code": "0x6080604052600436106101355760003560e01c80638e19899e116100ab578063d761753e1161006f578063d761753e1461032d578063dd95c7c614610355578063e30c397814610375578063e613ae001461038a578063ec6925a7146103a5578063f2fde38b146103c057600080fd5b80638e19899e146102a55780639f963f59146102b8578063b3ab15fb146102d8578063b93780f6146102f8578063d1c444561461030d57600080fd5b80635e0e5b3e116100fd5780635e0e5b3e146101ff578063715018a61461022f578063781952a81461024457806379ba50971461025957806387f8bf561461026e5780638da5cb5b1461029057600080fd5b8063158ef93e1461013a578063412601371461016957806343e316871461018b578063570ca735146101af57806359c19cee146101ec575b600080fd5b34801561014657600080fd5b506000546101549060ff1681565b60405190151581526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004611e9c565b6103e0565b005b34801561019757600080fd5b506101a160015481565b604051908152602001610160565b3480156101bb57600080fd5b506000546101d49061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610160565b6101896101fa366004611f15565b610624565b34801561020b57600080fd5b5061015461021a366004611f8c565b60046020526000908152604090205460ff1681565b34801561023b57600080fd5b50610189610734565b34801561025057600080fd5b506005546101a1565b34801561026557600080fd5b50610189610748565b34801561027a57600080fd5b50610283610790565b6040516101609190611fa5565b34801561029c57600080fd5b506101d461081e565b6101896102b3366004611f8c565b610853565b3480156102c457600080fd5b506101896102d3366004611e9c565b61091c565b3480156102e457600080fd5b506101896102f3366004611ff3565b610a1e565b34801561030457600080fd5b50610283610a8f565b34801561031957600080fd5b506101a1610328366004611f8c565b610a9c565b34801561033957600080fd5b506101d473deaddeaddeaddeaddeaddeaddeaddeaddeaddead81565b34801561036157600080fd5b5061018961037036600461201c565b610abd565b34801561038157600080fd5b506101d4611267565b34801561039657600080fd5b506101d46001603160981b0181565b3480156103b157600080fd5b506101a1662386f26fc1000081565b3480156103cc57600080fd5b506101896103db366004611ff3565b611290565b3373deaddeaddeaddeaddeaddeaddeaddeaddeaddead146104485760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652073797374656d2063616c6c65720060448201526064015b60405180910390fd5b60005460ff161561049b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a656400604482015260640161043f565b806000036104eb5760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b600084900361053c5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b6000805460ff1916600117905560026105568587836120f7565b5060036105648385836120f7565b50600181905560008054610100600160a81b03191674deaddeaddeaddeaddeaddeaddeaddeaddeaddead001781556040805191825273deaddeaddeaddeaddeaddeaddeaddeaddeaddead60208301527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a17f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c3485858585856040516106159594939291906121e0565b60405180910390a15050505050565b61063581662386f26fc10000612230565b341461067d5760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b60055460005b8281101561072e57600584848381811061069f5761069f612247565b835460018101855560009485526020948590209190940292909201359190920155507fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b8484838181106106f4576106f4612247565b905060200201358284610707919061225d565b604080519283526020830191909152429082015260600160405180910390a1600101610683565b50505050565b61073c611315565b6107466000611347565b565b3380610752611267565b6001600160a01b0316146107845760405163118cdaa760e01b81526001600160a01b038216600482015260240161043f565b61078d81611347565b50565b6003805461079d9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c99061206e565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b505050505081565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b662386f26fc1000034146108a35760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b604482015260640161043f565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081018290556040805183815260208101839052428183015290517fc96d1af655ee5eb07357bb1097f3b2f247ea0c4e3cf5f9a5c8449c4f8b64fb6b9181900360600190a15050565b610924611315565b806000036109745760405162461bcd60e51b815260206004820152601a60248201527f566572696669657220636f756e742063616e6e6f742062652030000000000000604482015260640161043f565b60008490036109c55760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974207363726970742063616e6e6f7420626520656d7074790000604482015260640161043f565b60026109d28587836120f7565b5060036109e08385836120f7565b5060018190556040517f89ed79f38bee253aee2fb8d52df0d71b4aaf0843800d093a499a55eeca455c349061061590879087908790879087906121e0565b610a26611315565b60008054610100600160a81b0319166101006001600160a01b038481168281029390931793849055604080519290940416815260208101919091527ffbe5b6cbafb274f445d7fed869dc77a838d8243a22c460de156560e8857cad03910160405180910390a150565b6002805461079d9061206e565b60058181548110610aac57600080fd5b600091825260209091200154905081565b60005461010090046001600160a01b03163314610b1c5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161043f565b6000610b7a610b2e6020840184612270565b610b3e604085016020860161229a565b610b4b60408601866122c4565b610b5860608801886122c4565b610b6560808a018a6122c4565b610b7560c08c0160a08d01612270565b611383565b60008181526004602052604090205490915060ff1615610bd25760405162461bcd60e51b81526020600482015260136024820152721ddd1e125908185b1c9958591e481cdc195b9d606a1b604482015260640161043f565b60008181526004602052604090819020805460ff19166001179055610c3790610bfd908401846122c4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113cb92505050565b610c835760405162461bcd60e51b815260206004820152601d60248201527f56696e206973206e6f742070726f7065726c7920666f726d6174746564000000604482015260640161043f565b610ccd610c9360608401846122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061146f92505050565b610d195760405162461bcd60e51b815260206004820152601e60248201527f566f7574206973206e6f742070726f7065726c7920666f726d61747465640000604482015260640161043f565b6000610d65610d2b60408501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150692505050565b91505080600114610db15760405162461bcd60e51b815260206004820152601660248201527513db9b1e481bdb99481a5b9c1d5d08185b1b1bddd95960521b604482015260640161043f565b610dfd610dc160808501856122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525085925061151d915050565b610e535760405162461bcd60e51b815260206004820152602160248201527f5769746e657373206973206e6f742070726f7065726c7920666f726d617474656044820152601960fa1b606482015260840161043f565b6001603160981b01634ffd344a60e085013584610e7360c08801886122c4565b8861010001356040518663ffffffff1660e01b8152600401610e9995949392919061230b565b602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda919061233d565b610f265760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e206973206e6f7420696e20626c6f636b0000000000604482015260640161043f565b6000610f72610f3860808601866122c4565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611593915050565b90506000610f7f82611506565b9150506001546002610f91919061225d565b8114610fd75760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964207769746e657373206974656d7360581b604482015260640161043f565b6000610fe583600154611676565b9050600060028054610ff69061206e565b915060009050611007838284611840565b905061109d816002805461101a9061206e565b80601f01602080910402602001604051908101604052809291908181526020018280546110469061206e565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050611904565b6110e25760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a590819195c1bdcda5d081cd8dc9a5c1d60521b604482015260640161043f565b60006111116110f284601461225d565b6110fd85601461225d565b8651611109919061235f565b869190611840565b9050611124816003805461101a9061206e565b6111685760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840e6c6e4d2e0e840e6eaccccd2f605b1b604482015260640161043f565b6000611173856119c6565b604080518b81526001600160a01b0383166020820152428183015290519192507f182fa52899142d44ff5c45a6354d3b3e868d5b07db6a65580b39bd321bdaf8ac919081900360600190a16000816001600160a01b0316662386f26fc1000060405160006040518083038185875af1925050503d8060008114611212576040519150601f19603f3d011682016040523d82523d6000602084013e611217565b606091505b505090508061125a5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161043f565b5050505050505050505050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610843565b611298611315565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556112dc61081e565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b3361131e61081e565b6001600160a01b0316146107465760405163118cdaa760e01b815233600482015260240161043f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561137f826119fc565b5050565b60006113bd8a8a8a8a8a8a8a8a8a6040516020016113a999989796959493929190612372565b604051602081830303815290604052611a6d565b9a9950505050505050505050565b60008060006113d984611506565b90925090508015806113ec575060001982145b156113fb575060009392505050565b600061140883600161225d565b905060005b8281101561146257855182106114295750600095945050505050565b60006114358784611a94565b9050600019810361144d575060009695505050505050565b611457818461225d565b92505060010161140d565b5093519093149392505050565b600080600061147d84611506565b9092509050801580611490575060001982145b1561149f575060009392505050565b60006114ac83600161225d565b905060005b8281101561146257855182106114cd5750600095945050505050565b60006114d98784611add565b905060001981036114f1575060009695505050505050565b6114fb818461225d565b9250506001016114b1565b600080611514836000611b41565b91509150915091565b60008160000361152f5750600061158d565b6000805b83811015611586578451821061154e5760009250505061158d565b600061155a8684611ce5565b90506000198103611571576000935050505061158d565b61157b818461225d565b925050600101611533565b5083511490505b92915050565b606060008060005b8481101561160c576115ad8683611ce5565b925060001983036115f85760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b611602838361225d565b915060010161159b565b506116178582611ce5565b915060001982036116625760405162461bcd60e51b815260206004820152601560248201527442616420566172496e7420696e207769746e65737360581b604482015260640161043f565b61166d858284611840565b95945050505050565b606060008061168485611506565b9092509050600182016116e45760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b606482015260840161043f565b8084106117265760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b604482015260640161043f565b60008061173484600161225d565b905060005b868110156117bf5761174b8883611b41565b9095509250600183016117955760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b826117a186600161225d565b6117ab919061225d565b6117b5908361225d565b9150600101611739565b506117ca8782611b41565b9094509150600182016118145760405162461bcd60e51b815260206004820152601260248201527142616420566172496e7420696e206974656d60701b604482015260640161043f565b61183581611822868561225d565b61182d90600161225d565b899190611840565b979650505050505050565b60608160000361185f57506040805160208101909152600081526118fd565b600061186b838561225d565b9050838111801561187d575080855110155b6118bf5760405162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015260640161043f565b604051915082604083010160405282825283850182038460208701018481015b808210156118f8578151838301526020820191506118df565b505050505b9392505050565b6000815183511461194e5760405162461bcd60e51b8152602060048201526014602482015273098cadccee8d0e640c8de40dcdee840dac2e8c6d60631b604482015260640161043f565b825160005b818110156119bb5783818151811061196d5761196d612247565b602001015160f81c60f81b6001600160f81b03191685828151811061199457611994612247565b01602001516001600160f81b031916146119b35760009250505061158d565b600101611953565b506001949350505050565b600080600280546119d69061206e565b9150600090506119e884836014611840565b6119f1906123db565b60601c949350505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806000611aa38585611d83565b909250905060018201611abc576000199250505061158d565b80611ac883602561225d565b611ad2919061225d565b61166d90600461225d565b6000611aea82600961225d565b83511015611afb575060001961158d565b600080611b1285611b0d86600861225d565b611b41565b909250905060018201611b2b576000199250505061158d565b80611b3783600961225d565b61166d919061225d565b6000806000611b508585611dc5565b90508060ff16600003611b85576000858581518110611b7157611b71612247565b016020015190935060f81c9150611cde9050565b83611b9182600161242e565b60ff16611b9e919061225d565b85511015611bb55760001960009250925050611cde565b60008160ff16600203611bf957611bee611bda611bd387600161225d565b8890611e4b565b62ffff0060e882901c1660f89190911c1790565b61ffff169050611cd4565b8160ff16600403611c4857611c3b611c15611bd387600161225d565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050611cd4565b8160ff16600803611cd457611cc7611c64611bd387600161225d565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000806000611cf48585611b41565b909250905060018201611d0d576000199250505061158d565b600080611d1b84600161225d565b905060005b83811015611d7857611d328883611b41565b909550925060018301611d4e576000199550505050505061158d565b82611d5a86600161225d565b611d64919061225d565b611d6e908361225d565b9150600101611d20565b509695505050505050565b600080611d9183602561225d565b84511015611da6575060001990506000611cde565b600080611db886611b0d87602461225d565b9097909650945050505050565b6000828281518110611dd957611dd9612247565b016020015160f81c60ff03611df05750600861158d565b828281518110611e0257611e02612247565b016020015160f81c60fe03611e195750600461158d565b828281518110611e2b57611e2b612247565b016020015160f81c60fd03611e425750600261158d565b50600092915050565b60006118fd8383016020015190565b60008083601f840112611e6c57600080fd5b50813567ffffffffffffffff811115611e8457600080fd5b602083019150836020828501011115611cde57600080fd5b600080600080600060608688031215611eb457600080fd5b853567ffffffffffffffff811115611ecb57600080fd5b611ed788828901611e5a565b909650945050602086013567ffffffffffffffff811115611ef757600080fd5b611f0388828901611e5a565b96999598509660400135949350505050565b60008060208385031215611f2857600080fd5b823567ffffffffffffffff811115611f3f57600080fd5b8301601f81018513611f5057600080fd5b803567ffffffffffffffff811115611f6757600080fd5b8560208260051b8401011115611f7c57600080fd5b6020919091019590945092505050565b600060208284031215611f9e57600080fd5b5035919050565b602081526000825180602084015260005b81811015611fd35760208186018101516040868401015201611fb6565b506000604082850101526040601f19601f83011684010191505092915050565b60006020828403121561200557600080fd5b81356001600160a01b03811681146118fd57600080fd5b60006020828403121561202e57600080fd5b813567ffffffffffffffff81111561204557600080fd5b820161012081850312156118fd57600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061208257607f821691505b6020821081036120a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156120f257806000526020600020601f840160051c810160208510156120cf5750805b601f840160051c820191505b818110156120ef57600081556001016120db565b50505b505050565b67ffffffffffffffff83111561210f5761210f612058565b6121238361211d835461206e565b836120a8565b6000601f841160018114612157576000851561213f5750838201355b600019600387901b1c1916600186901b1783556120ef565b600083815260209020601f19861690835b828110156121885786850135825560209485019460019092019101612168565b50868210156121a55760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006121f46060830187896121b7565b82810360208401526122078186886121b7565b9150508260408301529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761158d5761158d61221a565b634e487b7160e01b600052603260045260246000fd5b8082018082111561158d5761158d61221a565b60006020828403121561228257600080fd5b81356001600160e01b0319811681146118fd57600080fd5b6000602082840312156122ac57600080fd5b81356001600160f01b0319811681146118fd57600080fd5b6000808335601e198436030181126122db57600080fd5b83018035915067ffffffffffffffff8211156122f657600080fd5b602001915036819003821315611cde57600080fd5b85815284602082015260806040820152600061232b6080830185876121b7565b90508260608301529695505050505050565b60006020828403121561234f57600080fd5b815180151581146118fd57600080fd5b8181038181111561158d5761158d61221a565b6001600160e01b03198a1681526001600160f01b031989166004820152868860068301376000878201600681016000815287898237506000908701600601908152848682376001600160e01b031993909316929093019182525060040198975050505050505050565b805160208201516bffffffffffffffffffffffff19811691906014821015612427576bffffffffffffffffffffffff196bffffffffffffffffffffffff198360140360031b1b82161692505b5050919050565b60ff818116838216019081111561158d5761158d61221a56" }, { - "address": "0x3100000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212201698835cd7a9e8303f44009c3f144a4dbbfa3ab8ec0bca6489bb06bb1bda401164736f6c63430008180033", - "storage": - { - "0x0000000000000000000000000000000000000000000000000000000000000000" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x0000000000000000000000000000000000000000000000000000000000000001" : "0x06f05b59d3b20000", - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" : "0x3200000000000000000000000000000000000005", - "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" : "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - } + "address": "0x3200000000000000000000000000000000000003", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3200000000000000000000000000000000000004", + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" }, { "address": "0x3200000000000000000000000000000000000005", - "balance": "0x00", - "code": "0x6080604052600436106100c65760003560e01c8063715018a61161007f578063ad3cb1cc11610059578063ad3cb1cc146101db578063cc3d272114610219578063e30c39781461022f578063f2fde38b1461024457600080fd5b8063715018a61461019c57806379ba5097146101b15780638da5cb5b146101c657600080fd5b806335aa134a146100d25780633bbed4a0146100f45780633ccfd60b146101145780634f1ef2861461012957806352d1902d1461013c57806366d003ac1461016457600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b506100f26100ed366004610a0c565b610264565b005b34801561010057600080fd5b506100f261010f366004610a41565b6102b2565b34801561012057600080fd5b506100f2610314565b6100f2610137366004610a72565b610429565b34801561014857600080fd5b50610151610448565b6040519081526020015b60405180910390f35b34801561017057600080fd5b50600054610184906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101a857600080fd5b506100f2610465565b3480156101bd57600080fd5b506100f2610479565b3480156101d257600080fd5b506101846104be565b3480156101e757600080fd5b5061020c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161015b9190610b58565b34801561022557600080fd5b5061015160015481565b34801561023b57600080fd5b506101846104f3565b34801561025057600080fd5b506100f261025f366004610a41565b61051c565b61026c6105a1565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102ba6105a1565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e459391016102a6565b6001544710156103915760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d80600081146103de576040519150601f19603f3d011682016040523d82523d6000602084013e6103e3565b606091505b50509050806104265760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610388565b50565b6104316105d3565b61043a82610678565b6104448282610680565b5050565b6000610452610742565b50600080516020610bc183398151915290565b61046d6105a1565b610477600061078b565b565b33806104836104f3565b6001600160a01b0316146104b55760405163118cdaa760e01b81526001600160a01b0382166004820152602401610388565b6104268161078b565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006104e3565b6105246105a1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105686104be565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336105aa6104be565b6001600160a01b0316146104775760405163118cdaa760e01b8152336004820152602401610388565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061065a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661064e600080516020610bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156104775760405163703e46dd60e11b815260040160405180910390fd5b6104266105a1565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106da575060408051601f3d908101601f191682019092526106d791810190610b8b565b60015b61070257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610388565b600080516020610bc1833981519152811461073357604051632a87526960e21b815260048101829052602401610388565b61073d83836107c3565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104775760405163703e46dd60e11b815260040160405180910390fd5b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b031916815561044482610819565b6107cc8261088a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108115761073d82826108ef565b610444610965565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b806001600160a01b03163b6000036108c057604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610388565b600080516020610bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090c9190610ba4565b600060405180830381855af49150503d8060008114610947576040519150601f19603f3d011682016040523d82523d6000602084013e61094c565b606091505b509150915061095c858383610984565b95945050505050565b34156104775760405163b398979f60e01b815260040160405180910390fd5b60608261099957610994826109e3565b6109dc565b81511580156109b057506001600160a01b0384163b155b156109d957604051639996b31560e01b81526001600160a01b0385166004820152602401610388565b50805b9392505050565b8051156109f35780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a1e57600080fd5b5035919050565b80356001600160a01b0381168114610a3c57600080fd5b919050565b600060208284031215610a5357600080fd5b6109dc82610a25565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a8557600080fd5b610a8e83610a25565b9150602083013567ffffffffffffffff80821115610aab57600080fd5b818501915085601f830112610abf57600080fd5b813581811115610ad157610ad1610a5c565b604051601f8201601f19908116603f01168101908382118183101715610af957610af9610a5c565b81604052828152886020848701011115610b1257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b4f578181015183820152602001610b37565b50506000910152565b6020815260008251806020840152610b77816040850160208701610b34565b601f01601f19169190910160400192915050565b600060208284031215610b9d57600080fd5b5051919050565b60008251610bb6818460208701610b34565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220262c637f9c8977d8925898e6aaa0f7549d633220a78f4996b9e08ff7abec401064736f6c63430008190033" + "balance": "0x0", + "code": "0x6080604052600436106100955760003560e01c806379ba50971161005957806379ba50971461014a5780638da5cb5b1461015f578063cc3d272114610174578063e30c397814610198578063f2fde38b146101ad57600080fd5b806335aa134a146100a15780633bbed4a0146100c35780633ccfd60b146100e357806366d003ac146100f8578063715018a61461013557600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c16100bc3660046105ad565b6101cd565b005b3480156100cf57600080fd5b506100c16100de3660046105c6565b61021b565b3480156100ef57600080fd5b506100c161027d565b34801561010457600080fd5b50600054610118906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b506100c1610392565b34801561015657600080fd5b506100c16103a6565b34801561016b57600080fd5b506101186103eb565b34801561018057600080fd5b5061018a60015481565b60405190815260200161012c565b3480156101a457600080fd5b50610118610420565b3480156101b957600080fd5b506100c16101c83660046105c6565b610449565b6101d56104ce565b600180549082905560408051828152602081018490527f3c4f4d8cd2a65b4b1f4eeaf43669b14ab54e43d4842aa0ac8f0e4f9fe0bf5bf991015b60405180910390a15050565b6102236104ce565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f62e69886a5df0ba8ffcacbfc1388754e7abd9bde24b036354c561f1acd4e4593910161020f565b6001544710156102fa5760405162461bcd60e51b815260206004820152603e60248201527f5769746864726177616c20616d6f756e74206d7573742062652067726561746560448201527f72207468616e206d696e696d756d20776974686472617720616d6f756e74000060648201526084015b60405180910390fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b505090508061038f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016102f1565b50565b61039a6104ce565b6103a46000610500565b565b33806103b0610420565b6001600160a01b0316146103e25760405163118cdaa760e01b81526001600160a01b03821660048201526024016102f1565b61038f81610500565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610410565b6104516104ce565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556104956103eb565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b336104d76103eb565b6001600160a01b0316146103a45760405163118cdaa760e01b81523360048201526024016102f1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556105388261053c565b5050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000602082840312156105bf57600080fd5b5035919050565b6000602082840312156105d857600080fd5b81356001600160a01b03811681146105ef57600080fd5b939250505056" + }, + { + "address": "0x3aeeb871f83c85e68ffd1868bef3425ed6649d39", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x66f68692c03eb9c0656d676f2f4bd13eba40d1b7", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0x9fcdf8f60d3009656e50bf805cd53c7335b284fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xaafb7442f7f00b64057c2e9eae2815bb63ee0ece", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xc2f8eed77da1583f7bae0a3125dc7bc426002dde", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xd44821f906e3909b8ae944f7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xe756fdf89367ef428b48bca2d272ec8ecec053fd", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" + }, + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code": "0x" } ], "chain_id": 5655, @@ -92,15 +144,15 @@ "spec": { "0": "SHANGHAI" }, - "coinbase": "0x0000000000000000000000000000000000000000", + "coinbase": "0x3100000000000000000000000000000000000005", "starting_base_fee": 1000000000, "block_gas_limit": 30000000, "base_fee_params": { "max_change_denominator": 8, "elasticity_multiplier": 2 }, - "timestamp": 0, "difficulty": 0, "extra_data": "0x", + "timestamp": 0, "nonce": 0 } \ No newline at end of file