diff --git a/deploy_tee/README.md b/deploy_tee/README.md index 37f119c..18d84dd 100644 --- a/deploy_tee/README.md +++ b/deploy_tee/README.md @@ -137,6 +137,9 @@ The network-shape decisions live entirely in step 1's authored inputs; everything after is derivation (`manifest assemble`) or per-node plumbing. A node joining later re-runs only steps 2–3 (via the operator CLI — see above); the manifest assembly and the ceremony are one-time founding acts. +A committed worked example lives in `networks/example-devnet/` — a +template identity that can also found a throwaway test devnet (see +`networks/README.md`). ```bash # 0. (Upstream) Build the image in seismic-images (CI or `make build`) diff --git a/deploy_tee/networks/README.md b/deploy_tee/networks/README.md new file mode 100644 index 0000000..37e4c9b --- /dev/null +++ b/deploy_tee/networks/README.md @@ -0,0 +1,33 @@ +# Network directories + +One directory per network: the committable identity of a founded (or +foundable) network. Each holds the three authored inputs +(`reth-genesis.json`, `summit-template.toml`, `measurements.json`) plus +the artifact set `seismic-tee-bootstrap manifest assemble` derives from them +(`network-manifest.json` — whose SHA-256 is the network's `network_id` — +`summit-genesis-template.toml`, `measurement-policy.json`). The founding +workflow lives in the deploy_tee README ("Creating a new network"). + +Directories are committed because a fresh `assemble` mints a fresh +`genesis_nonce`: the same `network_id` can never be regenerated from the +inputs, so the directory is everything needed to (re)configure, join, or +debug that network later. The `nodes/` descriptors are runtime output +(live IPs) and stay gitignored. + +## example-devnet + +A **template, not a deployed network** — no cohort runs under this +identity. Two intended uses: + +- **Found a throwaway test devnet.** The artifact set is assembled and + valid, so `up --network … --count N` → `configure` → `genesis-ceremony` + brings up a working cohort. If two such cohorts might ever run at once, + re-run `manifest assemble --force` first so each gets a fresh + `genesis_nonce` (cohorts sharing a `network_id` can cross-replay + attestation transcripts). Note `measurements.json` snapshots a specific + image build — when the deployed VHD moves on, refresh it and + re-assemble (`up --network` refuses on a pin/policy mismatch). +- **Start a real network.** Don't reuse or copy this directory — run + `manifest init ` and author fresh inputs. `namespace` (the BLS + signature domain separator) and `genesis_nonce` must be unique per + network that matters. diff --git a/deploy_tee/networks/example-devnet/measurement-policy.json b/deploy_tee/networks/example-devnet/measurement-policy.json new file mode 100644 index 0000000..ff3ccc5 --- /dev/null +++ b/deploy_tee/networks/example-devnet/measurement-policy.json @@ -0,0 +1,29 @@ +[ + { + "attestation_type": "azure-tdx", + "measurement_id": "seismic-dev_2026-07-02.5c3b5e.vhd", + "measurements": { + "11": { + "expected": "73f2825b7985f9d04eccb3c538793e51617d0d4560c63517d09233114fdd6b18" + }, + "12": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "13": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "15": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "4": { + "expected": "d57063c0669599b885c43a0683436a3463ad49513ddb3996e6fc96040508fd8e" + }, + "8": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "9": { + "expected": "3f761a6383e09d62ac10ecfea95c27e30de69176337243e7e594714d27f6ac45" + } + } + } +] diff --git a/deploy_tee/networks/example-devnet/measurements.json b/deploy_tee/networks/example-devnet/measurements.json new file mode 100644 index 0000000..6c90acf --- /dev/null +++ b/deploy_tee/networks/example-devnet/measurements.json @@ -0,0 +1,128 @@ +{ + "EventLog": { + "Events": [ + { + "Description": "EV_EFI_ACTION: Calling EFI Application from Boot Option", + "Digest": "3d6772b4f84ed47595d72a2c4c5ffd15f5bb72c7507fe26f2aaee2c69d5633ba", + "PCRIndex": 4 + }, + { + "Data": "AAAAAA==", + "Description": "EV_SEPARATOR", + "Digest": "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119", + "PCRIndex": 4 + }, + { + "Description": "Boot Stage 1: Unified Kernel Image (UKI)", + "Digest": "d68c5b3dd8ecaf3bfec8a749168ab61f0160780a5f4473062b054549c0572692", + "PCRIndex": 4 + }, + { + "Description": "Boot Stage 2: Linux", + "Digest": "cf99317753808e81cdaa778bffcd0d32803bb4b6e5664e90a3c2703c67175df8", + "PCRIndex": 4 + }, + { + "Data": "YwBvAG4AcwBvAGwAZQA9AHQAdAB5ADAAIABjAG8AbgBzAG8AbABlAD0AdAB0AHkAUwAwACwAMQAxADUAMgAwADAAbgA4ACAAbQBpAHQAaQBnAGEAdABpAG8AbgBzAD0AYQB1AHQAbwAsAG4AbwBzAG0AdAAgAHMAcABlAGMAXwBzAHQAbwByAGUAXwBiAHkAcABhAHMAcwBfAGQAaQBzAGEAYgBsAGUAPQBvAG4AIABuAG8AcwBwAGUAYwB0AHIAZQBfAHYAMgAgAHMAeQBzAHQAZQBtAGQALgB1AG4AaQB0AD0AbQBpAG4AaQBtAGEAbAAuAHQAYQByAGcAZQB0AAAA", + "Description": "EV_EVENT_TAG: Linux LOAD_FILE2 protocol: cmdline \"console=tty0 console=ttyS0,115200n8 mitigations=auto,nosmt spec_store_bypass_disable=on nospectre_v2 systemd.unit=minimal.target\\x00\"", + "Digest": "aa50cea319f3df1f3802d2ae1cf4b60dacee7619e1fd2ed05c50b7331c829134", + "PCRIndex": 9 + }, + { + "Description": "EV_EVENT_TAG: Linux LOAD_FILE2 protocol: initrd (digest d1c035351dbf2abb915cc697f3e51332dc381dbd8295c08849b6cd572015f5db)", + "Digest": "d1c035351dbf2abb915cc697f3e51332dc381dbd8295c08849b6cd572015f5db", + "PCRIndex": 9 + }, + { + "Data": "LmxpbnV4AA==", + "Description": "EV_IPL: UKI section 1 name: .linux", + "Digest": "0da293e37ad5511c59be47993769aacb91b243f7d010288e118dc90e95aaef5a", + "PCRIndex": 11 + }, + { + "Description": "EV_IPL: UKI section 1 data: 19a1a18d5ffbb0871f58ea35ca563b64a71a7eb959050a6fa801125b545c6678", + "Digest": "19a1a18d5ffbb0871f58ea35ca563b64a71a7eb959050a6fa801125b545c6678", + "PCRIndex": 11 + }, + { + "Data": "Lm9zcmVsAA==", + "Description": "EV_IPL: UKI section 2 name: .osrel", + "Digest": "3fb9e4e3cc810d4326b5c13cef18aee1f9df8c5f4f7f5b96665724fa3b846e08", + "PCRIndex": 11 + }, + { + "Description": "EV_IPL: UKI section 2 data: 1238f99551300692ec2c817c88f2ab9a80e5867bbba0be3572288087f2985a53", + "Digest": "1238f99551300692ec2c817c88f2ab9a80e5867bbba0be3572288087f2985a53", + "PCRIndex": 11 + }, + { + "Data": "LmNtZGxpbmUA", + "Description": "EV_IPL: UKI section 3 name: .cmdline", + "Digest": "461203a89f23e36c3a4dc817f905b00484d2cf7e7d9376f13df91c41d84abe46", + "PCRIndex": 11 + }, + { + "Description": "EV_IPL: UKI section 3 data: 30a47dd0aca13e8f5685caf29052eb2906a027c2f86298101b3b3a5730a5cdde", + "Digest": "30a47dd0aca13e8f5685caf29052eb2906a027c2f86298101b3b3a5730a5cdde", + "PCRIndex": 11 + }, + { + "Data": "LmluaXRyZAA=", + "Description": "EV_IPL: UKI section 4 name: .initrd", + "Digest": "15ee37e75f1e8d42080e91fdbbd2560780918c81fe3687ae6d15c472bbdaac75", + "PCRIndex": 11 + }, + { + "Description": "EV_IPL: UKI section 4 data: d1c035351dbf2abb915cc697f3e51332dc381dbd8295c08849b6cd572015f5db", + "Digest": "d1c035351dbf2abb915cc697f3e51332dc381dbd8295c08849b6cd572015f5db", + "PCRIndex": 11 + }, + { + "Data": "LnVuYW1lAA==", + "Description": "EV_IPL: UKI section 5 name: .uname", + "Digest": "da7a6d941caa9d28b8a3665c4865c143db8f99400ac88d883370ae3021636c30", + "PCRIndex": 11 + }, + { + "Description": "EV_IPL: UKI section 5 data: d26becf1cf6dfe987f35584b51c6105c0924a85b3141789cbd3443aaac6ee691", + "Digest": "d26becf1cf6dfe987f35584b51c6105c0924a85b3141789cbd3443aaac6ee691", + "PCRIndex": 11 + }, + { + "Data": "LnNiYXQA", + "Description": "EV_IPL: UKI section 6 name: .sbat", + "Digest": "ff552fd255be18a3d61c0da88976fc71559d13aad12d1dfe1708cf950cc4b74c", + "PCRIndex": 11 + }, + { + "Description": "EV_IPL: UKI section 6 data: 7b7f7ea40ef3c8dda5e1fd1b0438e6a995f9093b6bad59251ca314df7195c2c4", + "Digest": "7b7f7ea40ef3c8dda5e1fd1b0438e6a995f9093b6bad59251ca314df7195c2c4", + "PCRIndex": 11 + } + ] + }, + "measurement_id": "seismic-dev_2026-07-02.5c3b5e.vhd", + "measurements": { + "11": { + "expected": "73f2825b7985f9d04eccb3c538793e51617d0d4560c63517d09233114fdd6b18" + }, + "12": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "13": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "15": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "4": { + "expected": "d57063c0669599b885c43a0683436a3463ad49513ddb3996e6fc96040508fd8e" + }, + "8": { + "expected": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "9": { + "expected": "3f761a6383e09d62ac10ecfea95c27e30de69176337243e7e594714d27f6ac45" + } + } +} diff --git a/deploy_tee/networks/example-devnet/network-manifest.json b/deploy_tee/networks/example-devnet/network-manifest.json new file mode 100644 index 0000000..930fec2 --- /dev/null +++ b/deploy_tee/networks/example-devnet/network-manifest.json @@ -0,0 +1,20 @@ +{ + "eth": { + "chain_id": 5124, + "genesis_hash": "0x874a74ba374da00d8c097b4be585a60e40f901cac56a764ad0013a07b0a2f93c" + }, + "genesis_nonce": "0xcf53cece6324a805c08120f54d6ae839b70cf0dc1f0b6646f94af43ea55d9aa4", + "manifest_version": 1, + "measurements": { + "bootstrap_policy_hash": "0xbf19dfe3fc5ec80c4bc18d34b43f8226816df2dd784f9f9988c77ddb88868e24", + "contracts": { + "authority": "0x1000000000000000000000000000000000000002", + "registry": "0x1000000000000000000000000000000000000001" + } + }, + "name": "example-devnet", + "summit": { + "genesis_template_hash": "0x52f99622625a1713bb013082bd35c93dffb06029ddbf23012870130118931ec6", + "namespace": "example-devnet" + } +} diff --git a/deploy_tee/networks/example-devnet/reth-genesis.json b/deploy_tee/networks/example-devnet/reth-genesis.json new file mode 100644 index 0000000..16cf525 --- /dev/null +++ b/deploy_tee/networks/example-devnet/reth-genesis.json @@ -0,0 +1,109 @@ +{ + "config": { + "berlinBlock": 0, + "byzantiumBlock": 0, + "cancunTime": 0, + "chainId": 5124, + "constantinopleBlock": 0, + "daoForkSupport": true, + "eip150Block": 0, + "eip155Block": 0, + "eip158Block": 0, + "ethash": {}, + "homesteadBlock": 0, + "istanbulBlock": 0, + "londonBlock": 0, + "osakaTime": 0, + "petersburgBlock": 0, + "pragueTime": 0, + "shanghaiTime": 0, + "terminalTotalDifficulty": 0 + }, + "alloc": { + "0x0000000000000000000000000000000000002001": { + "balance": "0x0", + "code": "0x60806040526004361015610015575b36610a3057005b61001f5f356100de565b80630e292a29146100d95780632cc06b1e146100d45780632f1d7903146100cf57806331b00e46146100ca5780635e677dd0146100c557806368eddae7146100c05780638730d33b146100bb5780638d80ff0a146100b6578063a85f5c37146100b1578063c9e6db8e146100ac578063ed24911d146100a75763fac750e00361000e576109fb565b6109c6565b61096c565b610917565b6108df565b610876565b610800565b610726565b6105cd565b6104e4565b61032c565b6101ff565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff1690565b610108816100f6565b0361010f57565b5f80fd5b90503590610120826100ff565b565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156101685781359167ffffffffffffffff831161016357602001926001830284011161015e57565b61012a565b610126565b610122565b6060818303126101d357610183825f8301610113565b92602082013567ffffffffffffffff81116101ce57836101a491840161012e565b929093604082013567ffffffffffffffff81116101c9576101c5920161012e565b9091565b6100f2565b6100f2565b6100ee565b151590565b6101e6906101d8565b9052565b91906101fd905f602085019401906101dd565b565b346102335761022f61021e61021536600461016d565b93929092610e9f565b6102266100e4565b918291826101ea565b0390f35b6100ea565b6003111561024257565b5f80fd5b9050359061025382610238565b565b64ffffffffff1690565b61026881610255565b0361026f57565b5f80fd5b905035906102808261025f565b565b90565b61028e81610282565b0361029557565b5f80fd5b905035906102a682610285565b565b91608083830312610305576102bf825f8501610246565b9260208101359167ffffffffffffffff8311610300576102e4846102fd94840161012e565b9390946102f48160408601610273565b93606001610299565b90565b6100f2565b6100ee565b610313906100f6565b9052565b919061032a905f6020850194019061030a565b565b346103605761035c61034b6103423660046102a8565b939290926117ca565b6103536100e4565b91829182610317565b0390f35b6100ea565b9060208282031261037e5761037b915f01610113565b90565b6100ee565b61038c90610255565b9052565b634e487b7160e01b5f52602160045260245ffd5b600311156103ae57565b610390565b906103bd826103a4565b565b6103c8906103b3565b90565b6103d4906103bf565b9052565b6103e1906101d8565b9052565b5190565b60209181520190565b90825f9392825e0152565b601f801991011690565b61042661042f6020936104349361041d816103e5565b938480936103e9565b958691016103f2565b6103fd565b0190565b61044190610282565b9052565b906104c99060c08061049a60e084016104645f8801515f870190610383565b610476602088015160208701906103cb565b610488604088015160408701906103d8565b60608701518582036060870152610407565b946104ad60808201516080860190610438565b6104bf60a082015160a0860190610438565b0151910190610438565b90565b6104e19160208201915f818403910152610445565b90565b34610514576105106104ff6104fa366004610365565b611959565b6105076100e4565b918291826104cc565b0390f35b6100ea565b9060208282031261054a575f82013567ffffffffffffffff811161054557610541920161012e565b9091565b6100f2565b6100ee565b6bffffffffffffffffffffffff1690565b6105699061054f565b9052565b60209181520190565b61059561059e6020936105a39361058c816103e5565b9384809361056d565b958691016103f2565b6103fd565b0190565b916105ca926105bd60408201935f830190610560565b6020818403910152610576565b90565b346105ff576105e66105e0366004610519565b906119e0565b906105fb6105f26100e4565b928392836105a7565b0390f35b6100ea565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90610626906103fd565b810190811067ffffffffffffffff82111761064057604052565b610608565b906106586106516100e4565b928361061c565b565b67ffffffffffffffff8111610678576106746020916103fd565b0190565b610608565b90825f939282370152565b9092919261069d6106988261065a565b610645565b938185526020850190828401116106b9576106b79261067d565b565b610604565b9080601f830112156106dc578160206106d993359101610688565b90565b610122565b919091604081840312610721576106fa835f8301610246565b92602082013567ffffffffffffffff811161071c5761071992016106be565b90565b6100f2565b6100ee565b346107575761075361074261073c3660046106e1565b90611b9f565b61074a6100e4565b91829182610317565b0390f35b6100ea565b6107658161054f565b0361076c57565b5f80fd5b9050359061077d8261075c565b565b91906080838203126107f657610797815f8501610770565b92602081013567ffffffffffffffff81116107f157826107b891830161012e565b929093604083013567ffffffffffffffff81116107ec576107de836107e992860161012e565b939094606001610113565b90565b6100f2565b6100f2565b6100ee565b5f0190565b61081a61080e36600461077f565b94939093929192611ddb565b6108226100e4565b8061082c816107fb565b0390f35b91909160408184031261087157610849835f8301610246565b92602082013567ffffffffffffffff811161086c57610868920161012e565b9091565b6100f2565b6100ee565b346108a55761088f610889366004610830565b916124e2565b6108976100e4565b806108a1816107fb565b0390f35b6100ea565b906020828203126108da575f82013567ffffffffffffffff81116108d5576108d292016106be565b90565b6100f2565b6100ee565b6108f26108ed3660046108aa565b6124ef565b6108fa6100e4565b80610904816107fb565b0390f35b5f91031261091257565b6100ee565b3461094557610927366004610908565b61092f612713565b6109376100e4565b80610941816107fb565b0390f35b6100ea565b61095390610282565b9052565b919061096a905f6020850194019061094a565b565b3461099c57610998610987610982366004610365565b61271d565b61098f6100e4565b91829182610957565b0390f35b6100ea565b90565b6109ad906109a1565b9052565b91906109c4905f602085019401906109a4565b565b346109f6576109d6366004610908565b6109f26109e1612762565b6109e96100e4565b918291826109b1565b0390f35b6100ea565b34610a2b57610a0b366004610908565b610a27610a1661278f565b610a1e6100e4565b91829182610957565b0390f35b6100ea565b5f80fd5b5f90565b90565b90565b610a52610a4d610a5792610a38565b610a3b565b6100f6565b90565b634e487b7160e01b5f52601160045260245ffd5b610a7a610a80916100f6565b916100f6565b90039063ffffffff8211610a9057565b610a5a565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b610abf81610aa9565b821015610ad957610ad1600591610aad565b910201905f90565b610a95565b90565b5f1c90565b64ffffffffff1690565b610afc610b0191610ae1565b610ae6565b90565b610b0e9054610af0565b90565b610b25610b20610b2a92610255565b610a3b565b610282565b90565b60209181520190565b5f7f6b65792065787069726564000000000000000000000000000000000000000000910152565b610b6a600b602092610b2d565b610b7381610b36565b0190565b610b8c9060208101905f818303910152610b5d565b90565b15610b9657565b610b9e6100e4565b62461bcd60e51b815280610bb460048201610b77565b0390fd5b60281c90565b60ff1690565b610bd0610bd591610bb8565b610bbe565b90565b610be29054610bc4565b90565b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610c19575b6020831014610c1457565b610be5565b91607f1691610c09565b5f5260205f2090565b905f9291805490610c46610c3f83610bf9565b80946103e9565b916001811690815f14610c9d5750600114610c61575b505050565b610c6e9192939450610c23565b915f925b818410610c8557505001905f8080610c5c565b60018160209295939554848601520191019290610c72565b92949550505060ff19168252151560200201905f8080610c5c565b90610cc291610c2c565b90565b90610ce5610cde92610cd56100e4565b93848092610cb8565b038361061c565b565b610cf090610cc5565b90565b5f7f6b6579207265766f6b6564000000000000000000000000000000000000000000910152565b610d27600b602092610b2d565b610d3081610cf3565b0190565b610d499060208101905f818303910152610d1a565b90565b15610d5357565b610d5b6100e4565b62461bcd60e51b815280610d7160048201610d34565b0390fd5b90565b610d84610d8991610ae1565b610d75565b90565b610d969054610d78565b90565b610da4913691610688565b90565b5f7f696e76616c696420736967000000000000000000000000000000000000000000910152565b610ddb600b602092610b2d565b610de481610da7565b0190565b610dfd9060208101905f818303910152610dce565b90565b15610e0757565b610e0f6100e4565b62461bcd60e51b815280610e2560048201610de8565b0390fd5b610e3290610282565b5f198114610e405760010190565b610a5a565b5f1b90565b90610e565f1991610e45565b9181191691161790565b610e74610e6f610e7992610282565b610a3b565b610282565b90565b90565b90610e94610e8f610e9b92610e60565b610e7c565b8254610e4a565b9055565b91600493610fb295610f73610f9593610f9a95610eba610a34565b50610f4e610eef610ee96002610ece61282b565b01610ee38c610edd6001610a3e565b90610a6e565b90610ab6565b50610ade565b98610f16610efe5f8c01610b04565b610f10610f0a42610282565b91610b11565b11610b8f565b610f48610f42610f3d8c610f376001610f305f8401610bd8565b9201610ce7565b90611b9f565b6100f6565b916100f6565b14610d4c565b610f6d610f59612762565b610f648b8b01610d8c565b92939093610d99565b90612902565b91610f7f5f8701610bd8565b610f8f6001880194929394610ce7565b90612a18565b610e00565b01610fac610fa782610d8c565b610e29565b90610e7f565b600190565b5f90565b60018060a01b031690565b610fda610fd5610fdf92610fbb565b610a3b565b610fbb565b90565b610feb90610fc6565b90565b610ff790610fe2565b90565b61100390610fbb565b90565b5f7f6f6e6c792073656c660000000000000000000000000000000000000000000000910152565b61103a6009602092610b2d565b61104381611006565b0190565b61105c9060208101905f81830391015261102d565b90565b1561106657565b61106e6100e4565b62461bcd60e51b81528061108460048201611047565b0390fd5b906110ba95949392916110b5336110af6110a96110a430610fee565b610ffa565b91610ffa565b1461105f565b611665565b90565b6110c760e0610645565b90565b906110d490610255565b9052565b906110e2906103b3565b9052565b906110f0906101d8565b9052565b52565b9061110190610282565b9052565b90565b61111c61111761112192611105565b610a3b565b610282565b90565b61113861113361113d92610282565b610a3b565b6100f6565b90565b90565b5f5260205f2090565b5490565b6111598161114c565b8210156111735761116b600591611143565b910201905f90565b610a95565b634e487b7160e01b5f525f60045260245ffd5b6111959051610255565b90565b906111a864ffffffffff91610e45565b9181191691161790565b6111c66111c16111cb92610255565b610a3b565b610255565b90565b90565b906111e66111e16111ed926111b2565b6111ce565b8254611198565b9055565b6111fb90516103b3565b90565b60281b90565b9061121565ff0000000000916111fe565b9181191691161790565b611228906103b3565b90565b90565b9061124361123e61124a9261121f565b61122b565b8254611204565b9055565b61125890516101d8565b90565b60301b90565b9061127366ff0000000000009161125b565b9181191691161790565b611286906101d8565b90565b90565b906112a161129c6112a89261127d565b611289565b8254611261565b9055565b5190565b601f602091010490565b1b90565b919060086112d99102916112d35f19846112ba565b926112ba565b9181191691161790565b91906112f96112f461130193610e60565b610e7c565b9083546112be565b9055565b5f90565b61131b91611315611305565b916112e3565b565b5b818110611329575050565b806113365f600193611309565b0161131e565b9190601f811161134c575b505050565b61135861137d93610c23565b906020611364846112b0565b83019310611385575b611376906112b0565b019061131d565b5f8080611347565b91506113768192905061136d565b1c90565b906113a7905f1990600802611393565b191690565b816113b691611397565b906002021790565b906113c8816103e5565b9067ffffffffffffffff8211611488576113ec826113e68554610bf9565b8561133c565b602090601f83116001146114205791809161140f935f92611414575b50506113ac565b90555b565b90915001515f80611408565b601f1983169161142f85610c23565b925f5b81811061147057509160029391856001969410611456575b50505002019055611412565b611466910151601f841690611397565b90555f808061144a565b91936020600181928787015181550195019201611432565b610608565b90611497916113be565b565b6114a39051610282565b90565b9061154c60c06004611552946114c95f82016114c35f880161118b565b906111d1565b6114e15f82016114db602088016111f1565b9061122e565b6114f95f82016114f36040880161124e565b9061128c565b6115126001820161150c606088016112ac565b9061148d565b61152b6002820161152560808801611499565b90610e7f565b6115446003820161153e60a08801611499565b90610e7f565b019201611499565b90610e7f565b565b919061156557611563916114a6565b565b611178565b908154916801000000000000000083101561159a578261159291600161159895018155611150565b90611554565b565b610608565b6115ab6115b1916100f6565b916100f6565b019063ffffffff82116115c057565b610a5a565b6115ce906109a1565b90565b906115db906115c5565b5f5260205260405f2090565b906115f663ffffffff91610e45565b9181191691161790565b61161461160f611619926100f6565b610a3b565b6100f6565b90565b90565b9061163461162f61163b92611600565b61161c565b82546115e7565b9055565b916116629261165560408201935f8301906109a4565b6020818403910152610445565b90565b9490949392935061167461282b565b92859083869193905f925f9460019061168b6110bd565b975f890190611699916110ca565b60208801906116a7916110d8565b60408701906116b5916110e6565b6116be91610d99565b60608501906116cc916110f4565b60808401906116da916110f7565b6116e390611108565b60a08301906116f1916110f7565b6116fa90611108565b60c0820190611708916110f7565b928260020161171690610aa9565b61171f90611124565b948360020161172d90611140565b856117379161156a565b919061174291610d99565b61174b91612b9c565b9083600161175890610a3e565b6117619161159f565b906003018261176f916115d1565b906117799161161f565b7f4ea58b0cfbd7dbef4ca1db95d39abfddd4b9a1614dbd63cfb36d3b132e4589d7916117a36100e4565b9182916117b0918361163f565b0390a160016117be90610a3e565b6117c79161159f565b90565b906117df949392916117da610fb7565b611088565b90565b6117ec60e0610645565b90565b5f90565b5f90565b5f90565b606090565b5f90565b61180c6117e2565b9060208080808080808861181e6117ef565b8152016118296117f3565b8152016118346117f7565b81520161183f6117fb565b81520161184a611800565b815201611855611800565b815201611860611800565b81525050565b61186e611804565b90565b60301c90565b60ff1690565b61188961188e91611871565b611877565b90565b61189b905461187d565b90565b9061194b61194260046118af6117e2565b946118c66118be5f8301610b04565b5f88016110ca565b6118dd6118d45f8301610bd8565b602088016110d8565b6118f46118eb5f8301611891565b604088016110e6565b61190c61190360018301610cc5565b606088016110f4565b61192461191b60028301610d8c565b608088016110f7565b61193c61193360038301610d8c565b60a088016110f7565b01610d8c565b60c084016110f7565b565b6119569061189e565b90565b61198e61199491611968611866565b50611988600261197661282b565b01916119826001610a3e565b90610a6e565b90610ab6565b5061194d565b90565b5f90565b606090565b6119b46119af6119b992611105565b610a3b565b61054f565b90565b90565b6119cb6119d091610ae1565b6119bc565b90565b6119dd90b06119bf565b90565b9190916119eb611997565b506119f461199b565b506119fd612d82565b5b80611a11611a0b5f6119a0565b9161054f565b03611a245750611a1f612d82565b6119fe565b92611a4c91611a46611a3e5f611a3861282b565b016119d3565b928692610d99565b9161301c565b90565b63ffffffff1690565b611a64611a6991610ae1565b611a4f565b90565b611a769054611a58565b90565b611a8d611a88611a9292611105565b610a3b565b6100f6565b90565b5f7f6b6579206e6f7420666f756e6400000000000000000000000000000000000000910152565b611ac9600d602092610b2d565b611ad281611a95565b0190565b611aeb9060208101905f818303910152611abc565b90565b15611af557565b611afd6100e4565b62461bcd60e51b815280611b1360048201611ad6565b0390fd5b60200190565b5f7f696e76616c6964206b6579206d617070696e6700000000000000000000000000910152565b611b516013602092610b2d565b611b5a81611b1d565b0190565b611b739060208101905f818303910152611b44565b90565b15611b7d57565b611b856100e4565b62461bcd60e51b815280611b9b60048201611b5e565b0390fd5b90611c4090611bac610fb7565b50611bb561282b565b90611bd5611bd0611bc7868490612b9c565b600385016115d1565b611a6c565b93611bf385611bec611be65f611a79565b916100f6565b1415611aee565b611c31611c2b611c255f611c1e60028801611c188b611c126001610a3e565b90610a6e565b90610ab6565b5001610bd8565b926103b3565b916103b3565b149182611c43575b5050611b76565b90565b611caa919250611c786001611c716002611ca49401611c6b89611c6585610a3e565b90610a6e565b90610ab6565b5001610ce7565b611c8a611c84826103e5565b91611b17565b2092611c9e611c98826103e5565b91611b17565b206109a1565b916109a1565b145f80611c39565b5f7f696e76616c6964207369676e6174757265000000000000000000000000000000910152565b611ce66011602092610b2d565b611cef81611cb2565b0190565b611d089060208101905f818303910152611cd9565b90565b15611d1257565b611d1a6100e4565b62461bcd60e51b815280611d3060048201611cf3565b0390fd5b611d43611d4991939293610282565b92610282565b8201809211611d5457565b610a5a565b5f7f7370656e64206c696d6974206578636565646564000000000000000000000000910152565b611d8d6014602092610b2d565b611d9681611d59565b0190565b611daf9060208101905f818303910152611d80565b90565b15611db957565b611dc16100e4565b62461bcd60e51b815280611dd760048201611d9a565b0390fd5b91949092611de761282b565b94611df061199b565b5033611e0c611e06611e0130610fee565b610ffa565b91610ffa565b145f14611e68575050509081611e479492611e2f611e295f6119a0565b9161054f565b145f14611e4a5750611e419250610d99565b5b6124ef565b5b565b9190611e5a5f611e6395016119d3565b9290919261324a565b611e42565b859295600201866001611e7a90610a3e565b611e8391610a6e565b611e8c91610ab6565b50611e9690610ade565b95865f01611ea390610b04565b42611ead90610282565b90611eb790610b11565b11611ec190610b8f565b83600301875f01611ed190610bd8565b88600101611ede90610ce7565b611ee791612b9c565b611ef0916115d1565b611ef990611a6c565b611f02906100f6565b90611f0c906100f6565b14611f1690610d4c565b85600401611f2390610d8c565b8588907f000000000000000000000000000000000000000000000000000000000000000091611f5191610d99565b611f5a92612902565b90865f01611f6790610bd8565b928760010192909192611f7990610ce7565b611f8294612a18565b611f8b90611d0b565b815f611f96906119a0565b90611fa09061054f565b145f14946120069360049361200b9761207a5750611fbe9250610d99565b925b611fc95f611108565b50611fd660028201610d8c565b611fe8611fe25f611108565b91610282565b03612010575b01612000611ffb82610d8c565b610e29565b90610e7f565b6124ef565b611e48565b61207561201c85613504565b61205961203561202e60038601610d8c565b8390611d34565b61205261204c61204760028801610d8c565b610282565b91610282565b1115611db2565b61206f600384019161206a83610d8c565b611d34565b90610e7f565b611fee565b919061208a5f61209395016119d3565b9290919261324a565b92611fc0565b906120c892916120c3336120bd6120b76120b230610fee565b610ffa565b91610ffa565b1461105f565b61236e565b565b634e487b7160e01b5f52603160045260245ffd5b906120f1905f1990602003600802611393565b8154169055565b905f9161210f61210782610c23565b9283546113ac565b905555565b919290602082105f1461216d57601f841160011461213d576121379293506113ac565b90555b5b565b509061216361216893600161215a61215485610c23565b926112b0565b8201910161131d565b6120f8565b61213a565b506121a4829361217e600194610c23565b61219d61218a856112b0565b820192601f8616806121af575b506112b0565b019061131d565b60020217905561213b565b6121bb908886036120de565b5f612197565b929091680100000000000000008211612221576020115f1461221257602081105f146121f6576121f0916113ac565b90555b5b565b60019160ff191661220684610c23565b556002020190556121f3565b600191506002020190556121f4565b610608565b90815461223281610bf9565b9081831161225b575b818310612249575b50505050565b61225293612114565b5f808080612243565b612267838383876121c1565b61223b565b5f61227691612226565b565b905f0361228a576122889061226c565b565b611178565b5f60046122c89282808201556122a88360018301612278565b6122b58360028301611309565b6122c28360038301611309565b01611309565b565b905f036122dc576122da9061228f565b565b611178565b6122ea8161114c565b801561230b5760019003906123086123028383611150565b906122ca565b55565b6120ca565b9190600861232e91029161232863ffffffff846112ba565b926112ba565b9181191691161790565b919061234e61234961235693611600565b61161c565b908354612310565b9055565b61236c91612366610fb7565b91612338565b565b9161241460036123956124199461238f5f9561238861282b565b9892610d99565b90612b9c565b946123ab6123a683830188906115d1565b611a6c565b6123c8816123c16123bb88611a79565b916100f6565b1415611aee565b6123dc6123d760028401610aa9565b611124565b90806123f06123ea846100f6565b916100f6565b03612454575b505061240c61240760028301611140565b6122e1565b0184906115d1565b61235a565b61244f7fd76dbee353f8817df12bf008d3fec1c2f26c9afc1e832f74757756b060b25f82916124466100e4565b918291826109b1565b0390a1565b6124d661248561247f6124db9461247960028801916124736001610a3e565b90610a6e565b90610ab6565b5061194d565b916124b1836124ab600288016124a58561249f6001610a3e565b90610a6e565b90610ab6565b90611554565b916124d08686019160606124c7602083016111f1565b91015190612b9c565b906115d1565b61161f565b5f806123f6565b906124ed9291612099565b565b80519060205b82811061250157505050565b8082015160f81c6001820183015160601c308115021760158301840151916035840185015192836055860187015f9392835f146125615750505090915060011461255d575b5f1461255557605501016124f5565b3d5f803e3d5ffd5b5f80fd5b5f958695508594505af19050612546565b6125963361259061258a61258530610fee565b610ffa565b91610ffa565b1461105f565b61259e612643565b565b6125ac6125b191610ae1565b611877565b90565b6125be90546125a0565b90565b5f7f414553206b657920616c726561647920696e697469616c697a65640000000000910152565b6125f5601b602092610b2d565b6125fe816125c1565b0190565b6126179060208101905f8183039101526125e8565b90565b1561262157565b6126296100e4565b62461bcd60e51b81528061263f60048201612602565b0390fd5b61266761266261265c600161265661282b565b016125b4565b156101d8565b61261a565b61266f6126e9565b565b90565b61268861268361268d92612671565b610a3b565b612671565b90565b90565b906126a86126a36126af92612674565b612690565b82b0610e4a565b90b1565b906126bf60ff91610e45565b9181191691161790565b906126de6126d96126e59261127d565b611289565b82546126b3565b9055565b6127116126f461282b565b6127076126ff613784565b5f8301612693565b60018091016126c9565b565b61271b612572565b565b600461275461275b9261272e611305565b5061274e600261273c61282b565b01916127486001610a3e565b90610a6e565b90610ab6565b5001610d8c565b90565b5f90565b61276a61275e565b507f000000000000000000000000000000000000000000000000000000000000000090565b612797611305565b506127ab60026127a561282b565b01610aa9565b90565b68ffffffffffffffffff60b81b1690565b6127c8906127ae565b90565b60b81c90565b68ffffffffffffffffff1690565b6127f36127ee6127f8926127d1565b610a3b565b6127d1565b90565b61280761280c916127cb565b6127df565b90565b61282361281e612828926127d1565b610a3b565b610282565b90565b61286461285f61285a7f2a2cc7db52019c9ff565d289628faa407289ea9f1a3741cac1acd5fa3e843b636127bf565b6127fb565b61280f565b90565b604090612890612897949695939661288660608401985f8501906109a4565b602083019061094a565b01906109a4565b565b905090565b5f61190160f01b910152565b6128b660028092612899565b6128bf8161289e565b0190565b90565b6128d26128d7916109a1565b6128c3565b9052565b60208093926128f66128ef6128fe946128aa565b80926128c6565b0180926128c6565b0190565b9061296f6129a99261291261275e565b506129607f9bb939585d47b76d88b01231eb395b17e90aab08b4c65e93bb1425c9708dbab7919361294b612945826103e5565b91611b17565b206129546100e4565b94859360208501612867565b6020820181038252038261061c565b61298161297b826103e5565b91611b17565b209161299a61298e6100e4565b938492602084016128db565b6020820181038252038261061c565b6129bb6129b5826103e5565b91611b17565b2090565b6129c890610fbb565b90565b6129d4816129bf565b036129db57565b5f80fd5b905051906129ec826129cb565b565b90602082820312612a0757612a04915f016129df565b90565b6100ee565b612a1590610fe2565b90565b949391929094612a26610a34565b9080612a3a612a345f6103b3565b916103b3565b145f14612a7157505093612a56612a5f9392612a6d9596613c1b565b9390939161395d565b919091929390919293613c40565b905b565b80969296612a88612a8260016103b3565b916103b3565b145f14612aef575050612ae89394612ae0612adb612ac59594612aad612ad49561395d565b95909596612ab96100e4565b988991602083016109b1565b6020820181038252038861061c565b5f93610d99565b6139fc565b919293613abc565b905b612a6f565b95919095612b06612b0060026103b3565b916103b3565b14612b15575b50505050612aea565b612b46949550612b38612b41916020612b2d826103e5565b8183010191016129ee565b93919293612a0c565b61386d565b905f808080612b0c565b60ff1690565b60f81b90565b612b6590612b56565b90565b612b74612b7991612b50565b612b5c565b9052565b600181612b90612b989360209695612b68565b0180926128c6565b0190565b612bb1612bec91612bab61275e565b506103bf565b91612bc4612bbe826103e5565b91611b17565b2091612bdd612bd16100e4565b93849260208401612b7d565b6020820181038252038261061c565b612bfe612bf8826103e5565b91611b17565b2090565b90565b612c19612c14612c1e92612c02565b610a3b565b610fbb565b90565b612c2a90612c05565b90565b612c376064612c21565b90565b90565b612c51612c4c612c5692612c3a565b610a3b565b6100f6565b90565b60e01b90565b612c6890612c59565b90565b612c77612c7c916100f6565b612c5f565b9052565b612c8c81600493612c6b565b0190565b90612ca2612c9d8361065a565b610645565b918252565b3d5f14612cc257612cb73d612c90565b903d5f602084013e5b565b612cca61199b565b90612cc0565b5f7f524e4720507265636f6d70696c652063616c6c206661696c6564000000000000910152565b612d04601a602092610b2d565b612d0d81612cd0565b0190565b612d269060208101905f818303910152612cf7565b90565b15612d3057565b612d386100e4565b62461bcd60e51b815280612d4e60048201612d11565b0390fd5b612d5e612d6391610ae1565b610e60565b90565b612d7a612d75612d7f92610282565b610a3b565b61054f565b90565b612d8a611997565b50612dfb612df660205f80612d9d612c2d565b612dbf612dcd612dac86612c3d565b612db46100e4565b928391888301612c80565b87820181038252038261061c565b8481019051915afa612de6612de0612ca7565b91612d29565b612dee61275e565b500151612d52565b612d66565b90565b90565b612e0d612e1291612671565b612dfe565b9052565b60a01b90565b612e2590612e16565b90565b612e34612e399161054f565b612e1c565b9052565b905090565b612e67612e5e92602092612e55816103e5565b94858093612e3d565b938491016103f2565b0190565b91612e8a602084612e82612e919796600c96612e01565b018092612e28565b0190612e42565b90565b90565b612eab612ea6612eb092612e94565b610a3b565b610fbb565b90565b612ebc90612e97565b90565b612ec96066612eb3565b90565b60207f6564000000000000000000000000000000000000000000000000000000000000917f41455320656e637279707420707265636f6d70696c652063616c6c206661696c5f8201520152565b612f266022604092610b2d565b612f2f81612ecc565b0190565b612f489060208101905f818303910152612f19565b90565b15612f5257565b612f5a6100e4565b62461bcd60e51b815280612f7060048201612f33565b0390fd5b60207f7574000000000000000000000000000000000000000000000000000000000000917f456e6372797074696f6e2063616c6c2072657475726e6564206e6f206f7574705f8201520152565b612fce6022604092610b2d565b612fd781612f74565b0190565b612ff09060208101905f818303910152612fc1565b90565b15612ffa57565b6130026100e4565b62461bcd60e51b81528061301860048201612fdb565b0390fd5b916130565f9392613047859461303061199b565b50919361303b6100e4565b94859360208501612e6b565b6020820181038252038261061c565b61305e612ebf565b90602081019051915afa613079613073612ca7565b91612f4b565b61309d613085826103e5565b6130976130915f611108565b91610282565b11612ff3565b90565b5090565b5f7f436970686572746578742063616e6e6f7420626520656d707479000000000000910152565b6130d8601a602092610b2d565b6130e1816130a4565b0190565b6130fa9060208101905f8183039101526130cb565b90565b1561310457565b61310c6100e4565b62461bcd60e51b815280613122600482016130e5565b0390fd5b9091826131368161313d93612e3d565b809361067d565b0190565b916131606020846131586131679896600c96612e01565b018092612e28565b0191613126565b90565b90565b61318161317c6131869261316a565b610a3b565b610fbb565b90565b6131929061316d565b90565b61319f6067613189565b90565b60207f6564000000000000000000000000000000000000000000000000000000000000917f414553206465637279707420707265636f6d70696c652063616c6c206661696c5f8201520152565b6131fc6022604092610b2d565b613205816131a2565b0190565b61321e9060208101905f8183039101526131ef565b90565b1561322857565b6132306100e4565b62461bcd60e51b81528061324660048201613209565b0390fd5b5f939161329c8594936132ab9361325f61199b565b5061328661326e8784906130a0565b61328061327a8a611108565b91610282565b116130fd565b92946132906100e4565b95869460208601613141565b6020820181038252038261061c565b6132b3613195565b90602081019051915afa6132ce6132c8612ca7565b91613221565b90565b90565b6132e86132e36132ed926132d1565b610a3b565b610282565b90565b906132fa826103e5565b81101561330c57600160209102010190565b610a95565b60ff60f81b1690565b6133249051613311565b90565b60f81c90565b61334161333c61334692612b50565b610a3b565b612b50565b90565b61335561335a91613327565b61332d565b90565b61337161336c61337692611105565b610a3b565b612b50565b90565b90565b61339061338b61339592613379565b610a3b565b610282565b90565b6133ac6133a76133b192612c3a565b610a3b565b610282565b90565b60207f6c656e6774680000000000000000000000000000000000000000000000000000917f496e76616c6964204d756c746953656e6420646174613a2065786365656473205f8201520152565b61340e6026604092610b2d565b613417816133b4565b0190565b6134309060208101905f818303910152613401565b90565b1561343a57565b6134426100e4565b62461bcd60e51b8152806134586004820161341b565b0390fd5b60207f656420747261696c696e67206279746573000000000000000000000000000000917f496e76616c6964204d756c746953656e6420646174613a20756e6578706563745f8201520152565b6134b66031604092610b2d565b6134bf8161345c565b0190565b6134d89060208101905f8183039101526134a9565b90565b156134e257565b6134ea6100e4565b62461bcd60e51b815280613500600482016134c3565b0390fd5b9061350d611305565b906135175f611108565b91613521846103e5565b925b6135378161353160556132d4565b90611d34565b61354961354386610282565b91610282565b1161361c5761356961356461355f8784906132f0565b61331a565b613349565b61357b6135755f61335d565b91612b50565b146135ef575b6135986135ea91613592603561337c565b90611d34565b6135a0611305565b506135bc81602088010151916135b66020613398565b90611d34565b906135e46135cb838390611d34565b6135dd6135d789610282565b91610282565b1115613433565b90611d34565b613523565b906135986136136135ea92613602611305565b506015850160208901015190611d34565b92915050613581565b61363e9294506136326136389194929492610282565b91610282565b146134db565b90565b5f90565b5f7f6165732d6b657900000000000000000000000000000000000000000000000000910152565b61367860078092612899565b61368181613645565b0190565b90565b61369461369991610282565b613685565b9052565b906136b36136ac60209361366c565b8092613688565b0190565b806136c86004926136cf9594612c6b565b0190612e42565b90565b5f7f496e76616c696420524e47206f7574707574206c656e67746800000000000000910152565b6137066019602092610b2d565b61370f816136d2565b0190565b6137289060208101905f8183039101526136f9565b90565b1561373257565b61373a6100e4565b62461bcd60e51b81528061375060048201613713565b0390fd5b61376861376361376d92610282565b610a3b565b612671565b90565b61377c61378191610ae1565b613754565b90565b61378c613641565b5061384260205f806137ae6137bc426137a36100e4565b92839187830161369d565b86820181038252038261061c565b6137ec6137c885612c3d565b6137de6137d36100e4565b9384928884016136b7565b86820181038252038261061c565b6137f4612c2d565b908481019051915afa61380e613808612ca7565b91612d29565b61383261381a826103e5565b61382c61382685613398565b91610282565b1461372b565b61383a61275e565b500151613770565b90565b61385961385461385e92611105565b610a3b565b610fbb565b90565b61386a90613845565b90565b939291613878610a34565b948061389461388e6138895f613861565b610ffa565b91610ffa565b1461395757604051813b156138df5760209394959650631626ba7e60e01b94858252600482015260648660248301978895604087528160448601528385013701915afa91511416905b565b93929190928060401461392f576041146138fc57505050506138dd565b60408092939496508101355f1a60205281375b5f526020600160805f825afa511860601b3d11915f6060526040526138dd565b509091929450602081013590601b8260ff1c016020523560405260011b60011c60605261390f565b50505050565b9061396661275e565b5061396f61275e565b50603f8251116040816020850151029301510290565b61398f60c0610645565b90565b606090565b5f90565b6139a3613985565b9060208080808080876139b46117fb565b8152016139bf613992565b8152016139ca611800565b8152016139d5611800565b8152016139e0613997565b8152016139eb613997565b81525050565b6139f961399b565b90565b90613a056139f1565b9180519060c0821015613a17575b5050565b60200190810190808051019081108260c083011117613aaa5780805101918160208101510190828210818311178385108286111717613aa35780825160208401011190845160208601011117613a9d5760a09285526020850152604081015160408501526060810151606085015260808101516080850152015160a08301525f80613a13565b50613a13565b5050613a13565b613a13565b613ab990516109a1565b90565b949391929094613aca610a34565b50613ae0613ad661275e565b9160018091613cf0565b95602085015190602082519201976040870151606088015190825191600d83017f226368616c6c656e6765223a220000000000000000000000000000000000000060981c85528c878483011060228386840101515f1a1416918481601389012092012014169186826014011090821760801c10907f2274797065223a22776562617574686e2e67657422000000000000000000000060581c908d015160581c141616915286515191151560021b600117806021895101511614906020831116169788613be7575b50505085613bb6575b50505050565b613bdd94955092613bd560a0613bce60808401613aaf565b9201613aaf565b919293613c40565b905f808080613bb0565b6020919293506001908288510183858201809782825198019460025afa831b5afa5191523d15613c19575f8080613ba7565bfe5b9190603f90613c2861275e565b50613c3161275e565b50116020818435029301350290565b9290939193613c4d610a34565b506040519384526020840152836040840152606083015260808201525f805260205f60a0836101005afa503d15613cac575b507f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a85f5160011491111090565b6d1ab2e8006fd8b71907bf06a5bdee3b15613cc7575b613c7f565b5f60a06020926dd01ea45f9efd5c54f037fa57ea1a5afa15613ce9575f613cc2565bfe5b606090565b929192613cfb613ceb565b93815180613d0a575b50505050565b90919294506003600282010460021b91610670604051967f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f5215027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f5260208601938385019280826020010195600460038851945f8a525b0191603f8351818160121c16515f538181600c1c1651600153818160061c165160025316516003535f518152019085821015613dd05790603f6003600493909150929192613d87565b50955f9460039360209252016040520660020490613d3d60f01b82860352151502809303520382525f808080613d0456fea264697066735822122003025b9d185e84afdbe943189eb9229c0384b99f2a333fba3c99e7c0e6a9851a64736f6c637829302e382e33312d646576656c6f702e323032352e31312e31322b636f6d6d69742e3637366264656363005a" + }, + "0x0000000000000000000000000000506172616d73": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b6104ac565b61001d5f3561008c565b80630ae9a1cb146100875780633705765414610082578063715018a61461007d5780638da5cb5b14610078578063b6c15add14610073578063ea01545d1461006e5763f2fde38b0361000e57610479565b610404565b61033e565b6102aa565b6101fb565b6101b2565b610112565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60ff1690565b6100b3816100a4565b036100ba57565b5f80fd5b905035906100cb826100aa565b565b906020828203126100e6576100e3915f016100be565b90565b61009c565b151590565b6100f9906100eb565b9052565b9190610110905f602085019401906100f0565b565b346101425761013e61012d6101283660046100cd565b610550565b610135610092565b918291826100fd565b0390f35b610098565b5190565b60209181520190565b90825f9392825e0152565b601f801991011690565b6101886101916020936101969361017f81610147565b9384809361014b565b95869101610154565b61015f565b0190565b6101af9160208201915f818403910152610169565b90565b346101e2576101de6101cd6101c83660046100cd565b61069d565b6101d5610092565b9182918261019a565b0390f35b610098565b5f9103126101f157565b61009c565b5f0190565b346102295761020b3660046101e7565b610213610836565b61021b610092565b80610225816101f6565b0390f35b610098565b1c90565b60018060a01b031690565b61024d906008610252930261022e565b610232565b90565b90610260915461023d565b90565b61026e5f5f90610255565b90565b60018060a01b031690565b61028590610271565b90565b6102919061027c565b9052565b91906102a8905f60208501940190610288565b565b346102da576102ba3660046101e7565b6102d66102c5610263565b6102cd610092565b91829182610295565b0390f35b610098565b90565b90565b90565b6102fc6102f7610301926102df565b6102e5565b6102e2565b90565b61030e60646102e8565b90565b610319610304565b90565b610325906102e2565b9052565b919061033c905f6020850194019061031c565b565b3461036e5761034e3660046101e7565b61036a610359610311565b610361610092565b91829182610329565b0390f35b610098565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156103b95781359167ffffffffffffffff83116103b45760200192600183028401116103af57565b61037b565b610377565b610373565b9190916040818403126103ff576103d7835f83016100be565b92602082013567ffffffffffffffff81116103fa576103f6920161037f565b9091565b6100a0565b61009c565b346104335761041d6104173660046103be565b91610bca565b610425610092565b8061042f816101f6565b0390f35b610098565b6104418161027c565b0361044857565b5f80fd5b9050359061045982610438565b565b9060208282031261047457610471915f0161044c565b90565b61009c565b346104a75761049161048c36600461045b565b610cb9565b610499610092565b806104a3816101f6565b0390f35b610098565b5f80fd5b5f90565b6104c86104c36104cd926100a4565b6102e5565b6100a4565b90565b906104da906104b4565b5f5260205260405f2090565b634e487b7160e01b5f52602260045260245ffd5b906001600283049216801561051a575b602083101461051557565b6104e6565b91607f169161050a565b61052e90546104fa565b90565b90565b61054861054361054d92610531565b6102e5565b6102e2565b90565b61056761056c9161055f6104b0565b5060016104d0565b610524565b61057e6105785f610534565b916102e2565b1190565b606090565b60209181520190565b5f5260205f2090565b905f92918054906105b36105ac836104fa565b8094610587565b916001811690815f1461060a57506001146105ce575b505050565b6105db9192939450610590565b915f925b8184106105f257505001905f80806105c9565b600181602092959395548486015201910192906105df565b92949550505060ff19168252151560200201905f80806105c9565b9061062f91610599565b90565b634e487b7160e01b5f52604160045260245ffd5b906106509061015f565b810190811067ffffffffffffffff82111761066a57604052565b610632565b9061068f6106889261067f610092565b93848092610625565b0383610646565b565b61069a9061066f565b90565b6106b46106b9916106ac610582565b5060016104d0565b610691565b90565b5f1c90565b6106cd6106d2916106bc565b610232565b90565b6106df90546106c1565b90565b336106fd6106f76106f25f6106d5565b61027c565b9161027c565b0361070c5761070a6107c7565b565b5f635fc483c560e01b815280610724600482016101f6565b0390fd5b61073c61073761074192610531565b6102e5565b610271565b90565b61074d90610728565b90565b5f1b90565b9061076660018060a01b0391610750565b9181191691161790565b61078461077f61078992610271565b6102e5565b610271565b90565b61079590610770565b90565b6107a19061078c565b90565b90565b906107bc6107b76107c392610798565b6107a4565b8254610755565b9055565b6107d05f6106d5565b6107e26107dc5f610744565b5f6107a7565b6107eb5f610744565b61081e6108187f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610798565b91610798565b91610827610092565b80610831816101f6565b0390a3565b61083e6106e2565b565b91903361085d6108576108525f6106d5565b61027c565b9161027c565b0361086d5761086b92610b18565b565b5f635fc483c560e01b815280610885600482016101f6565b0390fd5b5090565b9160206108ae9294936108a760408201965f83019061031c565b019061031c565b565b601f602091010490565b1b90565b919060086108d99102916108d35f19846108ba565b926108ba565b9181191691161790565b6108f76108f26108fc926102e2565b6102e5565b6102e2565b90565b90565b9190610918610913610920936108e3565b6108ff565b9083546108be565b9055565b5f90565b61093a91610934610924565b91610902565b565b5b818110610948575050565b806109555f600193610928565b0161093d565b9190601f811161096b575b505050565b61097761099c93610590565b906020610983846108b0565b830193106109a4575b610995906108b0565b019061093c565b5f8080610966565b91506109958192905061098c565b906109c2905f199060080261022e565b191690565b816109d1916109b2565b906002021790565b916109e49082610889565b9067ffffffffffffffff8211610aa357610a0882610a0285546104fa565b8561095b565b5f90601f8311600114610a3b57918091610a2a935f92610a2f575b50506109c7565b90555b565b90915001355f80610a23565b601f19831691610a4a85610590565b925f5b818110610a8b57509160029391856001969410610a71575b50505002019055610a2d565b610a81910135601f8416906109b2565b90555f8080610a65565b91936020600181928787013581550195019201610a4d565b610632565b90610ab392916109d9565b565b610abe906100a4565b9052565b90825f939282370152565b9190610ae781610ae081610aec9561014b565b8095610ac2565b61015f565b0190565b91610b15939192610b0860408201945f830190610ab5565b6020818503910152610acd565b90565b919091610b26838390610889565b610b3f610b39610b34610304565b6102e2565b916102e2565b11610b9957610b5b838390610b56600185906104d0565b610aa8565b919091610b947f660f700ec25321f4838828ca2284f96109a35e7b652e4511e8235bb7c2b9cc5193610b8b610092565b93849384610af0565b0390a1565b50610ba391610889565b610bab610304565b90610bc65f92839263a7075ceb60e01b84526004840161088d565b0390fd5b90610bd59291610840565b565b33610bf2610bec610be75f6106d5565b61027c565b9161027c565b03610c0257610c0090610c1e565b565b5f635fc483c560e01b815280610c1a600482016101f6565b0390fd5b80610c39610c33610c2e5f610744565b61027c565b9161027c565b14610c9d57610c475f6106d5565b610c51825f6107a7565b90610c85610c7f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610798565b91610798565b91610c8e610092565b80610c98816101f6565b0390a3565b5f63d92e233d60e01b815280610cb5600482016101f6565b0390fd5b610cc290610bd7565b56fea2646970667358221220441b2fc6b5144033f76820b0c8fa2708edeb583159e9e9b5ee6a07135997017f64736f6c637828302e382e33312d646576656c6f702e323032362e312e32332b636f6d6d69742e36373662646563630059", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0xd412c5ecd343e264381ff15afc0ad78a67b79f35" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff4b064b81555f359062001fff015500", + "balance": "0x0" + }, + "0x00000000219ab540356cbb839cbe05303d7705fa": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b6103b4565b61001d5f3561005c565b806301ffc9a714610057578063621fd1301461005257806379f6caf51461004d5763c5f2892f0361000e5761037f565b610327565b610197565b6100e8565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b63ffffffff60e01b1690565b61008981610074565b0361009057565b5f80fd5b905035906100a182610080565b565b906020828203126100bc576100b9915f01610094565b90565b61006c565b151590565b6100cf906100c1565b9052565b91906100e6905f602085019401906100c6565b565b34610118576101146101036100fe3660046100a3565b6103bc565b61010b610062565b918291826100d3565b0390f35b610068565b5f91031261012757565b61006c565b5190565b60209181520190565b90825f9392825e0152565b601f801991011690565b61016d61017660209361017b936101648161012c565b93848093610130565b95869101610139565b610144565b0190565b6101949160208201915f81840391015261014e565b90565b346101c7576101a736600461011d565b6101c36101b261046b565b6101ba610062565b9182918261017f565b0390f35b610068565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156102125781359167ffffffffffffffff831161020d57602001926001830284011161020857565b6101d4565b6101d0565b6101cc565b90565b61022381610217565b0361022a57565b5f80fd5b9050359061023b8261021a565b565b9160c08383031261031d575f83013567ffffffffffffffff811161031857826102679185016101d8565b929093602081013567ffffffffffffffff8111610313578261028a9183016101d8565b929093604083013567ffffffffffffffff811161030e57826102ad9185016101d8565b929093606081013567ffffffffffffffff811161030957826102d09183016101d8565b929093608083013567ffffffffffffffff8111610304576102f6836103019286016101d8565b93909460a00161022e565b90565b610070565b610070565b610070565b610070565b610070565b61006c565b5f0190565b61034761033536600461023d565b99989098979197969296959395611440565b61034f610062565b8061035981610322565b0390f35b61036690610217565b9052565b919061037d905f6020850194019061035d565b565b346103af5761038f36600461011d565b6103ab61039a611c35565b6103a2610062565b9182918261036a565b0390f35b610068565b5f80fd5b5f90565b6103c46103b8565b50806103df6103d96301ffc9a760e01b610074565b91610074565b149081156103ec575b5090565b9050610407610401636f0dc97560e11b610074565b91610074565b145f6103e8565b606090565b5f1c90565b90565b61042761042c91610413565b610418565b90565b610439905461041b565b90565b90565b67ffffffffffffffff1690565b90565b61046361045e6104689261043c565b61044c565b61043f565b90565b61047361040e565b5061048e610489610484602061042f565b61044f565b611fb9565b90565b5090565b90565b6104ac6104a76104b192610495565b61044c565b61043c565b90565b60209181520190565b60207f626b6579206c656e677468000000000000000000000000000000000000000000917f4465706f736974436f6e74726163743a20696e76616c6964206e6f64655f70755f8201520152565b610517602b6040926104b4565b610520816104bd565b0190565b6105399060208101905f81830391015261050a565b90565b1561054357565b61054b610062565b62461bcd60e51b81528061056160048201610524565b0390fd5b90565b61057c61057761058192610565565b61044c565b61043c565b90565b60207f75735f7075626b6579206c656e67746800000000000000000000000000000000917f4465706f736974436f6e74726163743a20696e76616c696420636f6e73656e735f8201520152565b6105de60306040926104b4565b6105e781610584565b0190565b6106009060208101905f8183039101526105d1565b90565b1561060a57565b610612610062565b62461bcd60e51b815280610628600482016105eb565b0390fd5b60207f77616c5f63726564656e7469616c73206c656e67746800000000000000000000917f4465706f736974436f6e74726163743a20696e76616c696420776974686472615f8201520152565b61068660366040926104b4565b61068f8161062c565b0190565b6106a89060208101905f818303910152610679565b90565b156106b257565b6106ba610062565b62461bcd60e51b8152806106d060048201610693565b0390fd5b90565b6106eb6106e66106f0926106d4565b61044c565b61043c565b90565b60207f676e6174757265206c656e677468000000000000000000000000000000000000917f4465706f736974436f6e74726163743a20696e76616c6964206e6f64655f73695f8201520152565b61074d602e6040926104b4565b610756816106f3565b0190565b61076f9060208101905f818303910152610740565b90565b1561077957565b610781610062565b62461bcd60e51b8152806107976004820161075a565b0390fd5b90565b6107b26107ad6107b79261079b565b61044c565b61043c565b90565b60207f75735f7369676e6174757265206c656e67746800000000000000000000000000917f4465706f736974436f6e74726163743a20696e76616c696420636f6e73656e735f8201520152565b61081460336040926104b4565b61081d816107ba565b0190565b6108369060208101905f818303910152610807565b90565b1561084057565b610848610062565b62461bcd60e51b81528061085e60048201610821565b0390fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015610886576001020190565b610862565b90565b6108a261089d6108a79261088b565b61044c565b61043c565b90565b60ff60f81b1690565b90565b60f81b90565b6108d06108cb6108d5926108b3565b6108b6565b6108aa565b90565b60207f77616c5f63726564656e7469616c732070726566697800000000000000000000917f4465706f736974436f6e74726163743a20696e76616c696420776974686472615f8201520152565b61093260366040926104b4565b61093b816108d8565b0190565b6109549060208101905f818303910152610925565b90565b1561095e57565b610966610062565b62461bcd60e51b81528061097c6004820161093f565b0390fd5b61099461098f610999926108b3565b61044c565b61043c565b90565b90565b6109b36109ae6109b89261099c565b61044c565b61043c565b90565b5f80fd5b5f80fd5b909392938483116109e35784116109de576001820201920390565b6109bf565b6109bb565b6affffffffffffffffffffff60a81b1690565b1b90565b90610a0d610a149183610491565b91356109e8565b90600b8110610a22575b5090565b610a41906affffffffffffffffffffff60a81b90600b036008026109fb565b165f610a1e565b60a81b90565b610a62610a5d610a679261088b565b610a48565b6109e8565b90565b60207f77616c5f63726564656e7469616c732070616464696e67000000000000000000917f4465706f736974436f6e74726163743a20696e76616c696420776974686472615f8201520152565b610ac460376040926104b4565b610acd81610a6a565b0190565b610ae69060208101905f818303910152610ab7565b90565b15610af057565b610af8610062565b62461bcd60e51b815280610b0e60048201610ad1565b0390fd5b90565b610b29610b24610b2e92610b12565b61044c565b61043c565b90565b60207f6f6f206c6f770000000000000000000000000000000000000000000000000000917f4465706f736974436f6e74726163743a206465706f7369742076616c756520745f8201520152565b610b8b60266040926104b4565b610b9481610b31565b0190565b610bad9060208101905f818303910152610b7e565b90565b15610bb757565b610bbf610062565b62461bcd60e51b815280610bd560048201610b98565b0390fd5b90565b610bf0610beb610bf592610bd9565b61044c565b61043c565b90565b634e487b7160e01b5f52601260045260245ffd5b610c18610c1e9161043c565b9161043c565b908115610c29570690565b610bf8565b60207f6f74206d756c7469706c65206f66206777656900000000000000000000000000917f4465706f736974436f6e74726163743a206465706f7369742076616c7565206e5f8201520152565b610c8860336040926104b4565b610c9181610c2e565b0190565b610caa9060208101905f818303910152610c7b565b90565b15610cb457565b610cbc610062565b62461bcd60e51b815280610cd260048201610c95565b0390fd5b634e487b7160e01b5f52601160045260245ffd5b610cf6610cfc9161043c565b9161043c565b908115610d07570490565b610bf8565b610d20610d1b610d259261043f565b61044c565b61043c565b90565b60207f6f6f206869676800000000000000000000000000000000000000000000000000917f4465706f736974436f6e74726163743a206465706f7369742076616c756520745f8201520152565b610d8260276040926104b4565b610d8b81610d28565b0190565b610da49060208101905f818303910152610d75565b90565b15610dae57565b610db6610062565b62461bcd60e51b815280610dcc60048201610d8f565b0390fd5b90825f939282370152565b9190610df581610dee81610dfa95610130565b8095610dd0565b610144565b0190565b9a969194610e6d96610e428d610e899f9d9b9897610e5f97610e34610e7b9f9a97610e519860e08601918683035f880152610ddb565b926020818503910152610ddb565b918d6040818503910152610ddb565b908a820360608c015261014e565b9188830360808a0152610ddb565b9185830360a0870152610ddb565b9160c081840391015261014e565b90565b6fffffffffffffffffffffffffffffffff191690565b60801b90565b610ebc610eb7610ec19261088b565b610ea2565b610e8c565b90565b905090565b909182610ed981610ee093610ec4565b8093610dd0565b0190565b90565b610ef3610ef891610e8c565b610ee4565b9052565b610f0d9060109493610f1493610ec9565b8092610ee7565b0190565b634e487b7160e01b5f52604160045260245ffd5b90610f3690610144565b810190811067ffffffffffffffff821117610f5057604052565b610f18565b5f1b90565b610f7f610f7692602092610f6d8161012c565b94858093610ec4565b93849101610139565b0190565b610f8c91610f5a565b90565b610f97610062565b3d5f823e3d90fd5b90565b610fae610fb391610217565b610f9f565b9052565b610fc89060209493610fcf93610ec9565b8092610fa2565b0190565b9091610fde92610ec9565b90565b9091610fec92610ec9565b90565b611003610ffe6110089261088b565b610f55565b610217565b90565b61101c906020949361102393610ec9565b8092610fa2565b0190565b60208161103961104193839695610fa2565b018092610fa2565b0190565b8061105660209261105d9694610fa2565b0191610ec9565b90565b67ffffffffffffffff191690565b60401b90565b61108861108361108d9261088b565b61106e565b611060565b90565b90565b61109f6110a491611060565b611090565b9052565b602093926110c56110be6018936110cd95610f5a565b8092611093565b018092610fa2565b0190565b60407f6564206465706f7369745f646174615f726f6f74000000000000000000000000917f4465706f736974436f6e74726163743a207265636f6e737472756374656420445f8201527f65706f7369744461746120646f6573206e6f74206d6174636820737570706c6960208201520152565b61115160546060926104b4565b61115a816110d1565b0190565b6111739060208101905f818303910152611144565b90565b1561117d57565b611185610062565b62461bcd60e51b81528061119b6004820161115e565b0390fd5b6111a96020610498565b90565b90565b6111c36111be6111c8926111ac565b61044c565b61043c565b90565b6111d49061043c565b60ff81116111e25760020a90565b610cd6565b6111f66111fc9193929361043c565b9261043c565b820391821161120757565b610cd6565b61122f61121f61121a61119f565b6111cb565b6112296001610980565b906111e7565b90565b60207f6c00000000000000000000000000000000000000000000000000000000000000917f4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c5f8201520152565b61128c60216040926104b4565b61129581611232565b0190565b6112ae9060208101905f81830391015261127f565b90565b156112b857565b6112c0610062565b62461bcd60e51b8152806112d660048201611299565b0390fd5b6112e96112ef9193929361043c565b9261043c565b82018092116112fa57565b610cd6565b9061130b5f1991610f55565b9181191691161790565b61132961132461132e9261043c565b61044c565b61043c565b90565b90565b9061134961134461135092611315565b611331565b82546112ff565b9055565b6001611360910161043c565b90565b50602090565b90565b61137581611363565b82101561138f57611387600191611369565b910201905f90565b610862565b919060086113af9102916113a95f19846109fb565b926109fb565b9181191691161790565b6113c290610217565b90565b6113ce90610413565b90565b91906113e76113e26113ef936113b9565b6113c5565b908354611394565b9055565b1c90565b90565b61140a90600861140f93026113f3565b6113f7565b90565b9061141d91546113fa565b90565b634e487b7160e01b5f52600160045260245ffd5b1561143b57565b611420565b9091989495979396929a999a818361145791610491565b602061146290610498565b9061146c9061043c565b146114769061053c565b898161148191610491565b603061148c90610568565b906114969061043c565b146114a090610603565b87876114ab91610491565b60206114b690610498565b906114c09061043c565b146114ca906106ab565b88846114d591610491565b60406114e0906106d7565b906114ea9061043c565b146114f490610772565b84866114ff91610491565b606061150a9061079e565b906115149061043c565b1461151e90610839565b87875f61152a9061088e565b9061153492610876565b3561153e906108aa565b6001611549906108bc565b90611553906108aa565b1461155d90610957565b87876001600c9061156d90610980565b906115779061099f565b91611581936109c3565b61158a916109ff565b5f61159490610a4e565b61159d906109e8565b906115a7906109e8565b146115b190610ae9565b34670de0b6b3a76400006115c490610b15565b906115ce9061043c565b10156115d990610bb0565b34633b9aca006115e890610bdc565b6115f191610c0c565b5f6115fb9061088e565b906116059061043c565b1461160f90610cad565b34633b9aca0061161e90610bdc565b61162791610cea565b8067ffffffffffffffff61163a90610d0c565b906116449061043c565b111561164f90610da7565b6116589061044f565b61166190611fb9565b99888a8c858b88928c8c8c89978b9995949091929394611681602061042f565b61168a9061044f565b61169390611fb9565b967f0cff1634a9a72df9d813ea7e3a3874a76086e081904ad3cf81e12e43f4d4c87a9b6116be610062565b9b8c9b6116cb9b8d610dfe565b0390a1905f6116d990610ea8565b916116e2610062565b92839260208401926116f393610efc565b6020820181038252036117069082610f2c565b61170e610062565b611719819282610f83565b03905a915f916002602094fa15611c03576117775f916117666020946117586117428651610f55565b93919361174d610062565b948593898501610fb7565b868201810382520382610f2c565b61176e610062565b91829182610f83565b039060025afa15611bfe575f6020916117908251610f55565b976117a561179c610062565b92839283610fd3565b039060025afa15611bf9576117ba5f51610f55565b9160205f6118136118026117dc86866040906117d687926106d7565b926109c3565b91906117f46117e9610062565b938492888401610fe1565b868201810382520382610f2c565b61180a610062565b91829182610f83565b039060025afa15611bf4575f6118896118786118496020946118358551610f55565b969061184160406106d7565b9080926109c3565b919061186a61185786610fef565b61185f610062565b94859389850161100b565b868201810382520382610f2c565b611880610062565b91829182610f83565b039060025afa15611bef575f6118de6020926118cd6118a88451610f55565b916118bf6118b4610062565b938492888401611027565b868201810382520382610f2c565b6118d5610062565b91829182610f83565b039060025afa15611bea575f6119336020926119226118fd8451610f55565b91611914611909610062565b938492888401611027565b868201810382520382610f2c565b61192a610062565b91829182610f83565b039060025afa15611be55761198b5f9161197a60209461196c6119568651610f55565b979193611961610062565b948593898501611045565b868201810382520382610f2c565b611982610062565b91829182610f83565b039060025afa15611be0575f6119ea6020926119d96119aa8451610f55565b956119cb6119b786611074565b936119c0610062565b9485938985016110a8565b868201810382520382610f2c565b6119e1610062565b91829182610f83565b039060025afa15611bdb575f611a3f602092611a2e611a098451610f55565b91611a20611a15610062565b938492888401611027565b868201810382520382610f2c565b611a36610062565b91829182610f83565b039060025afa15611bd657611a71611a575f51610f55565b92611a6b611a658592610217565b91610217565b14611176565b611a9d611a7e602061042f565b611a97611a91611a8c61120c565b61043c565b9161043c565b106112b1565b611ac3611abc611aad6001610980565b611ab7602061042f565b6112da565b6020611334565b611acd602061042f565b611ad65f61088e565b925b83611af2611aec611ae761119f565b61043c565b9161043c565b1015611bc75781611b036001610980565b16611b17611b116001610980565b9161043c565b14611bad575f611b6f602092611b5e611b3a611b34858a9061136c565b90611412565b611b50611b45610062565b938492888401611027565b868201810382520382610f2c565b611b66610062565b91829182610f83565b039060025afa15611ba857611ba1611b9b611b8a5f51610f55565b92611b9560026111af565b90610cea565b93611354565b9290611ad8565b610f8f565b611bc592939150611bbf90915f61136c565b906113d1565b565b50509050611bd45f611434565b565b610f8f565b610f8f565b610f8f565b610f8f565b610f8f565b610f8f565b610f8f565b610f8f565b610f8f565b610f8f565b5f90565b60189392602082611c23611c2a94611c3196610fa2565b0190610f5a565b8092611093565b0190565b611c3d611c08565b50611c46611c08565b90611c51602061042f565b611c5a5f61088e565b925b83611c76611c70611c6b61119f565b61043c565b9161043c565b1015611dad575f60209183611c8b6001610980565b16611c9f611c996001610980565b9161043c565b148214611d3557611cf690611ce5611cc1611cbb858a9061136c565b90611412565b611cd7611ccc610062565b938492888401611027565b868201810382520382610f2c565b611ced610062565b91829182610f83565b039060025afa15611d3057611d29611d23611d115f51610f55565b925b611d1d60026111af565b90610cea565b93611354565b9290611c5c565b610f8f565b611d8790611d76611d51611d4b60218a9061136c565b90611412565b91611d68611d5d610062565b938492888401611027565b868201810382520382610f2c565b611d7e610062565b91829182610f83565b039060025afa15611da857611d29611d23611da25f51610f55565b92611d13565b610f8f565b60209293505f9150611e1490611e03611dd5611dd0611dcb8761042f565b61044f565b611fb9565b91611df5611de286611074565b611dea610062565b948593898501611c0c565b868201810382520382610f2c565b611e0b610062565b91829182610f83565b039060025afa15611e2c57611e295f51610f55565b90565b610f8f565b90565b611e48611e43611e4d92611e31565b61044c565b61043c565b90565b90611e63611e5c610062565b9283610f2c565b565b67ffffffffffffffff8111611e8357611e7f602091610144565b0190565b610f18565b90611e9a611e9583611e65565b611e50565b918252565b369037565b90611ec9611eb183611e88565b92602080611ebf8693611e65565b9201910390611e9f565b565b67ffffffffffffffff60c01b1690565b60c01b90565b611ef5611ef0611efa9261043f565b611edb565b611ecb565b90565b90565b611f14611f0f611f1992611efd565b61044c565b61043c565b90565b90611f268261012c565b811015611f3857600160209102010190565b610862565b90565b611f54611f4f611f5992611f3d565b61044c565b61043c565b90565b90565b611f73611f6e611f7892611f5c565b61044c565b61043c565b90565b90565b611f92611f8d611f9792611f7b565b61044c565b61043c565b90565b90565b611fb1611fac611fb692611f9a565b61044c565b61043c565b90565b90611fc261040e565b50611fde611fd8611fd36008611e34565b611ea4565b92611ee1565b80611fe96007611f00565b9060088210156121c057611ffd911a6108b6565b6120148461200e5f935f1a9361088e565b90611f1c565b53806120206006611f40565b9060088210156121bb57612034911a6108b6565b61204c846120466001935f1a93610980565b90611f1c565b53806120586005611f5f565b9060088210156121b65761206c911a6108b6565b6120848461207e6002935f1a936111af565b90611f1c565b53806120906004611f7e565b9060088210156121b1576120a4911a6108b6565b6120bc846120b66003935f1a93611f9d565b90611f1c565b53806120c86003611f9d565b9060088210156121ac576120dc911a6108b6565b6120f4846120ee6004935f1a93611f7e565b90611f1c565b538061210060026111af565b9060088210156121a757612114911a6108b6565b61212c846121266005935f1a93611f5f565b90611f1c565b53806121386001610980565b9060088210156121a25761214c911a6108b6565b6121648461215e6006935f1a93611f40565b90611f1c565b5361216e5f61088e565b90600882101561219d57612182911a6108b6565b61219a836121946007935f1a93611f00565b90611f1c565b53565b610862565b610862565b610862565b610862565b610862565b610862565b610862565b61086256fea264697066735822122088155372033ad8432d1e232fd8b99b2efa9bf3139204e1cfb792a24e11e419ed64736f6c637828302e382e33312d646576656c6f702e323032362e312e32332b636f6d6d69742e36373662646563630059" + }, + "0x00000961ef480eb55e80d19ad83579a64c007002": { + "balance": "0x0", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd" + }, + "0x1000000000000000000000000000000000000001": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b61071b565b61001d5f3561007c565b806344c0b2bf146100775780637a737c37146100725780638da5cb5b1461006d57806391fef11614610068578063a409c6f0146100635763b115ce0d0361000e576106e6565b610605565b61052d565b61042a565b610397565b61023b565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100c49061009c565b810190811067ffffffffffffffff8211176100de57604052565b6100a6565b906100f66100ef610082565b92836100ba565b565b67ffffffffffffffff81116101165761011260209161009c565b0190565b6100a6565b90825f939282370152565b9092919261013b610136826100f8565b6100e3565b93818552602085019082840111610157576101559261011b565b565b610098565b9080601f8301121561017a5781602061017793359101610126565b90565b610094565b151590565b61018d8161017f565b0361019457565b5f80fd5b905035906101a582610184565b565b608081830312610231575f81013567ffffffffffffffff811161022c57826101d091830161015c565b92602082013567ffffffffffffffff811161022757836101f191840161015c565b9260408301359067ffffffffffffffff8211610222576102168161021f93860161015c565b93606001610198565b90565b610090565b610090565b610090565b61008c565b5f0190565b3461026d5761025761024e3660046101a7565b92919091610a62565b61025f610082565b8061026981610236565b0390f35b610088565b5f80fd5b5f80fd5b9190916080818403126103385761029160806100e3565b925f82013567ffffffffffffffff811161033357816102b191840161015c565b5f850152602082013567ffffffffffffffff811161032e57816102d591840161015c565b6020850152604082013567ffffffffffffffff811161032957816102fa91840161015c565b6040850152606082013567ffffffffffffffff81116103245761031d920161015c565b6060830152565b610276565b610276565b610276565b610276565b610272565b9060208282031261036d575f82013567ffffffffffffffff811161036857610365920161027a565b90565b610090565b61008c565b90565b61037e90610372565b9052565b9190610395905f60208501940190610375565b565b346103c7576103c36103b26103ad36600461033d565b610c35565b6103ba610082565b91829182610382565b0390f35b610088565b5f9103126103d657565b61008c565b60026001609c1b0190565b6103ee6103db565b90565b60018060a01b031690565b610405906103f1565b90565b610411906103fc565b9052565b9190610428905f60208501940190610408565b565b3461045a5761043a3660046103cc565b6104566104456103e6565b61044d610082565b91829182610415565b0390f35b610088565b9190916060818403126104f35761047660606100e3565b925f82013567ffffffffffffffff81116104ee578161049691840161015c565b5f850152602082013567ffffffffffffffff81116104e957816104ba91840161015c565b6020850152604082013567ffffffffffffffff81116104e4576104dd920161015c565b6040830152565b610276565b610276565b610276565b610272565b90602082820312610528575f82013567ffffffffffffffff811161052357610520920161045f565b90565b610090565b61008c565b3461055d576105596105486105433660046104f8565b610cdc565b610550610082565b91829182610382565b0390f35b610088565b916060838303126105de575f83013567ffffffffffffffff81116105d9578261058c91850161015c565b92602081013567ffffffffffffffff81116105d457836105ad91830161015c565b92604082013567ffffffffffffffff81116105cf576105cc920161015c565b90565b610090565b610090565b610090565b61008c565b6105ec9061017f565b9052565b9190610603905f602085019401906105e3565b565b346106365761063261062161061b366004610562565b91610d4f565b610629610082565b918291826105f0565b0390f35b610088565b61064481610372565b0361064b57565b5f80fd5b9050359061065c8261063b565b565b9060208282031261067757610674915f0161064f565b90565b61008c565b61068590610372565b90565b906106929061067c565b5f5260205260405f2090565b1c90565b60ff1690565b6106b89060086106bd930261069e565b6106a2565b90565b906106cb91546106a8565b90565b6106e3906106de5f915f92610688565b6106c0565b90565b34610716576107126107016106fc36600461065e565b6106ce565b610709610082565b918291826105f0565b0390f35b610088565b5f80fd5b60209181520190565b5f7f4f6e6c79206f776e65722063616e207365742073746174757300000000000000910152565b61075c601960209261071f565b61076581610728565b0190565b61077e9060208101905f81830391015261074f565b90565b1561078857565b610790610082565b62461bcd60e51b8152806107a660048201610769565b0390fd5b5190565b90565b90565b90565b6107cb6107c66107d0926107b1565b6107b4565b6107ae565b90565b5f7f496e76616c6964206d727464206c656e67746800000000000000000000000000910152565b610807601360209261071f565b610810816107d3565b0190565b6108299060208101905f8183039101526107fa565b90565b1561083357565b61083b610082565b62461bcd60e51b81528061085160048201610814565b0390fd5b5f7f496e76616c6964206d727365616d206c656e6774680000000000000000000000910152565b610889601560209261071f565b61089281610855565b0190565b6108ab9060208101905f81830391015261087c565b90565b156108b557565b6108bd610082565b62461bcd60e51b8152806108d360048201610896565b0390fd5b90565b6108ee6108e96108f3926108d7565b6107b4565b6107ae565b90565b5f7f496e76616c69642070637234206c656e67746800000000000000000000000000910152565b61092a601360209261071f565b610933816108f6565b0190565b61094c9060208101905f81830391015261091d565b90565b1561095657565b61095e610082565b62461bcd60e51b81528061097460048201610937565b0390fd5b61098260606100e3565b90565b52565b5f1b90565b9061099960ff91610988565b9181191691161790565b6109ac9061017f565b90565b90565b906109c76109c26109ce926109a3565b6109af565b825461098d565b9055565b60209181520190565b90825f9392825e0152565b610a05610a0e602093610a13936109fc816107aa565b938480936109d2565b958691016109db565b61009c565b0190565b949391610a6093610a4a610a5892610a3c60609560808b01908b82035f8d01526109e6565b9089820360208b01526109e6565b9087820360408901526109e6565b9401906105e3565b565b610b7990610a8933610a83610a7d610a786103db565b6103fc565b916103fc565b14610781565b610aae610a95826107aa565b610aa8610aa260306107b7565b916107ae565b1461082c565b610ad3610aba846107aa565b610acd610ac760306107b7565b916107ae565b146108ae565b610af8610adf856107aa565b610af2610aec60206108da565b916107ae565b1461094f565b610b43610b3382610b2e86610b258991610b1c610b13610978565b955f8701610985565b60208501610985565b60408301610985565b610cdc565b610b3e87915f610688565b6109b2565b9192937ffbd013ecb3bb070127bc1b1186c451c2a5778c62b56de1db228acce4c28038ea94610b70610082565b94859485610a17565b0390a1565b5f90565b60209181520190565b610baa610bb3602093610bb893610ba1816107aa565b93848093610b82565b958691016109db565b61009c565b0190565b610c14916060610c03610bf1610bdf608085015f8701518682035f880152610b8b565b60208601518582036020870152610b8b565b60408501518482036040860152610b8b565b920151906060818403910152610b8b565b90565b610c2c9160208201915f818403910152610bbc565b90565b60200190565b610c68610c5991610c44610b7e565b50610c4d610082565b92839160208301610c17565b602082018103825203826100ba565b610c7a610c74826107aa565b91610c2f565b2090565b610cc1916040610cb0610c9e606084015f8601518582035f870152610b8b565b60208501518482036020860152610b8b565b920151906040818403910152610b8b565b90565b610cd99160208201915f818403910152610c7e565b90565b610d0f610d0091610ceb610b7e565b50610cf4610082565b92839160208301610cc4565b602082018103825203826100ba565b610d21610d1b826107aa565b91610c2f565b2090565b5f90565b5f1c90565b610d3a610d3f91610d29565b6106a2565b90565b610d4c9054610d2e565b90565b610e0b91610e00610e1094610df7610e0594610d69610d25565b50610d8f610d76826107aa565b610d89610d8360306107b7565b916107ae565b1461082c565b610db4610d9b866107aa565b610dae610da860306107b7565b916107ae565b146108ae565b610dd9610dc0846107aa565b610dd3610dcd60206108da565b916107ae565b1461094f565b93610dee610de5610978565b955f8701610985565b60208501610985565b60408301610985565b610cdc565b5f610688565b610d42565b9056fea26469706673582212209c9e77189674da6a0061a74e49989970b3eebaadb84294b33acb051b808ab37164736f6c637829302e382e33312d646576656c6f702e323032352e31312e31322b636f6d6d69742e3637366264656363005a" + }, + "0x1000000000000000000000000000000000000002": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b6109af565b61001d5f356100ec565b806325c99ae4146100e757806334107282146100e257806338c0ac5f146100dd5780633eeb92f6146100d85780634456251b146100d357806346a67577146100ce578063894f449c146100c95780639386775a146100c45780639f2ce678146100bf578063a1695993146100ba578063a9fcfb33146100b5578063cc3c74a1146100b05763e28ba0340361000e57610978565b610943565b6108c2565b61085d565b6107f9565b610791565b610673565b6105ab565b610382565b6102de565b610286565b61022e565b6101a8565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f91031261010a57565b6100fc565b60018060a01b031690565b90565b61013161012c6101369261010f565b61011a565b61010f565b90565b6101429061011d565b90565b61014e90610139565b90565b610160600180609c1b01610145565b90565b61016b610151565b90565b6101779061011d565b90565b6101839061016e565b90565b61018f9061017a565b9052565b91906101a6905f60208501940190610186565b565b346101d8576101b8366004610100565b6101d46101c3610163565b6101cb6100f2565b91829182610193565b0390f35b6100f8565b73f39fd6e51aad88f6f4ce6ab8827279cfffb9226690565b6101fd6101dd565b90565b6102099061010f565b90565b61021590610200565b9052565b919061022c905f6020850194019061020c565b565b3461025e5761023e366004610100565b61025a6102496101f5565b6102516100f2565b91829182610219565b0390f35b6100f8565b7370997970c51812dc3a010c7d01b50e0d17dc79c890565b610283610263565b90565b346102b657610296366004610100565b6102b26102a161027b565b6102a96100f2565b91829182610219565b0390f35b6100f8565b733c44cdddb6a900fa2b585dd299e03d12fa4293bc90565b6102db6102bb565b90565b3461030e576102ee366004610100565b61030a6102f96102d3565b6103016100f2565b91829182610219565b0390f35b6100f8565b5f80fd5b90565b61032381610317565b0361032a57565b5f80fd5b9050359061033b8261031a565b565b9060208282031261035657610353915f0161032e565b90565b6100fc565b151590565b6103699061035b565b9052565b9190610380905f60208501940190610360565b565b346103b2576103ae61039d61039836600461033d565b610a4b565b6103a56100f2565b9182918261036d565b0390f35b6100f8565b5f80fd5b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906103e7906103bf565b810190811067ffffffffffffffff82111761040157604052565b6103c9565b906104196104126100f2565b92836103dd565b565b67ffffffffffffffff8111610439576104356020916103bf565b0190565b6103c9565b90825f939282370152565b9092919261045e6104598261041b565b610406565b9381855260208501908284011161047a576104789261043e565b565b6103bb565b9080601f8301121561049d5781602061049a93359101610449565b90565b6103b7565b6104ab8161035b565b036104b257565b5f80fd5b905035906104c3826104a2565b565b90565b6104d1816104c5565b036104d857565b5f80fd5b905035906104e9826104c8565b565b919060a083820312610584575f83013567ffffffffffffffff811161057f578161051691850161047f565b92602081013567ffffffffffffffff811161057a578261053791830161047f565b92604082013567ffffffffffffffff81116105755761055b8461057292850161047f565b9361056981606086016104b6565b936080016104dc565b90565b610313565b610313565b610313565b6100fc565b61059290610317565b9052565b91906105a9905f60208501940190610589565b565b346105df576105db6105ca6105c13660046104eb565b93929092610d6a565b6105d26100f2565b91829182610596565b0390f35b6100f8565b60808183031261066e575f81013567ffffffffffffffff8111610669578261060d91830161047f565b92602082013567ffffffffffffffff8111610664578361062e91840161047f565b9260408301359067ffffffffffffffff821161065f576106538161065c93860161047f565b936060016104b6565b90565b610313565b610313565b610313565b6100fc565b346106a7576106a36106926106893660046105e4565b929190916111fc565b61069a6100f2565b91829182610596565b0390f35b6100f8565b6106b581610200565b036106bc57565b5f80fd5b905035906106cd826106ac565b565b91906040838203126106f757806106eb6106f4925f860161032e565b936020016106c0565b90565b6100fc565b61070590610317565b90565b90610712906106fc565b5f5260205260405f2090565b6107279061016e565b90565b906107349061071e565b5f5260205260405f2090565b1c90565b60ff1690565b61075a90600861075f9302610740565b610744565b90565b9061076d915461074a565b90565b61078961078e926107846001935f94610708565b61072a565b610762565b90565b346107c2576107be6107ad6107a73660046106cf565b90610770565b6107b56100f2565b9182918261036d565b0390f35b6100f8565b91906040838203126107ef57806107e36107ec925f860161032e565b936020016104b6565b90565b6100fc565b5f0190565b346108285761081261080c3660046107c7565b90611469565b61081a6100f2565b80610824816107f4565b0390f35b6100f8565b610836906104c5565b9052565b91602061085b92949361085460408201965f83019061082d565b019061082d565b565b3461088e5761087561087036600461033d565b6115aa565b9061088a6108816100f2565b9283928361083a565b0390f35b6100f8565b9061089d906106fc565b5f5260205260405f2090565b6108bf906108ba6002915f92610893565b610762565b90565b346108f2576108ee6108dd6108d836600461033d565b6108a9565b6108e56100f2565b9182918261036d565b0390f35b6100f8565b90565b61090a90600861090f9302610740565b6108f7565b90565b9061091d91546108fa565b90565b61092b5f5f90610912565b90565b9190610941905f6020850194019061082d565b565b3461097357610953366004610100565b61096f61095e610920565b6109666100f2565b9182918261092e565b0390f35b6100f8565b346109aa5761099461098b3660046104eb565b93929092611772565b61099c6100f2565b806109a6816107f4565b0390f35b6100f8565b5f80fd5b5f90565b5f1c90565b6109c86109cd916109b7565b610744565b90565b6109da90546109bc565b90565b90565b6109f46109ef6109f9926109dd565b61011a565b6104c5565b90565b634e487b7160e01b5f52601160045260245ffd5b610a19906104c5565b5f198114610a275760010190565b6109fc565b90565b610a43610a3e610a4892610a2c565b61011a565b6104c5565b90565b610a536109b3565b50610a68610a6360028390610893565b6109d0565b610b4657610a755f6109e0565b90610a9b610a96610a8860018490610708565b610a906101dd565b9061072a565b6109d0565b610b36575b610ac5610ac0610ab260018490610708565b610aba610263565b9061072a565b6109d0565b610b19575b610ae9610adb610aee926001610708565b610ae36102bb565b9061072a565b6109d0565b610b0b575b610b06610b006002610a2f565b916104c5565b101590565b610b1490610a10565b610af3565b90610ae9610adb610b2c610aee93610a10565b9392505050610aca565b90610b4090610a10565b90610aa0565b505f90565b5f90565b610b596060610406565b90565b52565b5f80fd5b60e01b90565b90505190610b768261031a565b565b90602082820312610b9157610b8e915f01610b69565b90565b6100fc565b5190565b60209181520190565b90825f9392825e0152565b610bcd610bd6602093610bdb93610bc481610b96565b93848093610b9a565b95869101610ba3565b6103bf565b0190565b610c22916040610c11610bff606084015f8601518582035f870152610bae565b60208501518482036020860152610bae565b920151906040818403910152610bae565b90565b610c3a9160208201915f818403910152610bdf565b90565b610c456100f2565b3d5f823e3d90fd5b60209181520190565b60207f6564000000000000000000000000000000000000000000000000000000000000917f757067726164654f70657261746f722e636f6d7075746549645631206661696c5f8201520152565b610cb06022604092610c4d565b610cb981610c56565b0190565b610cd29060208101905f818303910152610ca3565b90565b90565b610ce4610ce991610317565b610cd5565b9052565b60f81b90565b610cfc90610ced565b90565b610d0890610cf3565b90565b610d17610d1c9161035b565b610cff565b9052565b90565b610d2f610d34916104c5565b610d20565b9052565b60209392610d588583610d50600195610d6097610cd8565b018092610d0b565b018092610d23565b0190565b60200190565b91610d9a610da39293610d7b610b4b565b5093610d91610d88610b4f565b955f8701610b5c565b60208501610b5c565b60408301610b5c565b90610de96020610db1610b4b565b93610dc2610dbd610151565b61017a565b610dde6391fef116610dd26100f2565b95869485938493610b63565b835260048301610c25565b03915afa80915f92610e78575b50155f14610e6a57506001610e4857610e23610e32925b9193610e176100f2565b94859360208501610d38565b602082018103825203826103dd565b610e44610e3e82610b96565b91610d64565b2090565b610e506100f2565b62461bcd60e51b815280610e6660048201610cbd565b0390fd5b610e329250610e2390610e0d565b610e9a91925060203d8111610ea1575b610e9281836103dd565b810190610b78565b905f610df6565b503d610e88565b90565b610ebf610eba610ec492610ea8565b61011a565b6104c5565b90565b5f7f496e76616c6964206d727464206c656e67746800000000000000000000000000910152565b610efb6013602092610c4d565b610f0481610ec7565b0190565b610f1d9060208101905f818303910152610eee565b90565b15610f2757565b610f2f6100f2565b62461bcd60e51b815280610f4560048201610f08565b0390fd5b5f7f496e76616c6964206d727365616d206c656e6774680000000000000000000000910152565b610f7d6015602092610c4d565b610f8681610f49565b0190565b610f9f9060208101905f818303910152610f70565b90565b15610fa957565b610fb16100f2565b62461bcd60e51b815280610fc760048201610f8a565b0390fd5b90565b610fe2610fdd610fe792610fcb565b61011a565b6104c5565b90565b5f7f496e76616c69642070637234206c656e67746800000000000000000000000000910152565b61101e6013602092610c4d565b61102781610fea565b0190565b6110409060208101905f818303910152611011565b90565b1561104a57565b6110526100f2565b62461bcd60e51b8152806110686004820161102b565b0390fd5b61107861107d916109b7565b6108f7565b90565b61108a905461106c565b90565b5f1b90565b9061109e5f199161108d565b9181191691161790565b6110bc6110b76110c1926104c5565b61011a565b6104c5565b90565b90565b906110dc6110d76110e3926110a8565b6110c4565b8254611092565b9055565b5f7f50726f706f73616c20616c726561647920657865637574656400000000000000910152565b61111b6019602092610c4d565b611124816110e7565b0190565b61113d9060208101905f81830391015261110e565b90565b1561114757565b61114f6100f2565b62461bcd60e51b81528061116560048201611128565b0390fd5b60209181520190565b61119161119a60209361119f9361118881610b96565b93848093611169565b95869101610ba3565b6103bf565b0190565b959492936111e46111fa956111d6896080966111c96111f2975f60a0850194019061082d565b8b820360208d0152611172565b9089820360408b0152611172565b908782036060890152611172565b940190610360565b565b9290611206610b4b565b5061122c61121385610b96565b6112266112206030610eab565b916104c5565b14610f20565b61125161123882610b96565b61124b6112456030610eab565b916104c5565b14610fa2565b61127661125d84610b96565b61127061126a6020610fce565b916104c5565b14611043565b61129061128a6112855f611080565b610a10565b5f6110c7565b6112a784828585916112a15f611080565b93610d6a565b936112cd6112c86112c26112bd60028990610893565b6109d0565b1561035b565b611140565b61131a85936112db5f611080565b9293956113087fc608a3fb719bb3f084c89497286b28154f3baeaf8b21efd34fafa4bab23daf0c966106fc565b966113116100f2565b958695866111a3565b0390a290565b5f7f4e6f7420617574686f72697a656420746f20766f746500000000000000000000910152565b6113546016602092610c4d565b61135d81611320565b0190565b6113769060208101905f818303910152611347565b90565b1561138057565b6113886100f2565b62461bcd60e51b81528061139e60048201611361565b0390fd5b5f7f416c726561647920766f74656400000000000000000000000000000000000000910152565b6113d6600d602092610c4d565b6113df816113a2565b0190565b6113f89060208101905f8183039101526113c9565b90565b1561140257565b61140a6100f2565b62461bcd60e51b815280611420600482016113e3565b0390fd5b9061143060ff9161108d565b9181191691161790565b6114439061035b565b90565b90565b9061145e6114596114659261143a565b611446565b8254611424565b9055565b3361148361147d6114786101dd565b610200565b91610200565b148015611585575b801561155f575b61149b90611379565b6114c06114bb6114b56114b060028590610893565b6109d0565b1561035b565b611140565b6114ef6114ea6114e46114df6114d860018690610708565b339061072a565b6109d0565b1561035b565b6113fb565b61150e8261150961150260018590610708565b339061072a565b611449565b9033909161155a6115486115427f8b40665146691327ee30f5bf56e9b2d6f445d2830d3b09b56385cd30f630ecfb936106fc565b9361071e565b936115516100f2565b9182918261036d565b0390a3565b5061149b3361157d6115776115726102bb565b610200565b91610200565b149050611492565b50336115a061159a611595610263565b610200565b91610200565b1461148b565b5f90565b906115b36115a6565b6115bb6115a6565b926115e16115dc6115ce60018490610708565b6115d66101dd565b9061072a565b6109d0565b61167c575b61160b6116066115f860018490610708565b611600610263565b9061072a565b6109d0565b611655575b61162f611621611634926001610708565b6116296102bb565b9061072a565b6109d0565b61163d575b9190565b61164961164f91610a10565b92610a10565b91611639565b929061162f61162161167261166c61163494610a10565b94610a10565b9592505050611610565b929061168a61169091610a10565b91610a10565b926115e6565b5f7f496e73756666696369656e7420766f7465730000000000000000000000000000910152565b6116ca6012602092610c4d565b6116d381611696565b0190565b6116ec9060208101905f8183039101526116bd565b90565b156116f657565b6116fe6100f2565b62461bcd60e51b815280611714600482016116d7565b0390fd5b5f91031261172257565b6100fc565b9493916117709361175a6117689261174c60609560808b01908b82035f8d0152611172565b9089820360208b0152611172565b908782036040890152611172565b940190610360565b565b919293611786908390838690889293610d6a565b936117ac6117a76117a161179c60028990610893565b6109d0565b1561035b565b611140565b6118506117b85f6109e0565b6117dd6117d86117ca60018a90610708565b6117d26101dd565b9061072a565b6109d0565b611955575b6118076118026117f460018a90610708565b6117fc610263565b9061072a565b6109d0565b611947575b61183161182c61181e60018a90610708565b6118266102bb565b9061072a565b6109d0565b611939575b6118496118436002610a2f565b916104c5565b10156116ef565b611866600161186160028890610893565b611449565b611876611871610151565b61017a565b906344c0b2bf93929490823b15611934575f946118b186926118a69461189a6100f2565b998a9889978896610b63565b865260048601611727565b03925af1801561192f57611903575b506118eb7f7b1bcf1ccf901a11589afff5504d59fd0a53780eed2a952adade0348985139e0916106fc565b906118f46100f2565b806118fe816107f4565b0390a2565b611922905f3d8111611928575b61191a81836103dd565b810190611718565b5f6118c0565b503d611910565b610c3d565b610b5f565b61194290610a10565b611836565b61195090610a10565b61180c565b61195e90610a10565b6117e256fea26469706673582212202d96e5873e9f4e8c9465739f2343b8fa8881d1850ca80037522a66301dbd4bff64736f6c637829302e382e33312d646576656c6f702e323032352e31312e31322b636f6d6d69742e3637366264656363005a" + }, + "0x1000000000000000000000000000000000000003": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b61049a565b61001d5f3561006c565b8063415028a914610067578063727c346d14610062578063ad28a8161461005d578063baefa307146100585763e8d6c79a0361000e5761046e565b6103db565b61036d565b6102ff565b610245565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100b090610088565b810190811067ffffffffffffffff8211176100ca57604052565b610092565b906100e26100db610072565b92836100a6565b565b67ffffffffffffffff8111610102576100fe602091610088565b0190565b610092565b90825f939282370152565b90929192610127610122826100e4565b6100cf565b938185526020850190828401116101435761014192610107565b565b610084565b9080601f830112156101665781602061016393359101610112565b90565b610080565b6bffffffffffffffffffffffff1690565b6101858161016b565b0361018c57565b5f80fd5b9050359061019d8261017c565b565b91906040838203126101df575f8301359067ffffffffffffffff82116101da576101ce816101d7938601610148565b93602001610190565b90565b61007c565b610078565b5190565b60209181520190565b90825f9392825e0152565b61021b61022460209361022993610212816101e4565b938480936101e8565b958691016101f1565b610088565b0190565b6102429160208201915f8184039101526101fc565b90565b61026d61025c61025636600461019f565b90610513565b610264610072565b9182918261022d565b0390f35b5f91031261027b57565b610078565b90565b60018060a01b031690565b90565b6102a56102a06102aa92610280565b61028e565b610283565b90565b6102b690610291565b90565b6102c360686102ad565b90565b6102ce6102b9565b90565b6102da90610283565b90565b6102e6906102d1565b9052565b91906102fd905f602085019401906102dd565b565b61030a366004610271565b6103266103156102c6565b61031d610072565b918291826102ea565b0390f35b90565b61034161033c6103469261032a565b61028e565b610283565b90565b6103529061032d565b90565b61035f6067610349565b90565b61036a610355565b90565b610378366004610271565b610394610383610362565b61038b610072565b918291826102ea565b0390f35b90565b6103af6103aa6103b492610398565b61028e565b610283565b90565b6103c09061039b565b90565b6103cd60666103b7565b90565b6103d86103c3565b90565b6103e6366004610271565b6104026103f16103d0565b6103f9610072565b918291826102ea565b0390f35b90602082820312610436575f82013567ffffffffffffffff81116104315761042e9201610148565b90565b61007c565b610078565b6104449061016b565b9052565b9291602061046461046c9360408701908782035f8901526101fc565b94019061043b565b565b61048161047c366004610406565b610739565b9061049661048d610072565b92839283610448565b0390f35b5f80fd5b606090565b905090565b6104cd6104c4926020926104bb816101e4565b948580936104a3565b938491016101f1565b0190565b60a01b90565b6104e0906104d1565b90565b6104ef6104f49161016b565b6104d7565b9052565b61050861050f91600c94936104a8565b80926104e3565b0190565b6105469061051f61049e565b5061053761052b610072565b938492602084016104f8565b602082018103825203826100a6565b90565b5f90565b90565b90565b61056761056261056c9261054d565b61028e565b610550565b90565b634e487b7160e01b5f52601160045260245ffd5b61059261059891939293610550565b92610550565b82039182116105a357565b61056f565b906105ba6105b5836100e4565b6100cf565b918252565b369037565b906105e96105d1836105a8565b926020806105df86936100e4565b92019103906105bf565b565b90565b6106026105fd610607926105eb565b61028e565b610550565b90565b60016106169101610550565b90565b634e487b7160e01b5f52603260045260245ffd5b90610637826101e4565b81101561064957600160209102010190565b610619565b60ff60f81b1690565b610661905161064e565b90565b61067361067991939293610550565b92610550565b820180921161068457565b61056f565b60200190565b6bffffffffffffffffffffffff60a01b1690565b6106ad905161068f565b90565b1b90565b6106ce6106c96106c3836101e4565b92610689565b6106a3565b90600c81106106dc575b5090565b6106fc906bffffffffffffffffffffffff60a01b90600c036008026106b0565b165f6106d8565b60a01c90565b61071d6107186107229261016b565b61028e565b61016b565b90565b61073161073691610703565b610709565b90565b9061074261049e565b5061074b610549565b50610768610758836101e4565b610762600c610553565b90610583565b610771816105c4565b9061077b5f6105ee565b5b8061078f61078984610550565b91610550565b10156107c6576107c1906107ac6107a787839061062d565b610657565b6107bb859183905f1a9261062d565b5361060a565b61077c565b50926107da6107d5600c610553565b6105c4565b916107e45f6105ee565b5b806107f96107f3600c610553565b91610550565b101561083a576108359061082061081b856108158a8590610664565b9061062d565b610657565b61082f869183905f1a9261062d565b5361060a565b6107e5565b5093505061084a61084f916106b4565b610725565b9056fea2646970667358221220f9203a71c0b6a6da16bf7b2698301c72ec306733882bb85b4d6d1038767c731464736f6c637829302e382e33312d646576656c6f702e323032352e31312e31322b636f6d6d69742e3637366264656363005a" + }, + "0x1000000000000000000000000000000000000004": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b610694565b61001d5f356100ac565b8063210ca7be146100a7578063415028a9146100a257806370df09331461009d57806382678dd6146100985780638b2f9fd114610093578063affed0e01461008e578063b7f5f9b714610089578063e8d6c79a146100845763eefbaf180361000e5761065f565b610604565b6105a8565b61052e565b61048d565b6103d9565b610372565b6102f3565b610245565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906100f4906100cc565b810190811067ffffffffffffffff82111761010e57604052565b6100d6565b9061012661011f6100b2565b92836100ea565b565b67ffffffffffffffff8111610146576101426020916100cc565b0190565b6100d6565b90825f939282370152565b9092919261016b61016682610128565b610113565b93818552602085019082840111610187576101859261014b565b565b6100c8565b9080601f830112156101aa578160206101a793359101610156565b90565b6100c4565b906020828203126101df575f82013567ffffffffffffffff81116101da576101d7920161018c565b90565b6100c0565b6100bc565b5190565b60209181520190565b90825f9392825e0152565b61021b61022460209361022993610212816101e4565b938480936101e8565b958691016101f1565b6100cc565b0190565b6102429160208201915f8184039101526101fc565b90565b346102755761027161026061025b3660046101af565b610713565b6102686100b2565b9182918261022d565b0390f35b6100b8565b6bffffffffffffffffffffffff1690565b6102948161027a565b0361029b57565b5f80fd5b905035906102ac8261028b565b565b91906040838203126102ee575f8301359067ffffffffffffffff82116102e9576102dd816102e693860161018c565b9360200161029f565b90565b6100c0565b6100bc565b346103245761032061030f6103093660046102ae565b906107b7565b6103176100b2565b9182918261022d565b0390f35b6100b8565b90565b61033581610329565b0361033c57565b5f80fd5b9050359061034d8261032c565b565b9060208282031261036857610365915f01610340565b90565b6100bc565b5f0190565b346103a05761038a61038536600461034f565b610847565b6103926100b2565b8061039c8161036d565b0390f35b6100b8565b5f9103126103af57565b6100bc565b90565b6103c0906103b4565b9052565b91906103d7905f602085019401906103b7565b565b34610409576103e93660046103a5565b6104056103f46108be565b6103fc6100b2565b918291826103c4565b0390f35b6100b8565b60018060a01b031690565b6104229061040e565b90565b61042e81610419565b0361043557565b5f80fd5b9050359061044682610425565b565b906020828203126104615761045e915f01610439565b90565b6100bc565b151590565b61047490610466565b9052565b919061048b905f6020850194019061046b565b565b346104bd576104b96104a86104a3366004610448565b610908565b6104b06100b2565b91829182610478565b0390f35b6100b8565b1c90565b6bffffffffffffffffffffffff1690565b6104e79060086104ec93026104c2565b6104c6565b90565b906104fa91546104d7565b90565b61050960015f906104ef565b90565b6105159061027a565b9052565b919061052c905f6020850194019061050c565b565b3461055e5761053e3660046103a5565b61055a6105496104fd565b6105516100b2565b91829182610519565b0390f35b6100b8565b9190916040818403126105a35761057c835f8301610439565b92602082013567ffffffffffffffff811161059e5761059b920161018c565b90565b6100c0565b6100bc565b346105d9576105d56105c46105be366004610563565b906109fe565b6105cc6100b2565b9182918261022d565b0390f35b6100b8565b929160206105fa6106029360408701908782035f8901526101fc565b94019061050c565b565b346106355761061c6106173660046101af565b610c1b565b906106316106286100b2565b928392836105de565b0390f35b6100b8565b90565b6106469061063a565b9052565b919061065d905f6020850194019061063d565b565b3461068f5761068b61067a610675366004610448565b610d60565b6106826100b2565b9182918261064a565b0390f35b6100b8565b5f80fd5b606090565b90565b6106b46106af6106b99261040e565b61069d565b61040e565b90565b6106c5906106a0565b90565b6106d1906106bc565b90565b906106de906106c8565b5f5260205260405f2090565b5f1c90565b90565b6106fe610703916106ea565b6106ef565b90565b61071090b06106f2565b90565b61072861074491610722610698565b50610c1b565b9061073c6107375f33906106d4565b610706565b919091610e44565b90565b905090565b6107716107689260209261075f816101e4565b94858093610747565b938491016101f1565b0190565b60a01b90565b61078490610775565b90565b6107936107989161027a565b61077b565b9052565b6107ac6107b391600c949361074c565b8092610787565b0190565b6107ea906107c3610698565b506107db6107cf6100b2565b9384926020840161079c565b602082018103825203826100ea565b90565b5f1b90565b906107fe5f19916107ed565b9181191691161790565b61081c61081761082192610329565b61069d565b610329565b90565b90565b9061083c61083761084392610808565b610824565b82b06107f2565b90b1565b61085b906108565f33906106d4565b610827565b336108867fe09b54ab39b458cc6e350a9444815a294301d94eaa79ba68d8a2f9f9c7c0b4cc916106c8565b9061088f6100b2565b806108998161036d565b0390a2565b5f90565b6108b66108b16108bb92610329565b61069d565b6103b4565b90565b6108c661089e565b506108e26108dd6108d85f33906106d4565b610706565b6108a2565b90565b5f90565b90565b6109006108fb610905926108e9565b61069d565b610329565b90565b61091e610923916109176108e5565b505f6106d4565b610706565b61093d6109376109325f6108ec565b610329565b91610329565b141590565b61094e610953916106ea565b6104c6565b90565b6109609054610942565b90565b634e487b7160e01b5f52601160045260245ffd5b6109809061027a565b6bffffffffffffffffffffffff81146109995760010190565b610963565b906109b56bffffffffffffffffffffffff916107ed565b9181191691161790565b6109d36109ce6109d89261027a565b61069d565b61027a565b90565b90565b906109f36109ee6109fa926109bf565b6109db565b825461099e565b9055565b610a4291610a20610a1b610a3293610a14610698565b505f6106d4565b610706565b90610a2b6001610956565b9091610efd565b610a3c6001610956565b906107b7565b610a5e610a57610a526001610956565b610977565b60016109de565b90565b5f90565b90565b610a7c610a77610a8192610a65565b61069d565b6103b4565b90565b610a93610a99919392936103b4565b926103b4565b8203918211610aa457565b610963565b90610abb610ab683610128565b610113565b918252565b369037565b90610aea610ad283610aa9565b92602080610ae08693610128565b9201910390610ac0565b565b610b00610afb610b05926108e9565b61069d565b6103b4565b90565b6001610b1491016103b4565b90565b634e487b7160e01b5f52603260045260245ffd5b90610b35826101e4565b811015610b4757600160209102010190565b610b17565b60ff60f81b1690565b610b5f9051610b4c565b90565b610b71610b77919392936103b4565b926103b4565b8201809211610b8257565b610963565b60200190565b6bffffffffffffffffffffffff60a01b1690565b610bab9051610b8d565b90565b1b90565b610bcc610bc7610bc1836101e4565b92610b87565b610ba1565b90600c8110610bda575b5090565b610bfa906bffffffffffffffffffffffff60a01b90600c03600802610bae565b165f610bd6565b60a01c90565b610c13610c1891610c01565b6109bf565b90565b90610c24610698565b50610c2d610a61565b50610c4a610c3a836101e4565b610c44600c610a68565b90610a84565b610c5381610ac5565b90610c5d5f610aec565b5b80610c71610c6b846103b4565b916103b4565b1015610ca857610ca390610c8e610c89878390610b2b565b610b55565b610c9d859183905f1a92610b2b565b53610b08565b610c5e565b5092610cbc610cb7600c610a68565b610ac5565b91610cc65f610aec565b5b80610cdb610cd5600c610a68565b916103b4565b1015610d1c57610d1790610d02610cfd85610cf78a8590610b62565b90610b2b565b610b55565b610d11869183905f1a92610b2b565b53610b08565b610cc7565b50935050610d2c610d3191610bb2565b610c07565b90565b5f90565b90565b610d47610d4c91610329565b610d38565b9052565b610d5c81602093610d3b565b0190565b610da4610d81610d7c610d9593610d75610d34565b505f6106d4565b610706565b610d896100b2565b92839160208301610d50565b602082018103825203826100ea565b610db6610db0826101e4565b91610b87565b2090565b91610dd9602084610dd1610de09796600c96610d3b565b018092610787565b019061074c565b90565b90565b610dfa610df5610dff92610de3565b61069d565b61040e565b90565b610e0b90610de6565b90565b610e186067610e02565b90565b3d5f14610e3657610e2b3d610aa9565b903d5f602084013e5b565b610e3e610698565b90610e34565b91610e7e5f9392610e6f8594610e58610698565b509193610e636100b2565b94859360208501610dba565b602082018103825203826100ea565b610e86610e0e565b90602081019051915afa610ea2610e9b610e1b565b9115610466565b610ea95790565b5f63a99eec4b60e01b815280610ec16004820161036d565b0390fd5b90565b610edc610ed7610ee192610ec5565b61069d565b61040e565b90565b610eed90610ec8565b90565b610efa6066610ee4565b90565b91610f375f9392610f288594610f11610698565b509193610f1c6100b2565b94859360208501610dba565b602082018103825203826100ea565b610f3f610ef0565b90602081019051915afa610f5b610f54610e1b565b9115610466565b610f625790565b5f63a99eec4b60e01b815280610f7a6004820161036d565b0390fdfea2646970667358221220d49235db1fc2813aca0c2c613fb2406a25c06fae48bbc6f76adb97907c3ca3e164736f6c637829302e382e33312d646576656c6f702e323032352e31312e31322b636f6d6d69742e3637366264656363005a" + }, + "0x1000000000000000000000000000000000000005": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b610800565b61001d5f356100bc565b806346e2577a146100b75780634a8fcf9a146100b257806350f3fc81146100ad5780638a355a57146100a85780638da5cb5b146100a3578063a36250d81461009e578063ba1ab29114610099578063c41c2f2414610094578063ed03b3001461008f5763f2fde38b0361000e576107cd565b610798565b610741565b61067d565b610632565b6105da565b61058a565b610555565b61040f565b610131565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60018060a01b031690565b6100e8906100d4565b90565b6100f4816100df565b036100fb57565b5f80fd5b9050359061010c826100eb565b565b9060208282031261012757610124915f016100ff565b90565b6100cc565b5f0190565b3461015f5761014961014436600461010e565b610b62565b6101516100c2565b8061015b8161012c565b0390f35b6100c8565b5f80fd5b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b906101949061016c565b810190811067ffffffffffffffff8211176101ae57604052565b610176565b906101c66101bf6100c2565b928361018a565b565b67ffffffffffffffff81116101e6576101e260209161016c565b0190565b610176565b90825f939282370152565b9092919261020b610206826101c8565b6101b3565b9381855260208501908284011161022757610225926101eb565b565b610168565b9080601f8301121561024a57816020610247933591016101f6565b90565b610164565b9060208282031261027f575f82013567ffffffffffffffff811161027a57610277920161022c565b90565b6100d0565b6100cc565b5190565b60209181520190565b60200190565b90565b6102a390610297565b9052565b906102b48160209361029a565b0190565b60200190565b906102db6102d56102ce84610284565b8093610288565b92610291565b905f5b8181106102eb5750505090565b9091926103046102fe60019286516102a7565b946102b8565b91019190916102de565b5190565b60209181520190565b60200190565b5190565b60209181520190565b90825f9392825e0152565b6103586103616020936103669361034f81610321565b93848093610325565b9586910161032e565b61016c565b0190565b9061037491610339565b90565b60200190565b9061039161038a8361030e565b8092610312565b90816103a26020830284019461031b565b925f915b8383106103b557505050505090565b909192939460206103d76103d18385600195038752895161036a565b97610377565b93019301919392906103a6565b90916103fe61040c9360408401908482035f8601526102be565b91602081840391015261037d565b90565b346104405761042761042236600461024f565b610e18565b9061043c6104336100c2565b928392836103e4565b0390f35b6100c8565b90565b61045181610445565b0361045857565b5f80fd5b9050359061046982610448565b565b9060208282031261048457610481915f0161045c565b90565b6100cc565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b6104b38161049d565b8210156104cd576104c56001916104a1565b910201905f90565b610489565b1c90565b60018060a01b031690565b6104f19060086104f693026104d2565b6104d6565b90565b9061050491546104e1565b90565b60016105128161049d565b82101561052f5761052c91610526916104aa565b906104f9565b90565b5f80fd5b61053c906100df565b9052565b9190610553905f60208501940190610533565b565b346105855761058161057061056b36600461046b565b610507565b6105786100c2565b91829182610540565b0390f35b6100c8565b346105b8576105a261059d36600461010e565b61123b565b6105aa6100c2565b806105b48161012c565b0390f35b6100c8565b5f9103126105c757565b6100cc565b6105d75f5f906104f9565b90565b3461060a576105ea3660046105bd565b6106066105f56105cc565b6105fd6100c2565b91829182610540565b0390f35b6100c8565b736346d64a3f31774283b72926b75ffda9662266ce90565b61062f61060f565b90565b34610662576106423660046105bd565b61065e61064d610627565b6106556100c2565b91829182610540565b0390f35b6100c8565b60046001609c1b0190565b61067a610667565b90565b346106ad5761068d3660046105bd565b6106a9610698610672565b6106a06100c2565b91829182610540565b0390f35b6100c8565b90565b6106c96106c46106ce926100d4565b6106b2565b6100d4565b90565b6106da906106b5565b90565b6106e6906106d1565b90565b6106f96106f4610667565b6106dd565b90565b6107046106e9565b90565b610710906106b5565b90565b61071c90610707565b90565b61072890610713565b9052565b919061073f905f6020850194019061071f565b565b34610771576107513660046105bd565b61076d61075c6106fc565b6107646100c2565b9182918261072c565b0390f35b6100c8565b61077f90610445565b9052565b9190610796905f60208501940190610776565b565b346107c8576107a83660046105bd565b6107c46107b361124a565b6107bb6100c2565b91829182610783565b0390f35b6100c8565b346107fb576107e56107e036600461010e565b61131a565b6107ed6100c2565b806107f78161012c565b0390f35b6100c8565b5f80fd5b60209181520190565b5f7f4455504c49434154455f50524f56494445520000000000000000000000000000910152565b6108416012602092610804565b61084a8161080d565b0190565b6108639060208101905f818303910152610834565b90565b1561086d57565b6108756100c2565b62461bcd60e51b81528061088b6004820161084e565b0390fd5b6108bd906108b861089f82611325565b6108b26108ac5f19610445565b91610445565b14610866565b6109e1565b565b5f1c90565b6108d06108d5916108bf565b6104d6565b90565b6108e290546108c4565b90565b90565b6108fc6108f7610901926108e5565b6106b2565b6100d4565b90565b61090d906108e8565b90565b5f1b90565b9061092660018060a01b0391610910565b9181191691161790565b61093990610707565b90565b90565b9061095461094f61095b92610930565b61093c565b8254610915565b9055565b5f7f554e415554484f52495a45440000000000000000000000000000000000000000910152565b610993600c602092610804565b61099c8161095f565b0190565b6109b59060208101905f818303910152610986565b90565b156109bf57565b6109c76100c2565b62461bcd60e51b8152806109dd600482016109a0565b0390fd5b610a37906109ee5f6108d8565b610a08610a026109fd5f610904565b6100df565b916100df565b14610a39575b610a3233610a2c610a26610a215f6108d8565b6100df565b916100df565b146109b8565b610b0c565b565b610a4a610a4461060f565b5f61093f565b610a0e565b90565b5f5260205f2090565b5490565b610a6881610a5b565b821015610a8257610a7a600191610a52565b910201905f90565b610489565b1b90565b91906008610aab910291610aa560018060a01b0384610a87565b92610a87565b9181191691161790565b9190610acb610ac6610ad393610930565b61093c565b908354610a8b565b9055565b9081549168010000000000000000831015610b075782610aff916001610b0595018155610a5f565b90610ab5565b565b610176565b610b20610b196001610a4f565b8290610ad7565b610b4a7fae9c2c6481964847714ce58f65a7f6dcc41d0d8394449bacdf161b5920c4744a91610930565b90610b536100c2565b80610b5d8161012c565b0390a2565b610b6b9061088f565b565b606090565b606090565b67ffffffffffffffff8111610b8f5760208091020190565b610176565b90610ba6610ba183610b77565b6101b3565b918252565b369037565b90610bd5610bbd83610b94565b92602080610bcb8693610b77565b9201910390610bab565b565b67ffffffffffffffff8111610bef5760208091020190565b610176565b90610c06610c0183610bd7565b6101b3565b918252565b606090565b5f5b828110610c1e57505050565b602090610c29610c0b565b8184015201610c12565b90610c58610c4083610bf4565b92602080610c4e8693610bd7565b9201910390610c10565b565b610c6e610c69610c73926108e5565b6106b2565b610445565b90565b6001610c829101610445565b90565b60e01b90565b610c9481610297565b03610c9b57565b5f80fd5b90505190610cac82610c8b565b565b90602082820312610cc757610cc4915f01610c9f565b90565b6100cc565b610cd46100c2565b3d5f823e3d90fd5b90610ce682610284565b811015610cf7576020809102010190565b610489565b90610d0690610297565b9052565b90929192610d1f610d1a826101c8565b6101b3565b93818552602085019082840111610d3b57610d399261032e565b565b610168565b9080601f83011215610d5e57816020610d5b93519101610d0a565b90565b610164565b90602082820312610d93575f82015167ffffffffffffffff8111610d8e57610d8b9201610d40565b90565b6100d0565b6100cc565b60209181520190565b610dc0610dc9602093610dce93610db781610321565b93848093610d98565b9586910161032e565b61016c565b0190565b91610df592610de860408201935f830190610533565b6020818403910152610da1565b90565b90610e028261030e565b811015610e13576020809102010190565b610489565b90610e21610b6d565b50610e2a610b72565b50610e3b610e3661124a565b610bb0565b91610e4c610e4761124a565b610c33565b92610e565f610c5a565b5b80610e71610e6b610e6661124a565b610445565b91610445565b1015610fdc57610eca6020610e8c610e876106e9565b610713565b63eefbaf1890610ebf610eaa610ea4600188906104aa565b906104f9565b92610eb36100c2565b95869485938493610c85565b835260048301610540565b03915afa8015610fd757610ef2915f91610fa9575b50610eed8491849092610cdc565b610cfc565b610f02610efd6106e9565b610713565b905f63b7f5f9b792610f1f610f19600185906104aa565b906104f9565b90610f3d838896610f48610f316100c2565b98899687958694610c85565b845260048401610dd2565b03925af1918215610fa457610f7d92610f76915f91610f82575b50878391610f708383610df8565b52610df8565b5150610c76565b610e57565b610f9e91503d805f833e610f96818361018a565b810190610d63565b5f610f62565b610ccc565b610fca915060203d8111610fd0575b610fc2818361018a565b810190610cae565b5f610edf565b503d610fb8565b610ccc565b5090509190565b61103990610ff05f6108d8565b61100a611004610fff5f610904565b6100df565b916100df565b1461103b575b6110343361102e6110286110235f6108d8565b6100df565b916100df565b146109b8565b61115d565b565b61104c61104661060f565b5f61093f565b611010565b5f7f50524f56494445525f4e4f545f464f554e440000000000000000000000000000910152565b6110856012602092610804565b61108e81611051565b0190565b6110a79060208101905f818303910152611078565b90565b90565b6110c16110bc6110c6926110aa565b6106b2565b610445565b90565b634e487b7160e01b5f52601160045260245ffd5b6110ec6110f291939293610445565b92610445565b82039182116110fd57565b6110c9565b634e487b7160e01b5f52603160045260245ffd5b5f90565b61112c91611126611116565b91610ab5565b565b61113781610a5b565b801561115857600190039061115561114f8383610a5f565b9061111a565b55565b611102565b61116681611325565b8061117a6111745f19610445565b91610445565b14611219576111c5906111bf6111b76111b160016111ab61119b600161049d565b6111a560016110ad565b906110dd565b906104aa565b906104f9565b9160016104aa565b90610ab5565b6111d76111d26001610a4f565b61112e565b6112017f1589f8555933761a3cff8aa925061be3b46e2dd43f621322ab611d300f62b1d991610930565b9061120a6100c2565b806112148161012c565b0390a2565b6112216100c2565b62461bcd60e51b81528061123760048201611092565b0390fd5b61124490610fe3565b565b5f90565b611252611246565b5061125d600161049d565b90565b6112b69061126d5f6108d8565b61128761128161127c5f610904565b6100df565b916100df565b146112b8575b6112b1336112ab6112a56112a05f6108d8565b6100df565b916100df565b146109b8565b6112ce565b565b6112c96112c361060f565b5f61093f565b61128d565b6112d8815f61093f565b6113027f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616391610930565b9061130b6100c2565b806113158161012c565b0390a2565b61132390611260565b565b61132d611246565b506113375f610c5a565b5b8061135261134c61134761124a565b610445565b91610445565b10156113975761136d611367600183906104aa565b906104f9565b61137f611379846100df565b916100df565b146113925761138d90610c76565b611338565b905090565b50505f199056fea264697066735822122075752650c1eb298fcdd8aac8ecf892932d7cab4774bade6597e821b82ac2e90764736f6c637829302e382e33312d646576656c6f702e323032352e31312e31322b636f6d6d69742e3637366264656363005a" + }, + "0x1000000000000000000000000000000000000006": { + "balance": "0x0", + "code": "0x60806040526004361015610013575b6101ff565b61001d5f3561003b565b806210c013146100365763ba5cfe300361000e576101ce565b61013a565b60e01c90565b60405190565b5f80fd5b5f80fd5b60018060a01b031690565b6100639061004f565b90565b61006f8161005a565b0361007657565b5f80fd5b9050359061008782610066565b565b90565b61009581610089565b0361009c57565b5f80fd5b905035906100ad8261008c565b565b67ffffffffffffffff1690565b6100c5816100af565b036100cc57565b5f80fd5b905035906100dd826100bc565b565b919060a083820312610130576100f7815f850161007a565b9261010582602083016100a0565b9261012d61011684604085016100d0565b9361012481606086016100a0565b936080016100d0565b90565b61004b565b5f0190565b346101655761014a3660046100df565b5050505050610157610041565b8061016181610135565b0390f35b610047565b909160c0828403126101c957610182835f840161007a565b9261019081602085016100d0565b9261019e82604083016100a0565b926101c66101af84606085016100d0565b936101bd81608086016100a0565b9360a0016100d0565b90565b61004b565b346101fa576101de36600461016a565b5050505050506101ec610041565b806101f681610135565b0390f35b610047565b5f80fdfea2646970667358221220b8bb4e3b852827cb1c4b6cfe44759df486d57138f349cdebca310ede3054606164736f6c634300081e0033" + }, + "0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc": { + "balance": "0xD3C21BCECCEDA1000000" + }, + "0x70997970c51812dc3a010c7d01b50e0d17dc79c8": { + "balance": "0xD3C21BCECCEDA1000000" + }, + "0x90f79bf6eb2c4f870365e785982e1f101e93b906": { + "balance": "0xD3C21BCECCEDA1000000" + }, + "0xD9b09DCAe1B5D2fFd36200E12f2617414D5fcC30": { + "balance": "0x2000000000000000000000000000000000000000000000000000000000000000" + }, + "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266": { + "balance": "0xD3C21BCECCEDA1000000" + }, + "0x2aA4C90C2F9D8A699A0C87B573411Db0d34BE61B":{ + "balance": "0xD3C21BCECCEDA1000000" + }, + "0x976EA74026E726554dB657fA54763abd0C3a0aa9": { + "balance": "0x0" + }, + "0x790701048922E265105fd6a4467a2901c2201C43": { + "balance": "0x0", + "storage": { + "0x09c9f1f772cc7cdfdea1312d18e43df0fc201c7648448a9011fd8181f577802d": "0x000000000000000000000000000000000000000000000000000000003b9aca00" + } + } + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "difficulty": "0x0", + "extraData": "0x", + "gasLimit": "0x1c9c380", + "gasUsed": "0x0", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0", + "number": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "stateRoot": "0x5eb6e371a698b8d68f665192350ffcecbbbf322916f4b51bd79bb6887da3f494", + "timestamp": "0x6490fdd2" +} diff --git a/deploy_tee/networks/example-devnet/summit-genesis-template.toml b/deploy_tee/networks/example-devnet/summit-genesis-template.toml new file mode 100644 index 0000000..dbc199f --- /dev/null +++ b/deploy_tee/networks/example-devnet/summit-genesis-template.toml @@ -0,0 +1,21 @@ +eth_genesis_hash = "0x874a74ba374da00d8c097b4be585a60e40f901cac56a764ad0013a07b0a2f93c" +validators = [] +# Summit network-params template — authored input for `manifest assemble`. +# Review every value before founding a real network. Two fields are filled +# elsewhere and do not belong here: eth_genesis_hash (derived from +# reth-genesis.json at assemble time) and [[validators]] (TEE-born, filled +# by the genesis ceremony). +leader_timeout_ms = 2000 +notarization_timeout_ms = 4000 +nullify_timeout_ms = 4000 +activity_timeout_views = 256 +skip_timeout_views = 32 +max_message_size_bytes = 10485760 +namespace = "example-devnet" +validator_minimum_stake = 32000000000 +validator_maximum_stake = 32000000000 +blocks_per_epoch = 10000 +allowed_timestamp_future_ms = 10000 +max_deposits_per_epoch = 3 +max_withdrawals_per_epoch = 16 +observers_per_validator = 5 diff --git a/deploy_tee/networks/example-devnet/summit-template.toml b/deploy_tee/networks/example-devnet/summit-template.toml new file mode 100644 index 0000000..011940c --- /dev/null +++ b/deploy_tee/networks/example-devnet/summit-template.toml @@ -0,0 +1,19 @@ +# Summit network-params template — authored input for `manifest assemble`. +# Review every value before founding a real network. Two fields are filled +# elsewhere and do not belong here: eth_genesis_hash (derived from +# reth-genesis.json at assemble time) and [[validators]] (TEE-born, filled +# by the genesis ceremony). +leader_timeout_ms = 2000 +notarization_timeout_ms = 4000 +nullify_timeout_ms = 4000 +activity_timeout_views = 256 +skip_timeout_views = 32 +max_message_size_bytes = 10485760 +namespace = "example-devnet" +validator_minimum_stake = 32000000000 +validator_maximum_stake = 32000000000 +blocks_per_epoch = 10000 +allowed_timestamp_future_ms = 10000 +max_deposits_per_epoch = 3 +max_withdrawals_per_epoch = 16 +observers_per_validator = 5