From 18086f39b311da42fff2b47f4bfe639047d5a7b9 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 16:55:05 +0200 Subject: [PATCH 01/17] feat: simplify bridge configuration by consolidating input parameters and updating private key usage --- .github/workflows/configure-bridges.yml | 159 ++++++------------------ Makefile | 2 +- 2 files changed, 37 insertions(+), 124 deletions(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 97fbd39f..4beb6a4b 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -1,72 +1,42 @@ name: Configure Bridges on: - workflow_dispatch: # Manual trigger + workflow_dispatch: inputs: - source_chain: - description: 'Source chain network' + network_type: + description: 'Network type to configure' required: true type: choice options: - - sepolia - - ethereum - - arbitrum_sepolia - - arbitrum - default: 'sepolia' - target_chain: - description: 'Target chain network' - required: true - type: choice - options: - - sepolia - - ethereum - - arbitrum_sepolia - - arbitrum - default: 'arbitrum_sepolia' + - testnets + - mainnets + default: 'testnets' jobs: - validate-inputs: - runs-on: ubuntu-latest - outputs: - is_valid: ${{ steps.validate.outputs.is_valid }} - error_message: ${{ steps.validate.outputs.error_message }} - steps: - - name: Validate chain pair - id: validate - run: | - SOURCE="${{ inputs.source_chain }}" - TARGET="${{ inputs.target_chain }}" - - # Check if source and target are the same - if [ "$SOURCE" = "$TARGET" ]; then - echo "is_valid=false" >> $GITHUB_OUTPUT - echo "error_message=Source and target chains cannot be the same" >> $GITHUB_OUTPUT - exit 0 - fi - - # Check valid chain pairs - case "$SOURCE-$TARGET" in - "sepolia-arbitrum_sepolia"|"arbitrum_sepolia-sepolia") - echo "is_valid=true" >> $GITHUB_OUTPUT - echo "error_message=" >> $GITHUB_OUTPUT - ;; - "ethereum-arbitrum"|"arbitrum-ethereum") - echo "is_valid=true" >> $GITHUB_OUTPUT - echo "error_message=" >> $GITHUB_OUTPUT - ;; - *) - echo "is_valid=false" >> $GITHUB_OUTPUT - echo "error_message=Invalid chain pair. Valid pairs: sepolia↔arbitrum_sepolia, ethereum↔arbitrum" >> $GITHUB_OUTPUT - ;; - esac - configure-bridges: - needs: validate-inputs runs-on: ubuntu-latest - if: needs.validate-inputs.outputs.is_valid == 'true' + strategy: + matrix: + include: + - environment: testnets + source_chain: sepolia + target_chain: arbitrum_sepolia + - environment: testnets + source_chain: arbitrum_sepolia + target_chain: sepolia + - environment: mainnets + source_chain: ethereum + target_chain: arbitrum + - environment: mainnets + source_chain: arbitrum + target_chain: ethereum + fail-fast: false + concurrency: + group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} + cancel-in-progress: true env: CI: true - environment: ${{ inputs.source_chain }} + environment: ${{ matrix.environment }} steps: - uses: actions/checkout@v4 with: @@ -78,79 +48,22 @@ jobs: version: stable cache: true - - name: Set environment variables - run: | - case "${{ inputs.source_chain }}" in - "sepolia") - echo "SOURCE_RPC_URL=${{ vars.SEPOLIA_RPC_URL }}" >> $GITHUB_ENV - ;; - "ethereum") - echo "SOURCE_RPC_URL=${{ vars.ETHEREUM_RPC_URL }}" >> $GITHUB_ENV - ;; - "arbitrum_sepolia") - echo "SOURCE_RPC_URL=${{ vars.ARBITRUM_SEPOLIA_RPC_URL }}" >> $GITHUB_ENV - ;; - "arbitrum") - echo "SOURCE_RPC_URL=${{ vars.ARBITRUM_RPC_URL }}" >> $GITHUB_ENV - ;; - esac - - case "${{ inputs.target_chain }}" in - "sepolia") - echo "TARGET_RPC_URL=${{ vars.SEPOLIA_RPC_URL }}" >> $GITHUB_ENV - ;; - "ethereum") - echo "TARGET_RPC_URL=${{ vars.ETHEREUM_RPC_URL }}" >> $GITHUB_ENV - ;; - "arbitrum_sepolia") - echo "TARGET_RPC_URL=${{ vars.ARBITRUM_SEPOLIA_RPC_URL }}" >> $GITHUB_ENV - ;; - "arbitrum") - echo "TARGET_RPC_URL=${{ vars.ARBITRUM_RPC_URL }}" >> $GITHUB_ENV - ;; - esac - - - name: Configure bridge from source to target - env: - DEPLOYER_PRIVATE_KEY: ${{ secrets.DEPLOYER_PRIVATE_KEY }} - ACCOUNT: ${{ vars.ACCOUNT || 'default' }} - SOURCE_CHAIN: ${{ inputs.source_chain }} - TARGET_CHAIN: ${{ inputs.target_chain }} - SOURCE_RPC_URL: ${{ env.SOURCE_RPC_URL }} - TARGET_RPC_URL: ${{ env.TARGET_RPC_URL }} - run: | - make configure-bridge - - - name: Configure bridge from target to source + - name: Configure bridge from ${{ matrix.source_chain }} to ${{ matrix.target_chain }} + if: matrix.environment == github.event.inputs.network_type env: - DEPLOYER_PRIVATE_KEY: ${{ secrets.DEPLOYER_PRIVATE_KEY }} - ACCOUNT: ${{ vars.ACCOUNT || 'default' }} - SOURCE_CHAIN: ${{ inputs.target_chain }} - TARGET_CHAIN: ${{ inputs.source_chain }} - SOURCE_RPC_URL: ${{ env.TARGET_RPC_URL }} - TARGET_RPC_URL: ${{ env.SOURCE_RPC_URL }} - run: | - make configure-bridge + ADMIN_PRIVATE_KEY: ${{ secrets.ADMIN_PRIVATE_KEY }} + SOURCE_CHAIN: ${{ matrix.source_chain }} + TARGET_CHAIN: ${{ matrix.target_chain }} + # Définissez RPC_URL selon vos besoins + RPC_URL: ${{ secrets.RPC_URL }} # ou une autre source + run: make configure-bridge - name: Save bridge configuration artifacts + if: matrix.environment == github.event.inputs.network_type uses: stefanzweifel/git-auto-commit-action@v5 with: - commit_message: 'chore: save bridge configuration artifacts for ${{ inputs.source_chain }}↔${{ inputs.target_chain }} (Github run_id: ${{ github.run_id }})' + commit_message: 'chore: save bridge configuration artifacts for ${{ matrix.source_chain }}→${{ matrix.target_chain }} (run: ${{ github.run_id }})' file_pattern: 'config/config.json broadcast/' commit_user_name: 'GitHub Actions Bot' commit_user_email: 'github-actions[bot]@users.noreply.github.com' commit_author: 'GitHub Actions Bot ' - - show-validation-error: - needs: validate-inputs - runs-on: ubuntu-latest - if: needs.validate-inputs.outputs.is_valid == 'false' - steps: - - name: Show validation error - run: | - echo "❌ Validation failed: ${{ needs.validate-inputs.outputs.error_message }}" - echo "" - echo "Valid chain pairs:" - echo " • sepolia ↔ arbitrum_sepolia (testnets)" - echo " • ethereum ↔ arbitrum (mainnets)" - exit 1 diff --git a/Makefile b/Makefile index ce14dfe6..798b8fbb 100644 --- a/Makefile +++ b/Makefile @@ -147,7 +147,7 @@ configure-bridge: # SOURCE_CHAIN, TARGET_CHAIN, RPC_URL SOURCE_CHAIN=$(SOURCE_CHAIN) TARGET_CHAIN=$(TARGET_CHAIN) \ forge script script/bridges/layerZero/IexecLayerZeroBridge.s.sol:Configure \ --rpc-url $(RPC_URL) \ - $$(if [ "$(CI)" = "true" ]; then echo "--private-key $(DEPLOYER_PRIVATE_KEY)"; else echo "--account $(ACCOUNT)"; fi) \ + $$(if [ "$(CI)" = "true" ]; then echo "--private-key $(ADMIN_PRIVATE_KEY)"; else echo "--account $(ACCOUNT)"; fi) \ --broadcast \ -vvv From b36940de491720cfd83a7026ff5a2a601376f1f3 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 17:08:42 +0200 Subject: [PATCH 02/17] feat: update bridge configuration to correctly associate environments with network types --- .github/workflows/configure-bridges.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 4beb6a4b..b3335312 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -18,18 +18,22 @@ jobs: strategy: matrix: include: - - environment: testnets + - environment: sepolia source_chain: sepolia target_chain: arbitrum_sepolia - - environment: testnets + network_type: testnets + - environment: arbitrum_sepolia source_chain: arbitrum_sepolia target_chain: sepolia - - environment: mainnets + network_type: testnets + - environment: ethereum source_chain: ethereum target_chain: arbitrum - - environment: mainnets + network_type: mainnets + - environment: arbitrum source_chain: arbitrum target_chain: ethereum + network_type: mainnets fail-fast: false concurrency: group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} @@ -49,7 +53,7 @@ jobs: cache: true - name: Configure bridge from ${{ matrix.source_chain }} to ${{ matrix.target_chain }} - if: matrix.environment == github.event.inputs.network_type + if: matrix.network_type == github.event.inputs.network_type env: ADMIN_PRIVATE_KEY: ${{ secrets.ADMIN_PRIVATE_KEY }} SOURCE_CHAIN: ${{ matrix.source_chain }} @@ -59,7 +63,7 @@ jobs: run: make configure-bridge - name: Save bridge configuration artifacts - if: matrix.environment == github.event.inputs.network_type + if: matrix.network_type == github.event.inputs.network_type uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: 'chore: save bridge configuration artifacts for ${{ matrix.source_chain }}→${{ matrix.target_chain }} (run: ${{ github.run_id }})' From 2de09474ea8496107ec3d2ea5cc7ab22bf8a7df0 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 17:08:57 +0200 Subject: [PATCH 03/17] feat: add push trigger to configure bridges workflow --- .github/workflows/configure-bridges.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index b3335312..607882ba 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -1,6 +1,7 @@ name: Configure Bridges on: + push: workflow_dispatch: inputs: network_type: From 1d8f7338d9e1005dd7b45fdb35e8c8ba4798a150 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 17:53:42 +0200 Subject: [PATCH 04/17] feat: remove push trigger from configure bridges workflow --- .github/workflows/configure-bridges.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 607882ba..b3335312 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -1,7 +1,6 @@ name: Configure Bridges on: - push: workflow_dispatch: inputs: network_type: From b19f889076b0ade891ee53065a14d191f2f94fda Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 18:15:32 +0200 Subject: [PATCH 05/17] feat: update configure bridges workflow to include environment variables and streamline job definitions --- .github/actions/configure-bridge/action.yml | 46 ++++++++++++++ .github/workflows/configure-bridges.yml | 70 ++++++++++----------- 2 files changed, 81 insertions(+), 35 deletions(-) create mode 100644 .github/actions/configure-bridge/action.yml diff --git a/.github/actions/configure-bridge/action.yml b/.github/actions/configure-bridge/action.yml new file mode 100644 index 00000000..22a85d1c --- /dev/null +++ b/.github/actions/configure-bridge/action.yml @@ -0,0 +1,46 @@ +name: 'Configure Bridge' +description: 'Configure bridge between two chains' +inputs: + source_chain: + description: 'Source chain name' + required: true + target_chain: + description: 'Target chain name' + required: true + admin_private_key: + description: 'Admin private key' + required: true + rpc_url: + description: 'RPC URL' + required: true + +runs: + using: 'composite' + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: stable + cache: true + + - name: Configure bridge from ${{ inputs.source_chain }} to ${{ inputs.target_chain }} + shell: bash + env: + ADMIN_PRIVATE_KEY: ${{ inputs.admin_private_key }} + SOURCE_CHAIN: ${{ inputs.source_chain }} + TARGET_CHAIN: ${{ inputs.target_chain }} + RPC_URL: ${{ inputs.rpc_url }} + run: make configure-bridge + + - name: Save bridge configuration artifacts + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: 'chore: save bridge configuration artifacts for ${{ inputs.source_chain }}→${{ inputs.target_chain }} (run: ${{ github.run_id }})' + file_pattern: 'config/config.json broadcast/' + commit_user_name: 'GitHub Actions Bot' + commit_user_email: 'github-actions[bot]@users.noreply.github.com' + commit_author: 'GitHub Actions Bot ' diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index b3335312..b739a848 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -12,8 +12,12 @@ on: - mainnets default: 'testnets' +env: + CI: true + jobs: - configure-bridges: + configure-testnets: + if: github.event.inputs.network_type == 'testnets' runs-on: ubuntu-latest strategy: matrix: @@ -21,53 +25,49 @@ jobs: - environment: sepolia source_chain: sepolia target_chain: arbitrum_sepolia - network_type: testnets - environment: arbitrum_sepolia source_chain: arbitrum_sepolia target_chain: sepolia - network_type: testnets + fail-fast: false + + concurrency: + group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} + cancel-in-progress: true + + environment: ${{ matrix.environment }} + steps: + - name: Configure Bridge + uses: ./.github/actions/configure-bridge + with: + source_chain: ${{ matrix.source_chain }} + target_chain: ${{ matrix.target_chain }} + admin_private_key: ${{ secrets.ADMIN_PRIVATE_KEY }} + rpc_url: ${{ secrets.RPC_URL }} + + configure-mainnets: + if: github.event.inputs.network_type == 'mainnets' + runs-on: ubuntu-latest + strategy: + matrix: + include: - environment: ethereum source_chain: ethereum target_chain: arbitrum - network_type: mainnets - environment: arbitrum source_chain: arbitrum target_chain: ethereum - network_type: mainnets fail-fast: false + concurrency: group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} cancel-in-progress: true - env: - CI: true + environment: ${{ matrix.environment }} steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: stable - cache: true - - - name: Configure bridge from ${{ matrix.source_chain }} to ${{ matrix.target_chain }} - if: matrix.network_type == github.event.inputs.network_type - env: - ADMIN_PRIVATE_KEY: ${{ secrets.ADMIN_PRIVATE_KEY }} - SOURCE_CHAIN: ${{ matrix.source_chain }} - TARGET_CHAIN: ${{ matrix.target_chain }} - # Définissez RPC_URL selon vos besoins - RPC_URL: ${{ secrets.RPC_URL }} # ou une autre source - run: make configure-bridge - - - name: Save bridge configuration artifacts - if: matrix.network_type == github.event.inputs.network_type - uses: stefanzweifel/git-auto-commit-action@v5 + - name: Configure Bridge + uses: ./.github/actions/configure-bridge with: - commit_message: 'chore: save bridge configuration artifacts for ${{ matrix.source_chain }}→${{ matrix.target_chain }} (run: ${{ github.run_id }})' - file_pattern: 'config/config.json broadcast/' - commit_user_name: 'GitHub Actions Bot' - commit_user_email: 'github-actions[bot]@users.noreply.github.com' - commit_author: 'GitHub Actions Bot ' + source_chain: ${{ matrix.source_chain }} + target_chain: ${{ matrix.target_chain }} + admin_private_key: ${{ secrets.ADMIN_PRIVATE_KEY }} + rpc_url: ${{ secrets.RPC_URL }} From f010e5c83235d7169083600ea1ab4b0f470b296d Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 18:17:43 +0200 Subject: [PATCH 06/17] feat: add checkout step with submodules to configure bridges workflow --- .github/actions/configure-bridge/action.yml | 4 ---- .github/workflows/configure-bridges.yml | 8 ++++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/actions/configure-bridge/action.yml b/.github/actions/configure-bridge/action.yml index 22a85d1c..9d740d5b 100644 --- a/.github/actions/configure-bridge/action.yml +++ b/.github/actions/configure-bridge/action.yml @@ -17,10 +17,6 @@ inputs: runs: using: 'composite' steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 with: diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index b739a848..05a4209a 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -36,6 +36,10 @@ jobs: environment: ${{ matrix.environment }} steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Configure Bridge uses: ./.github/actions/configure-bridge with: @@ -64,6 +68,10 @@ jobs: environment: ${{ matrix.environment }} steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Configure Bridge uses: ./.github/actions/configure-bridge with: From 2342e15bdcb76086c80ef42835dda816bc115684 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Wed, 23 Jul 2025 16:19:15 +0000 Subject: [PATCH 07/17] =?UTF-8?q?chore:=20save=20bridge=20configuration=20?= =?UTF-8?q?artifacts=20for=20sepolia=E2=86=92arbitrum=5Fsepolia=20(run:=20?= =?UTF-8?q?16476116483)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../11155111/run-latest.json | 290 +++++++----------- 1 file changed, 103 insertions(+), 187 deletions(-) diff --git a/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json index 7972257e..b09dca6d 100644 --- a/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json +++ b/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json @@ -1,257 +1,173 @@ { "transactions": [ { - "hash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", + "hash": "0x6132f3b0f07fec2ded3d6a9846bccf03b91d7d1f1060824aef9cce13fcdf3692", "transactionType": "CALL", "contractName": null, - "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "function": "deployCreate2(bytes32,bytes)", + "contractAddress": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "function": "setPeer(uint32,bytes32)", "arguments": [ - "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", - "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000010000000000000000000000007198ca5eaefe7416d4f3900b58ff1bea33771a650000000000000000000000006edce65403992e310a62460808c4b910d972f10f" + "40231", + "0x000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5" ], "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "gas": "0x5621b2", + "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "gas": "0x11c83", "value": "0x0", - "input": "0x263076684f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000004cb26101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000010000000000000000000000007198ca5eaefe7416d4f3900b58ff1bea33771a650000000000000000000000006edce65403992e310a62460808c4b910d972f10f0000000000000000000000000000", - "nonce": "0x30", + "input": "0x3400288b0000000000000000000000000000000000000000000000000000000000009d27000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "nonce": "0x32", "chainId": "0xaa36a7" }, - "additionalContracts": [ - { - "transactionType": "CREATE2", - "address": "0x0f9217f1deb72e3297787f515c16280058e94a6d", - "initCode": "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000010000000000000000000000007198ca5eaefe7416d4f3900b58ff1bea33771a650000000000000000000000006edce65403992e310a62460808c4b910d972f10f" - } - ], + "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "hash": "0x585a26d83d795f9b5a9df5a8026f81fd3ae4858b30ea95837d44d07096cf6050", "transactionType": "CALL", "contractName": null, - "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "function": "deployCreate2AndInit(bytes32,bytes,bytes,(uint256,uint256))", + "contractAddress": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "function": "setEnforcedOptions((uint32,uint16,bytes)[])", "arguments": [ - "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", - "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c634300081700330000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", - "0xc0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "(0, 0)" + "[(40231, 1, 0x00030100110100000000000000000000000000011170), (40231, 2, 0x00030100110100000000000000000000000000011170)]" ], "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "gas": "0x6aa50", + "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "gas": "0x1cd89", "value": "0x0", - "input": "0xe96deee44f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c634300081700330000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a300000000000000000000000000000000000000000000000000000000", - "nonce": "0x31", + "input": "0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009d2700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009d270000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", + "nonce": "0x33", "chainId": "0xaa36a7" }, - "additionalContracts": [ - { - "transactionType": "CREATE2", - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "initCode": "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c634300081700330000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000" - } + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x51fe4c283a41cdd2af17744cffc91611e19c36cf9644e3834c02f73311241679", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", + "function": "grantRole(bytes32,address)", + "arguments": [ + "0xd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978", + "0xA18e571f91ab58889C348E1764fBaBF622ab89b5" ], + "transaction": { + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", + "gas": "0x1323b", + "value": "0x0", + "input": "0x2f2ff15dd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", + "nonce": "0x34", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], "isFixedGasLimit": false } ], "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x1eea81b", + "cumulativeGasUsed": "0x1959d32", "logs": [ { - "address": "0x0f9217f1deb72e3297787f515c16280058e94a6d", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x1aec209a16592e268f7b35eb5f6f2cd648bf70613d53ebc110b0bcd27bff3fd9", - "blockNumber": "0x867336", - "transactionHash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", - "transactionIndex": "0x93", - "logIndex": "0x123", - "removed": false - }, - { - "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", "topics": [ - "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", - "0x0000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d", - "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" + "0x238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b" ], - "data": "0x", - "blockHash": "0x1aec209a16592e268f7b35eb5f6f2cd648bf70613d53ebc110b0bcd27bff3fd9", - "blockNumber": "0x867336", - "transactionHash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", - "transactionIndex": "0x93", - "logIndex": "0x124", + "data": "0x0000000000000000000000000000000000000000000000000000000000009d27000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", + "blockNumber": "0x86ace7", + "transactionHash": "0x6132f3b0f07fec2ded3d6a9846bccf03b91d7d1f1060824aef9cce13fcdf3692", + "transactionIndex": "0xf8", + "logIndex": "0x1bd", "removed": false } ], - "logsBloom": "0x00020000000000000000000000040000000000000000000000000000000000000000080000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800000000110000000000000080000000000000000000020080000000000800000000000000000000000000000000000000000000000000000000000000000200000000000000000000002004000000000000000000000000000000000000010000000000000400200000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000800000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", - "transactionIndex": "0x93", - "blockHash": "0x1aec209a16592e268f7b35eb5f6f2cd648bf70613d53ebc110b0bcd27bff3fd9", - "blockNumber": "0x867336", - "gasUsed": "0x3e5b95", - "effectiveGasPrice": "0x568321", + "transactionHash": "0x6132f3b0f07fec2ded3d6a9846bccf03b91d7d1f1060824aef9cce13fcdf3692", + "transactionIndex": "0xf8", + "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", + "blockNumber": "0x86ace7", + "gasUsed": "0xcdfc", + "effectiveGasPrice": "0x3ff70c8e", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", "contractAddress": null }, { "status": "0x1", - "cumulativeGasUsed": "0x1720b00", + "cumulativeGasUsed": "0x196eb57", "logs": [ { "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d" - ], - "data": "0x", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x155", - "removed": false - }, - { - "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "topics": [ - "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", - "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" - ], - "data": "0x", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x156", - "removed": false - }, - { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" - ], - "data": "0x", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x157", - "removed": false - }, - { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + "0xbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674" ], - "data": "0x", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x158", + "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009d2700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009d270000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", + "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", + "blockNumber": "0x86ace7", + "transactionHash": "0x585a26d83d795f9b5a9df5a8026f81fd3ae4858b30ea95837d44d07096cf6050", + "transactionIndex": "0xf9", + "logIndex": "0x1be", "removed": false - }, + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000020400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x585a26d83d795f9b5a9df5a8026f81fd3ae4858b30ea95837d44d07096cf6050", + "transactionIndex": "0xf9", + "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", + "blockNumber": "0x86ace7", + "gasUsed": "0x14e25", + "effectiveGasPrice": "0x3ff70c8e", + "blobGasUsed": "0x0", + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1a5bd85", + "logs": [ { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "address": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" - ], - "data": "0x", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x159", - "removed": false - }, - { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978", + "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3" ], "data": "0x", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x15a", - "removed": false - }, - { - "address": "0x6edce65403992e310a62460808c4b910d972f10f", - "topics": [ - "0x6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981" - ], - "data": "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b50000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x15b", - "removed": false - }, - { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "logIndex": "0x15c", + "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", + "blockNumber": "0x86ace7", + "transactionHash": "0x51fe4c283a41cdd2af17744cffc91611e19c36cf9644e3834c02f73311241679", + "transactionIndex": "0xff", + "logIndex": "0x1cf", "removed": false } ], - "logsBloom": "0x00020004000000000200000000040080400000000400000000800000000000000000000014000000200000008000800000000002000000000022000000000000000000000000000000000000000002000001000000000000000100000000000000000000020000000200000000000800000000000000000000010000000000400000000000000020000800000000108000000000000080000000000000000000020080000000000800000000000000000000000000000000001000000000000400000020000000000200000000000000000040002004000100002000000020000080000000000000010000000800000400200400000020000000000000000000", + "logsBloom": "0x00000004000000000200000000000080000000000400000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000100000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000800000000000000000000000004000000040000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", - "transactionIndex": "0xa6", - "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", - "blockNumber": "0x867337", - "gasUsed": "0x4d358", - "effectiveGasPrice": "0x59a906", + "transactionHash": "0x51fe4c283a41cdd2af17744cffc91611e19c36cf9644e3834c02f73311241679", + "transactionIndex": "0xff", + "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", + "blockNumber": "0x86ace7", + "gasUsed": "0xddb5", + "effectiveGasPrice": "0x3ff70c8e", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "to": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", "contractAddress": null } ], "libraries": [], "pending": [], - "returns": { - "0": { - "internal_type": "address", - "value": "0xA18e571f91ab58889C348E1764fBaBF622ab89b5" - } - }, - "timestamp": 1753105321, + "returns": {}, + "timestamp": 1753287554, "chain": 11155111, - "commit": "25688b5" + "commit": "f010e5c" } \ No newline at end of file From b0ce1757482036a13a869d5e0e766bffa5890d43 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 18:34:23 +0200 Subject: [PATCH 08/17] feat: refactor configure bridges workflow by removing the configure bridge action and integrating its steps directly --- .github/actions/configure-bridge/action.yml | 42 ------------ .github/workflows/configure-bridges.yml | 71 +++++++++------------ 2 files changed, 31 insertions(+), 82 deletions(-) delete mode 100644 .github/actions/configure-bridge/action.yml diff --git a/.github/actions/configure-bridge/action.yml b/.github/actions/configure-bridge/action.yml deleted file mode 100644 index 9d740d5b..00000000 --- a/.github/actions/configure-bridge/action.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: 'Configure Bridge' -description: 'Configure bridge between two chains' -inputs: - source_chain: - description: 'Source chain name' - required: true - target_chain: - description: 'Target chain name' - required: true - admin_private_key: - description: 'Admin private key' - required: true - rpc_url: - description: 'RPC URL' - required: true - -runs: - using: 'composite' - steps: - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: stable - cache: true - - - name: Configure bridge from ${{ inputs.source_chain }} to ${{ inputs.target_chain }} - shell: bash - env: - ADMIN_PRIVATE_KEY: ${{ inputs.admin_private_key }} - SOURCE_CHAIN: ${{ inputs.source_chain }} - TARGET_CHAIN: ${{ inputs.target_chain }} - RPC_URL: ${{ inputs.rpc_url }} - run: make configure-bridge - - - name: Save bridge configuration artifacts - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: 'chore: save bridge configuration artifacts for ${{ inputs.source_chain }}→${{ inputs.target_chain }} (run: ${{ github.run_id }})' - file_pattern: 'config/config.json broadcast/' - commit_user_name: 'GitHub Actions Bot' - commit_user_email: 'github-actions[bot]@users.noreply.github.com' - commit_author: 'GitHub Actions Bot ' diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 05a4209a..c24b8618 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -12,12 +12,8 @@ on: - mainnets default: 'testnets' -env: - CI: true - jobs: - configure-testnets: - if: github.event.inputs.network_type == 'testnets' + configure-bridges: runs-on: ubuntu-latest strategy: matrix: @@ -25,57 +21,52 @@ jobs: - environment: sepolia source_chain: sepolia target_chain: arbitrum_sepolia + network_type: testnets - environment: arbitrum_sepolia source_chain: arbitrum_sepolia target_chain: sepolia - fail-fast: false - - concurrency: - group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} - cancel-in-progress: true - - environment: ${{ matrix.environment }} - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Configure Bridge - uses: ./.github/actions/configure-bridge - with: - source_chain: ${{ matrix.source_chain }} - target_chain: ${{ matrix.target_chain }} - admin_private_key: ${{ secrets.ADMIN_PRIVATE_KEY }} - rpc_url: ${{ secrets.RPC_URL }} - - configure-mainnets: - if: github.event.inputs.network_type == 'mainnets' - runs-on: ubuntu-latest - strategy: - matrix: - include: + network_type: testnets - environment: ethereum source_chain: ethereum target_chain: arbitrum + network_type: mainnets - environment: arbitrum source_chain: arbitrum target_chain: ethereum + network_type: mainnets + exclude: + - network_type: ${{ github.event.inputs.network_type == 'testnets' && 'mainnets' || 'testnets' }} fail-fast: false - concurrency: group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} cancel-in-progress: true - + env: + CI: true environment: ${{ matrix.environment }} steps: - uses: actions/checkout@v4 with: submodules: recursive - - - name: Configure Bridge - uses: ./.github/actions/configure-bridge + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: stable + cache: true + + - name: Configure bridge from ${{ matrix.source_chain }} to ${{ matrix.target_chain }} + env: + ADMIN_PRIVATE_KEY: ${{ secrets.ADMIN_PRIVATE_KEY }} + SOURCE_CHAIN: ${{ matrix.source_chain }} + TARGET_CHAIN: ${{ matrix.target_chain }} + RPC_URL: ${{ secrets.RPC_URL }} + run: make configure-bridge + + - name: Save bridge configuration artifacts + uses: stefanzweifel/git-auto-commit-action@v5 with: - source_chain: ${{ matrix.source_chain }} - target_chain: ${{ matrix.target_chain }} - admin_private_key: ${{ secrets.ADMIN_PRIVATE_KEY }} - rpc_url: ${{ secrets.RPC_URL }} + commit_message: 'chore: save bridge configuration artifacts for ${{ matrix.source_chain }}→${{ matrix.target_chain }} (run: ${{ github.run_id }})' + file_pattern: 'config/config.json broadcast/' + commit_user_name: 'GitHub Actions Bot' + commit_user_email: 'github-actions[bot]@users.noreply.github.com' + commit_author: 'GitHub Actions Bot ' From f34580d20bfbd8d15bb0dea9f1ac0bb3ca7d7d5b Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 18:37:22 +0200 Subject: [PATCH 09/17] feat: add network_type matrix to configure bridges job --- .github/workflows/configure-bridges.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index c24b8618..37b341ce 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -17,6 +17,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: + network_type: [testnets, mainnets] include: - environment: sepolia source_chain: sepolia From 90b25f69694169d442f2818cc196b49345931091 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Wed, 23 Jul 2025 16:39:10 +0000 Subject: [PATCH 10/17] =?UTF-8?q?chore:=20save=20bridge=20configuration=20?= =?UTF-8?q?artifacts=20for=20arbitrum=5Fsepolia=E2=86=92sepolia=20(run:=20?= =?UTF-8?q?16476522548)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../421614/run-latest.json | 295 ++++++------------ 1 file changed, 98 insertions(+), 197 deletions(-) diff --git a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json index 2b15602f..002431a1 100644 --- a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json +++ b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json @@ -1,261 +1,162 @@ { "transactions": [ { - "hash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", + "hash": "0x49872b3402c482c2c9f30307e4948a1febd8201e02fa0f65597e3524d5fcdab2", "transactionType": "CALL", "contractName": null, - "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "function": "deployCreate2(bytes32,bytes)", + "contractAddress": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "function": "setPeer(uint32,bytes32)", "arguments": [ - "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", - "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000009923ed3cbd90cd78b910c475f9a731a6e0b8c9630000000000000000000000006edce65403992e310a62460808c4b910d972f10f" + "40161", + "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5" ], "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "gas": "0x52691d", + "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "gas": "0xacc4", "value": "0x0", - "input": "0x263076684f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000004cb26101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000009923ed3cbd90cd78b910c475f9a731a6e0b8c9630000000000000000000000006edce65403992e310a62460808c4b910d972f10f0000000000000000000000000000", - "nonce": "0x9a", + "input": "0x3400288b0000000000000000000000000000000000000000000000000000000000009ce1000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", + "nonce": "0xad", "chainId": "0x66eee" }, - "additionalContracts": [ - { - "transactionType": "CREATE2", - "address": "0xcce40e6e1c74e5ca17085873fb1f484ceaffbc0b", - "initCode": "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000009923ed3cbd90cd78b910c475f9a731a6e0b8c9630000000000000000000000006edce65403992e310a62460808c4b910d972f10f" - } - ], + "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "hash": "0x924c6a5cc040b3a9002cbbcbb78498b91bd0a7db5168ca50a3c0a61a4147d223", "transactionType": "CALL", "contractName": null, - "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "function": "deployCreate2AndInit(bytes32,bytes,bytes,(uint256,uint256))", + "contractAddress": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "function": "setEnforcedOptions((uint32,uint16,bytes)[])", "arguments": [ - "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", - "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c63430008170033000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", - "0xc0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "(0, 0)" + "[(40161, 1, 0x00030100110100000000000000000000000000011170), (40161, 2, 0x00030100110100000000000000000000000000011170)]" ], "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "gas": "0x6aa61", + "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "gas": "0xf042", "value": "0x0", - "input": "0xe96deee44f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c63430008170033000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a300000000000000000000000000000000000000000000000000000000", - "nonce": "0x9b", + "input": "0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009ce10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", + "nonce": "0xae", "chainId": "0x66eee" }, - "additionalContracts": [ - { - "transactionType": "CREATE2", - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "initCode": "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c63430008170033000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000" - } + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x275b8be47947e23a5800d01615be23cf3d456469ed8b4c4888186a5dbeb37551", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", + "function": "grantRole(bytes32,address)", + "arguments": [ + "0xd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978", + "0xB560ae1dD7FdF011Ead2189510ae08f2dbD168a5" ], + "transaction": { + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", + "gas": "0xb506", + "value": "0x0", + "input": "0x2f2ff15dd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "nonce": "0xaf", + "chainId": "0x66eee" + }, + "additionalContracts": [], "isFixedGasLimit": false } ], "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x41e182", + "cumulativeGasUsed": "0x1bffb9f", "logs": [ { - "address": "0xcce40e6e1c74e5ca17085873fb1f484ceaffbc0b", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x919dbb1cad95455cb3ddad306fcf0d859e67807a98b8da6fcda3e7c09ee4a5f0", - "blockNumber": "0xa7b7d54", - "transactionHash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", - "transactionIndex": "0x3", - "logIndex": "0x7", - "removed": false - }, - { - "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", "topics": [ - "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", - "0x000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b", - "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" + "0x238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b" ], - "data": "0x", - "blockHash": "0x919dbb1cad95455cb3ddad306fcf0d859e67807a98b8da6fcda3e7c09ee4a5f0", - "blockNumber": "0xa7b7d54", - "transactionHash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", - "transactionIndex": "0x3", - "logIndex": "0x8", + "data": "0x0000000000000000000000000000000000000000000000000000000000009ce1000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", + "blockHash": "0xc0adeb801ab23bd33f8c2e2ed12e770fc811bc7dfabe850e8a8b5444f3dd5e3e", + "blockNumber": "0xa868f75", + "transactionHash": "0x49872b3402c482c2c9f30307e4948a1febd8201e02fa0f65597e3524d5fcdab2", + "transactionIndex": "0x13", + "logIndex": "0x32", "removed": false } ], - "logsBloom": "0x00020000000000000000000000040000000000000000000000000000000000000000000000000000000000000010000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000002000000000000000000000000000000000000000000000000000000000040000800000200100000000000000080000000000000000000000080000000000800000000000000000000000000000000000000000000000000000000000000000200000000000000000000002004000000000000000000001000000000000000000000000000000000200000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000040000400000000000000000000000000000000080000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", - "transactionIndex": "0x3", - "blockHash": "0x919dbb1cad95455cb3ddad306fcf0d859e67807a98b8da6fcda3e7c09ee4a5f0", - "blockNumber": "0xa7b7d54", - "gasUsed": "0x3e5dc1", + "transactionHash": "0x49872b3402c482c2c9f30307e4948a1febd8201e02fa0f65597e3524d5fcdab2", + "transactionIndex": "0x13", + "blockHash": "0xc0adeb801ab23bd33f8c2e2ed12e770fc811bc7dfabe850e8a8b5444f3dd5e3e", + "blockNumber": "0xa868f75", + "gasUsed": "0x82c6", "effectiveGasPrice": "0x5f5e100", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", "contractAddress": null, - "gasUsedForL1": "0x222", - "l1BlockNumber": "0x8672ff" + "gasUsedForL1": "0x286", + "l1BlockNumber": "0x86ad48" }, { "status": "0x1", - "cumulativeGasUsed": "0x6ad98", + "cumulativeGasUsed": "0xb627", "logs": [ { "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b" - ], - "data": "0x", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", - "topics": [ - "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", - "0x000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" - ], - "data": "0x", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x4", - "removed": false - }, - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" - ], - "data": "0x", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x5", - "removed": false - }, - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" - ], - "data": "0x", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x6", - "removed": false - }, - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" - ], - "data": "0x", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x7", - "removed": false - }, - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3" - ], - "data": "0x", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x8", - "removed": false - }, - { - "address": "0x6edce65403992e310a62460808c4b910d972f10f", - "topics": [ - "0x6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981" - ], - "data": "0x000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a50000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0x9", - "removed": false - }, - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + "0xbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "logIndex": "0xa", + "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009ce10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", + "blockHash": "0x31df678f8600b410e8968991d1d0b1d5bbc5505c4db3e7a4bb1a5d6f1b6f865a", + "blockNumber": "0xa868f9c", + "transactionHash": "0x924c6a5cc040b3a9002cbbcbb78498b91bd0a7db5168ca50a3c0a61a4147d223", + "transactionIndex": "0x1", + "logIndex": "0x0", "removed": false } ], - "logsBloom": "0x00020004000000000000000000040000400000400400000000800000000000000000000014000000200080008010000000000002000000000002000000000000000000000000000000000000000002000001000000000000000100000000000000000000020000100202000000000800000000000000000000010000000000400000000000000021000800000200108000000000000080000000000000000000000080000000000800000000000000000000000000000000001000000000000400000020000000000200000000000000000040002004000100002000400020000080000000000000000000000080000000200400000020000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000080000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", - "transactionIndex": "0x2", - "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", - "blockNumber": "0xa7b7d63", - "gasUsed": "0x4d39a", - "effectiveGasPrice": "0x5f5e100", + "transactionHash": "0x924c6a5cc040b3a9002cbbcbb78498b91bd0a7db5168ca50a3c0a61a4147d223", + "transactionIndex": "0x1", + "blockHash": "0x31df678f8600b410e8968991d1d0b1d5bbc5505c4db3e7a4bb1a5d6f1b6f865a", + "blockNumber": "0xa868f9c", + "gasUsed": "0xb627", + "effectiveGasPrice": "0x6601480", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", "contractAddress": null, - "gasUsedForL1": "0x36", - "l1BlockNumber": "0x8672ff" + "gasUsedForL1": "0x37a", + "l1BlockNumber": "0x86ad49" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x8902", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x275b8be47947e23a5800d01615be23cf3d456469ed8b4c4888186a5dbeb37551", + "transactionIndex": "0x1", + "blockHash": "0xe276a444e9693b5195da47b8cef8b2d9a3773d7f33371b44c48bb14436e9eb8f", + "blockNumber": "0xa868fa8", + "gasUsed": "0x8902", + "effectiveGasPrice": "0x637cc00", + "blobGasUsed": "0x0", + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", + "contractAddress": null, + "gasUsedForL1": "0x26c", + "l1BlockNumber": "0x86ad49" } ], "libraries": [], "pending": [], - "returns": { - "0": { - "internal_type": "address", - "value": "0xB560ae1dD7FdF011Ead2189510ae08f2dbD168a5" - } - }, - "timestamp": 1753104603, + "returns": {}, + "timestamp": 1753288749, "chain": 421614, - "commit": "3e84df9" + "commit": "f34580d" } \ No newline at end of file From 5b55ae674e5147b58378e0bae9400ff38e8ec858 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 18:57:12 +0200 Subject: [PATCH 11/17] feat: update configure bridges workflow to dynamically set matrix based on network type --- .github/workflows/configure-bridges.yml | 56 +++++++++++++++---------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 37b341ce..0a579589 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -13,37 +13,51 @@ on: default: 'testnets' jobs: + setup-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Set matrix based on network type + id: set-matrix + run: | + if [ "${{ github.event.inputs.network_type }}" == "testnets" ]; then + echo 'matrix=[ + { + "source_chain": "sepolia", + "target_chain": "arbitrum_sepolia" + }, + { + "source_chain": "arbitrum_sepolia", + "target_chain": "sepolia" + } + ]' >> $GITHUB_OUTPUT + else + echo 'matrix=[ + { + "source_chain": "ethereum", + "target_chain": "arbitrum" + }, + { + "source_chain": "arbitrum", + "target_chain": "ethereum" + } + ]' >> $GITHUB_OUTPUT + fi + configure-bridges: + needs: setup-matrix runs-on: ubuntu-latest strategy: matrix: - network_type: [testnets, mainnets] - include: - - environment: sepolia - source_chain: sepolia - target_chain: arbitrum_sepolia - network_type: testnets - - environment: arbitrum_sepolia - source_chain: arbitrum_sepolia - target_chain: sepolia - network_type: testnets - - environment: ethereum - source_chain: ethereum - target_chain: arbitrum - network_type: mainnets - - environment: arbitrum - source_chain: arbitrum - target_chain: ethereum - network_type: mainnets - exclude: - - network_type: ${{ github.event.inputs.network_type == 'testnets' && 'mainnets' || 'testnets' }} + include: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} fail-fast: false concurrency: group: configure-bridges-${{ matrix.source_chain }}-${{ matrix.target_chain }} cancel-in-progress: true env: CI: true - environment: ${{ matrix.environment }} + environment: ${{ matrix.source_chain }} steps: - uses: actions/checkout@v4 with: From 5d3bde4d77654e359df65db1847fd4154af37fcf Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 19:04:54 +0200 Subject: [PATCH 12/17] feat: simplify matrix definition for bridge configuration in configure-bridges workflow --- .github/workflows/configure-bridges.yml | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 0a579589..efe5abf9 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -23,25 +23,13 @@ jobs: run: | if [ "${{ github.event.inputs.network_type }}" == "testnets" ]; then echo 'matrix=[ - { - "source_chain": "sepolia", - "target_chain": "arbitrum_sepolia" - }, - { - "source_chain": "arbitrum_sepolia", - "target_chain": "sepolia" - } + {"source_chain":"sepolia","target_chain":"arbitrum_sepolia"}, + {"source_chain":"arbitrum_sepolia","target_chain":"sepolia"} ]' >> $GITHUB_OUTPUT else echo 'matrix=[ - { - "source_chain": "ethereum", - "target_chain": "arbitrum" - }, - { - "source_chain": "arbitrum", - "target_chain": "ethereum" - } + {"source_chain":"ethereum","target_chain":"arbitrum"}, + {"source_chain":"arbitrum","target_chain":"ethereum"} ]' >> $GITHUB_OUTPUT fi From 4db47902aa5de6d9606674a15188b63f92bb8fc1 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 19:07:40 +0200 Subject: [PATCH 13/17] feat: update matrix definition for bridge configuration in setup-matrix job --- .github/workflows/configure-bridges.yml | 31 ++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index efe5abf9..2eb54d91 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -22,16 +22,31 @@ jobs: id: set-matrix run: | if [ "${{ github.event.inputs.network_type }}" == "testnets" ]; then - echo 'matrix=[ - {"source_chain":"sepolia","target_chain":"arbitrum_sepolia"}, - {"source_chain":"arbitrum_sepolia","target_chain":"sepolia"} - ]' >> $GITHUB_OUTPUT + MATRIX='[ + { + "source_chain": "sepolia", + "target_chain": "arbitrum_sepolia" + }, + { + "source_chain": "arbitrum_sepolia", + "target_chain": "sepolia" + } + ]' else - echo 'matrix=[ - {"source_chain":"ethereum","target_chain":"arbitrum"}, - {"source_chain":"arbitrum","target_chain":"ethereum"} - ]' >> $GITHUB_OUTPUT + MATRIX='[ + { + "source_chain": "ethereum", + "target_chain": "arbitrum" + }, + { + "source_chain": "arbitrum", + "target_chain": "ethereum" + } + ]' fi + + # Convertir en une ligne pour GitHub Output + echo "matrix=$(echo "$MATRIX" | jq -c .)" >> $GITHUB_OUTPUT configure-bridges: needs: setup-matrix From 5bb95eaaf839caa874cd161250ec682823ef7b54 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Wed, 23 Jul 2025 17:08:53 +0000 Subject: [PATCH 14/17] =?UTF-8?q?chore:=20save=20bridge=20configuration=20?= =?UTF-8?q?artifacts=20for=20arbitrum=5Fsepolia=E2=86=92sepolia=20(run:=20?= =?UTF-8?q?16477146007)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../421614/run-latest.json | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json index 002431a1..749db36f 100644 --- a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json +++ b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json @@ -1,7 +1,7 @@ { "transactions": [ { - "hash": "0x49872b3402c482c2c9f30307e4948a1febd8201e02fa0f65597e3524d5fcdab2", + "hash": "0x6f8f39a7e2a6cfb97df0550ff9e0f6b16835ab7915c0b64bba5e851e99ba7d91", "transactionType": "CALL", "contractName": null, "contractAddress": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", @@ -13,17 +13,17 @@ "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "gas": "0xacc4", + "gas": "0xab2b", "value": "0x0", "input": "0x3400288b0000000000000000000000000000000000000000000000000000000000009ce1000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "nonce": "0xad", + "nonce": "0xb0", "chainId": "0x66eee" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x924c6a5cc040b3a9002cbbcbb78498b91bd0a7db5168ca50a3c0a61a4147d223", + "hash": "0x34f39a33a1afccda137a3f80bf32ecb94bb22323893e8334721ea27270c2d087", "transactionType": "CALL", "contractName": null, "contractAddress": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", @@ -34,17 +34,17 @@ "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "gas": "0xf042", + "gas": "0xedf9", "value": "0x0", "input": "0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009ce10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", - "nonce": "0xae", + "nonce": "0xb1", "chainId": "0x66eee" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x275b8be47947e23a5800d01615be23cf3d456469ed8b4c4888186a5dbeb37551", + "hash": "0x66e6874ab6aac46b97dfef69135e89346ebc9ea246bbf8d5c96bc421d068b675", "transactionType": "CALL", "contractName": null, "contractAddress": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", @@ -56,10 +56,10 @@ "transaction": { "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", "to": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", - "gas": "0xb506", + "gas": "0xb36b", "value": "0x0", "input": "0x2f2ff15dd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "nonce": "0xaf", + "nonce": "0xb2", "chainId": "0x66eee" }, "additionalContracts": [], @@ -69,7 +69,7 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x1bffb9f", + "cumulativeGasUsed": "0x4ba14", "logs": [ { "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", @@ -77,32 +77,32 @@ "0x238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b" ], "data": "0x0000000000000000000000000000000000000000000000000000000000009ce1000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "blockHash": "0xc0adeb801ab23bd33f8c2e2ed12e770fc811bc7dfabe850e8a8b5444f3dd5e3e", - "blockNumber": "0xa868f75", - "transactionHash": "0x49872b3402c482c2c9f30307e4948a1febd8201e02fa0f65597e3524d5fcdab2", - "transactionIndex": "0x13", - "logIndex": "0x32", + "blockHash": "0xb6d824100b66e401d8cf6e861925112de1c678aa6c0791e893e92408ffcc07b9", + "blockNumber": "0xa86a62b", + "transactionHash": "0x6f8f39a7e2a6cfb97df0550ff9e0f6b16835ab7915c0b64bba5e851e99ba7d91", + "transactionIndex": "0x3", + "logIndex": "0xc", "removed": false } ], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000040000400000000000000000000000000000000080000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x49872b3402c482c2c9f30307e4948a1febd8201e02fa0f65597e3524d5fcdab2", - "transactionIndex": "0x13", - "blockHash": "0xc0adeb801ab23bd33f8c2e2ed12e770fc811bc7dfabe850e8a8b5444f3dd5e3e", - "blockNumber": "0xa868f75", - "gasUsed": "0x82c6", + "transactionHash": "0x6f8f39a7e2a6cfb97df0550ff9e0f6b16835ab7915c0b64bba5e851e99ba7d91", + "transactionIndex": "0x3", + "blockHash": "0xb6d824100b66e401d8cf6e861925112de1c678aa6c0791e893e92408ffcc07b9", + "blockNumber": "0xa86a62b", + "gasUsed": "0x81d2", "effectiveGasPrice": "0x5f5e100", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", "contractAddress": null, - "gasUsedForL1": "0x286", - "l1BlockNumber": "0x86ad48" + "gasUsedForL1": "0x192", + "l1BlockNumber": "0x86addc" }, { "status": "0x1", - "cumulativeGasUsed": "0xb627", + "cumulativeGasUsed": "0x2df07", "logs": [ { "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", @@ -110,53 +110,53 @@ "0xbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009ce10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", - "blockHash": "0x31df678f8600b410e8968991d1d0b1d5bbc5505c4db3e7a4bb1a5d6f1b6f865a", - "blockNumber": "0xa868f9c", - "transactionHash": "0x924c6a5cc040b3a9002cbbcbb78498b91bd0a7db5168ca50a3c0a61a4147d223", - "transactionIndex": "0x1", - "logIndex": "0x0", + "blockHash": "0xc7c25c4d1868310f79de342843bf353f243ab7a0671524f0d3854b027b0dc809", + "blockNumber": "0xa86a634", + "transactionHash": "0x34f39a33a1afccda137a3f80bf32ecb94bb22323893e8334721ea27270c2d087", + "transactionIndex": "0x3", + "logIndex": "0x4", "removed": false } ], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000080000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x924c6a5cc040b3a9002cbbcbb78498b91bd0a7db5168ca50a3c0a61a4147d223", - "transactionIndex": "0x1", - "blockHash": "0x31df678f8600b410e8968991d1d0b1d5bbc5505c4db3e7a4bb1a5d6f1b6f865a", - "blockNumber": "0xa868f9c", - "gasUsed": "0xb627", - "effectiveGasPrice": "0x6601480", + "transactionHash": "0x34f39a33a1afccda137a3f80bf32ecb94bb22323893e8334721ea27270c2d087", + "transactionIndex": "0x3", + "blockHash": "0xc7c25c4d1868310f79de342843bf353f243ab7a0671524f0d3854b027b0dc809", + "blockNumber": "0xa86a634", + "gasUsed": "0xb4fd", + "effectiveGasPrice": "0x5f5e100", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", "contractAddress": null, - "gasUsedForL1": "0x37a", - "l1BlockNumber": "0x86ad49" + "gasUsedForL1": "0x250", + "l1BlockNumber": "0x86addc" }, { "status": "0x1", - "cumulativeGasUsed": "0x8902", + "cumulativeGasUsed": "0xbdd6c", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x275b8be47947e23a5800d01615be23cf3d456469ed8b4c4888186a5dbeb37551", - "transactionIndex": "0x1", - "blockHash": "0xe276a444e9693b5195da47b8cef8b2d9a3773d7f33371b44c48bb14436e9eb8f", - "blockNumber": "0xa868fa8", - "gasUsed": "0x8902", - "effectiveGasPrice": "0x637cc00", + "transactionHash": "0x66e6874ab6aac46b97dfef69135e89346ebc9ea246bbf8d5c96bc421d068b675", + "transactionIndex": "0x4", + "blockHash": "0xfac5ad55f553e994a0b4edd2ab3b1447871e514ec257f0f65e32d0ba75e84385", + "blockNumber": "0xa86a63d", + "gasUsed": "0x8828", + "effectiveGasPrice": "0x5f5e100", "blobGasUsed": "0x0", "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", "to": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", "contractAddress": null, - "gasUsedForL1": "0x26c", - "l1BlockNumber": "0x86ad49" + "gasUsedForL1": "0x192", + "l1BlockNumber": "0x86adde" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1753288749, + "timestamp": 1753290531, "chain": 421614, - "commit": "f34580d" + "commit": "4db4790" } \ No newline at end of file From cb3c705f529b20285092418302b7e19a8205bce3 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 19:12:25 +0200 Subject: [PATCH 15/17] feat: remove artifact saving step from configure bridges workflow --- .github/workflows/configure-bridges.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/configure-bridges.yml b/.github/workflows/configure-bridges.yml index 2eb54d91..e09cc873 100644 --- a/.github/workflows/configure-bridges.yml +++ b/.github/workflows/configure-bridges.yml @@ -79,12 +79,3 @@ jobs: TARGET_CHAIN: ${{ matrix.target_chain }} RPC_URL: ${{ secrets.RPC_URL }} run: make configure-bridge - - - name: Save bridge configuration artifacts - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: 'chore: save bridge configuration artifacts for ${{ matrix.source_chain }}→${{ matrix.target_chain }} (run: ${{ github.run_id }})' - file_pattern: 'config/config.json broadcast/' - commit_user_name: 'GitHub Actions Bot' - commit_user_email: 'github-actions[bot]@users.noreply.github.com' - commit_author: 'GitHub Actions Bot ' From 93e8bee96b6f118c3891973cabdadac718e5c278 Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 19:13:37 +0200 Subject: [PATCH 16/17] feat: remove run-latest.json file from IexecLayerZeroBridge broadcast --- .../11155111/run-latest.json | 173 ------------------ .../421614/run-latest.json | 162 ---------------- 2 files changed, 335 deletions(-) delete mode 100644 broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json delete mode 100644 broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json diff --git a/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json deleted file mode 100644 index b09dca6d..00000000 --- a/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x6132f3b0f07fec2ded3d6a9846bccf03b91d7d1f1060824aef9cce13fcdf3692", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "function": "setPeer(uint32,bytes32)", - "arguments": [ - "40231", - "0x000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5" - ], - "transaction": { - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "gas": "0x11c83", - "value": "0x0", - "input": "0x3400288b0000000000000000000000000000000000000000000000000000000000009d27000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "nonce": "0x32", - "chainId": "0xaa36a7" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x585a26d83d795f9b5a9df5a8026f81fd3ae4858b30ea95837d44d07096cf6050", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "function": "setEnforcedOptions((uint32,uint16,bytes)[])", - "arguments": [ - "[(40231, 1, 0x00030100110100000000000000000000000000011170), (40231, 2, 0x00030100110100000000000000000000000000011170)]" - ], - "transaction": { - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "gas": "0x1cd89", - "value": "0x0", - "input": "0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009d2700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009d270000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", - "nonce": "0x33", - "chainId": "0xaa36a7" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x51fe4c283a41cdd2af17744cffc91611e19c36cf9644e3834c02f73311241679", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", - "function": "grantRole(bytes32,address)", - "arguments": [ - "0xd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978", - "0xA18e571f91ab58889C348E1764fBaBF622ab89b5" - ], - "transaction": { - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", - "gas": "0x1323b", - "value": "0x0", - "input": "0x2f2ff15dd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "nonce": "0x34", - "chainId": "0xaa36a7" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x1959d32", - "logs": [ - { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "topics": [ - "0x238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000009d27000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", - "blockNumber": "0x86ace7", - "transactionHash": "0x6132f3b0f07fec2ded3d6a9846bccf03b91d7d1f1060824aef9cce13fcdf3692", - "transactionIndex": "0xf8", - "logIndex": "0x1bd", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000800000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x6132f3b0f07fec2ded3d6a9846bccf03b91d7d1f1060824aef9cce13fcdf3692", - "transactionIndex": "0xf8", - "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", - "blockNumber": "0x86ace7", - "gasUsed": "0xcdfc", - "effectiveGasPrice": "0x3ff70c8e", - "blobGasUsed": "0x0", - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x196eb57", - "logs": [ - { - "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "topics": [ - "0xbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009d2700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009d270000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", - "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", - "blockNumber": "0x86ace7", - "transactionHash": "0x585a26d83d795f9b5a9df5a8026f81fd3ae4858b30ea95837d44d07096cf6050", - "transactionIndex": "0xf9", - "logIndex": "0x1be", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000020400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x585a26d83d795f9b5a9df5a8026f81fd3ae4858b30ea95837d44d07096cf6050", - "transactionIndex": "0xf9", - "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", - "blockNumber": "0x86ace7", - "gasUsed": "0x14e25", - "effectiveGasPrice": "0x3ff70c8e", - "blobGasUsed": "0x0", - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", - "contractAddress": null - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x1a5bd85", - "logs": [ - { - "address": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0xd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978", - "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3" - ], - "data": "0x", - "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", - "blockNumber": "0x86ace7", - "transactionHash": "0x51fe4c283a41cdd2af17744cffc91611e19c36cf9644e3834c02f73311241679", - "transactionIndex": "0xff", - "logIndex": "0x1cf", - "removed": false - } - ], - "logsBloom": "0x00000004000000000200000000000080000000000400000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000100000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000080000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000001000000000000000800000000000000000000000004000000040000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x51fe4c283a41cdd2af17744cffc91611e19c36cf9644e3834c02f73311241679", - "transactionIndex": "0xff", - "blockHash": "0x5334e44e401cdb7b9bdc9c3691be9527ecbd0bc3514faa82555d3d927b0d0dc9", - "blockNumber": "0x86ace7", - "gasUsed": "0xddb5", - "effectiveGasPrice": "0x3ff70c8e", - "blobGasUsed": "0x0", - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0x7198ca5eaefe7416d4f3900b58ff1bea33771a65", - "contractAddress": null - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1753287554, - "chain": 11155111, - "commit": "f010e5c" -} \ No newline at end of file diff --git a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json deleted file mode 100644 index 749db36f..00000000 --- a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x6f8f39a7e2a6cfb97df0550ff9e0f6b16835ab7915c0b64bba5e851e99ba7d91", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "function": "setPeer(uint32,bytes32)", - "arguments": [ - "40161", - "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5" - ], - "transaction": { - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "gas": "0xab2b", - "value": "0x0", - "input": "0x3400288b0000000000000000000000000000000000000000000000000000000000009ce1000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "nonce": "0xb0", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x34f39a33a1afccda137a3f80bf32ecb94bb22323893e8334721ea27270c2d087", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "function": "setEnforcedOptions((uint32,uint16,bytes)[])", - "arguments": [ - "[(40161, 1, 0x00030100110100000000000000000000000000011170), (40161, 2, 0x00030100110100000000000000000000000000011170)]" - ], - "transaction": { - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "gas": "0xedf9", - "value": "0x0", - "input": "0xb98bd07000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009ce10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", - "nonce": "0xb1", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x66e6874ab6aac46b97dfef69135e89346ebc9ea246bbf8d5c96bc421d068b675", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", - "function": "grantRole(bytes32,address)", - "arguments": [ - "0xd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978", - "0xB560ae1dD7FdF011Ead2189510ae08f2dbD168a5" - ], - "transaction": { - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", - "gas": "0xb36b", - "value": "0x0", - "input": "0x2f2ff15dd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "nonce": "0xb2", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x4ba14", - "logs": [ - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0x238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000009ce1000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", - "blockHash": "0xb6d824100b66e401d8cf6e861925112de1c678aa6c0791e893e92408ffcc07b9", - "blockNumber": "0xa86a62b", - "transactionHash": "0x6f8f39a7e2a6cfb97df0550ff9e0f6b16835ab7915c0b64bba5e851e99ba7d91", - "transactionIndex": "0x3", - "logIndex": "0xc", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000040000400000000000000000000000000000000080000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x6f8f39a7e2a6cfb97df0550ff9e0f6b16835ab7915c0b64bba5e851e99ba7d91", - "transactionIndex": "0x3", - "blockHash": "0xb6d824100b66e401d8cf6e861925112de1c678aa6c0791e893e92408ffcc07b9", - "blockNumber": "0xa86a62b", - "gasUsed": "0x81d2", - "effectiveGasPrice": "0x5f5e100", - "blobGasUsed": "0x0", - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "contractAddress": null, - "gasUsedForL1": "0x192", - "l1BlockNumber": "0x86addc" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x2df07", - "logs": [ - { - "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "topics": [ - "0xbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000009ce100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000011170000000000000000000000000000000000000000000000000000000000000000000000000000000009ce10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000160003010011010000000000000000000000000001117000000000000000000000", - "blockHash": "0xc7c25c4d1868310f79de342843bf353f243ab7a0671524f0d3854b027b0dc809", - "blockNumber": "0xa86a634", - "transactionHash": "0x34f39a33a1afccda137a3f80bf32ecb94bb22323893e8334721ea27270c2d087", - "transactionIndex": "0x3", - "logIndex": "0x4", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000080000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x34f39a33a1afccda137a3f80bf32ecb94bb22323893e8334721ea27270c2d087", - "transactionIndex": "0x3", - "blockHash": "0xc7c25c4d1868310f79de342843bf353f243ab7a0671524f0d3854b027b0dc809", - "blockNumber": "0xa86a634", - "gasUsed": "0xb4fd", - "effectiveGasPrice": "0x5f5e100", - "blobGasUsed": "0x0", - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", - "contractAddress": null, - "gasUsedForL1": "0x250", - "l1BlockNumber": "0x86addc" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0xbdd6c", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x66e6874ab6aac46b97dfef69135e89346ebc9ea246bbf8d5c96bc421d068b675", - "transactionIndex": "0x4", - "blockHash": "0xfac5ad55f553e994a0b4edd2ab3b1447871e514ec257f0f65e32d0ba75e84385", - "blockNumber": "0xa86a63d", - "gasUsed": "0x8828", - "effectiveGasPrice": "0x5f5e100", - "blobGasUsed": "0x0", - "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", - "to": "0x9923ed3cbd90cd78b910c475f9a731a6e0b8c963", - "contractAddress": null, - "gasUsedForL1": "0x192", - "l1BlockNumber": "0x86adde" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1753290531, - "chain": 421614, - "commit": "4db4790" -} \ No newline at end of file From 5c24ec29eb7d56602dd41fb7e5b4443db1ceb4ad Mon Sep 17 00:00:00 2001 From: Le-Caignec Date: Wed, 23 Jul 2025 19:15:22 +0200 Subject: [PATCH 17/17] Implement code changes to enhance functionality and improve performance --- .../11155111/run-latest.json | 257 +++++++++++++++++ .../421614/run-latest.json | 261 ++++++++++++++++++ 2 files changed, 518 insertions(+) create mode 100644 broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json create mode 100644 broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json diff --git a/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json new file mode 100644 index 00000000..7972257e --- /dev/null +++ b/broadcast/IexecLayerZeroBridge.s.sol/11155111/run-latest.json @@ -0,0 +1,257 @@ +{ + "transactions": [ + { + "hash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "function": "deployCreate2(bytes32,bytes)", + "arguments": [ + "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", + "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000010000000000000000000000007198ca5eaefe7416d4f3900b58ff1bea33771a650000000000000000000000006edce65403992e310a62460808c4b910d972f10f" + ], + "transaction": { + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "gas": "0x5621b2", + "value": "0x0", + "input": "0x263076684f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000004cb26101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000010000000000000000000000007198ca5eaefe7416d4f3900b58ff1bea33771a650000000000000000000000006edce65403992e310a62460808c4b910d972f10f0000000000000000000000000000", + "nonce": "0x30", + "chainId": "0xaa36a7" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x0f9217f1deb72e3297787f515c16280058e94a6d", + "initCode": "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000010000000000000000000000007198ca5eaefe7416d4f3900b58ff1bea33771a650000000000000000000000006edce65403992e310a62460808c4b910d972f10f" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "function": "deployCreate2AndInit(bytes32,bytes,bytes,(uint256,uint256))", + "arguments": [ + "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", + "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c634300081700330000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "0xc0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "(0, 0)" + ], + "transaction": { + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "gas": "0x6aa50", + "value": "0x0", + "input": "0xe96deee44f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c634300081700330000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a300000000000000000000000000000000000000000000000000000000", + "nonce": "0x31", + "chainId": "0xaa36a7" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "initCode": "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c634300081700330000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1eea81b", + "logs": [ + { + "address": "0x0f9217f1deb72e3297787f515c16280058e94a6d", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x1aec209a16592e268f7b35eb5f6f2cd648bf70613d53ebc110b0bcd27bff3fd9", + "blockNumber": "0x867336", + "transactionHash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", + "transactionIndex": "0x93", + "logIndex": "0x123", + "removed": false + }, + { + "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "topics": [ + "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", + "0x0000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d", + "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" + ], + "data": "0x", + "blockHash": "0x1aec209a16592e268f7b35eb5f6f2cd648bf70613d53ebc110b0bcd27bff3fd9", + "blockNumber": "0x867336", + "transactionHash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", + "transactionIndex": "0x93", + "logIndex": "0x124", + "removed": false + } + ], + "logsBloom": "0x00020000000000000000000000040000000000000000000000000000000000000000080000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800000000110000000000000080000000000000000000020080000000000800000000000000000000000000000000000000000000000000000000000000000200000000000000000000002004000000000000000000000000000000000000010000000000000400200000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x020f4f78ffda0d7f0d8c2b66119d2969c5456129b7bd52c6021f48dfd7e65949", + "transactionIndex": "0x93", + "blockHash": "0x1aec209a16592e268f7b35eb5f6f2cd648bf70613d53ebc110b0bcd27bff3fd9", + "blockNumber": "0x867336", + "gasUsed": "0x3e5b95", + "effectiveGasPrice": "0x568321", + "blobGasUsed": "0x0", + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1720b00", + "logs": [ + { + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000000f9217f1deb72e3297787f515c16280058e94a6d" + ], + "data": "0x", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x155", + "removed": false + }, + { + "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "topics": [ + "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", + "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b5", + "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" + ], + "data": "0x", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x156", + "removed": false + }, + { + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + ], + "data": "0x", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x157", + "removed": false + }, + { + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + ], + "data": "0x", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x158", + "removed": false + }, + { + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + ], + "data": "0x", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x159", + "removed": false + }, + { + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3" + ], + "data": "0x", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x15a", + "removed": false + }, + { + "address": "0x6edce65403992e310a62460808c4b910d972f10f", + "topics": [ + "0x6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981" + ], + "data": "0x000000000000000000000000a18e571f91ab58889c348e1764fbabf622ab89b50000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x15b", + "removed": false + }, + { + "address": "0xa18e571f91ab58889c348e1764fbabf622ab89b5", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "logIndex": "0x15c", + "removed": false + } + ], + "logsBloom": "0x00020004000000000200000000040080400000000400000000800000000000000000000014000000200000008000800000000002000000000022000000000000000000000000000000000000000002000001000000000000000100000000000000000000020000000200000000000800000000000000000000010000000000400000000000000020000800000000108000000000000080000000000000000000020080000000000800000000000000000000000000000000001000000000000400000020000000000200000000000000000040002004000100002000000020000080000000000000010000000800000400200400000020000000000000000000", + "type": "0x2", + "transactionHash": "0x895f8bfa7affa2eb9fc4958e12ebe1f8b0bfdb07f9756adf9a8f9224c66399a6", + "transactionIndex": "0xa6", + "blockHash": "0xe852dfbe0e08b7d8401a18a71b4e367f46442342fd679b925d10c0e1582487fa", + "blockNumber": "0x867337", + "gasUsed": "0x4d358", + "effectiveGasPrice": "0x59a906", + "blobGasUsed": "0x0", + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "address", + "value": "0xA18e571f91ab58889C348E1764fBaBF622ab89b5" + } + }, + "timestamp": 1753105321, + "chain": 11155111, + "commit": "25688b5" +} \ No newline at end of file diff --git a/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json new file mode 100644 index 00000000..2b15602f --- /dev/null +++ b/broadcast/IexecLayerZeroBridge.s.sol/421614/run-latest.json @@ -0,0 +1,261 @@ +{ + "transactions": [ + { + "hash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "function": "deployCreate2(bytes32,bytes)", + "arguments": [ + "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", + "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000009923ed3cbd90cd78b910c475f9a731a6e0b8c9630000000000000000000000006edce65403992e310a62460808c4b910d972f10f" + ], + "transaction": { + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "gas": "0x52691d", + "value": "0x0", + "input": "0x263076684f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000004cb26101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000009923ed3cbd90cd78b910c475f9a731a6e0b8c9630000000000000000000000006edce65403992e310a62460808c4b910d972f10f0000000000000000000000000000", + "nonce": "0x9a", + "chainId": "0x66eee" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0xcce40e6e1c74e5ca17085873fb1f484ceaffbc0b", + "initCode": "0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212201758ab61e180794962bfd6027f517ae323020457c6fec82429b45d3c11573d0364736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000009923ed3cbd90cd78b910c475f9a731a6e0b8c9630000000000000000000000006edce65403992e310a62460808c4b910d972f10f" + } + ], + "isFixedGasLimit": false + }, + { + "hash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "function": "deployCreate2AndInit(bytes32,bytes,bytes,(uint256,uint256))", + "arguments": [ + "0x4f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e57875", + "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c63430008170033000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "0xc0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "(0, 0)" + ], + "transaction": { + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "gas": "0x6aa61", + "value": "0x0", + "input": "0xe96deee44f2784ad07b2be2a5c5e466c91d758133f4aa33bd4cf09ddba1a1e1035e5787500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c63430008170033000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a30000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a300000000000000000000000000000000000000000000000000000000", + "nonce": "0x9b", + "chainId": "0x66eee" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "initCode": "0x60806040526040516103ef3803806103ef8339810160408190526100229161025d565b61002c8282610033565b5050610340565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610325565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025557818101518382015260200161023d565b50505f910152565b5f806040838503121561026e575f80fd5b82516001600160a01b0381168114610284575f80fd5b60208401519092506001600160401b03808211156102a0575f80fd5b818501915085601f8301126102b3575f80fd5b8151818111156102c5576102c5610227565b604051601f8201601f19908116603f011681019083821181831017156102ed576102ed610227565b81604052828152886020848701011115610305575f80fd5b61031683602083016020880161023b565b80955050505050509250929050565b5f825161033681846020870161023b565b9190910192915050565b60a38061034c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea26469706673582212206a35fc8b1ea1a1bb1ff430a4dfb4bdcf23671674e78226b213bbe16a0d1ef79264736f6c63430008170033000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x41e182", + "logs": [ + { + "address": "0xcce40e6e1c74e5ca17085873fb1f484ceaffbc0b", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x919dbb1cad95455cb3ddad306fcf0d859e67807a98b8da6fcda3e7c09ee4a5f0", + "blockNumber": "0xa7b7d54", + "transactionHash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", + "transactionIndex": "0x3", + "logIndex": "0x7", + "removed": false + }, + { + "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "topics": [ + "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", + "0x000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b", + "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" + ], + "data": "0x", + "blockHash": "0x919dbb1cad95455cb3ddad306fcf0d859e67807a98b8da6fcda3e7c09ee4a5f0", + "blockNumber": "0xa7b7d54", + "transactionHash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", + "transactionIndex": "0x3", + "logIndex": "0x8", + "removed": false + } + ], + "logsBloom": "0x00020000000000000000000000040000000000000000000000000000000000000000000000000000000000000010000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000002000000000000000000000000000000000000000000000000000000000040000800000200100000000000000080000000000000000000000080000000000800000000000000000000000000000000000000000000000000000000000000000200000000000000000000002004000000000000000000001000000000000000000000000000000000200000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x90f0b6ba6beb7385a26e63f9003017621fc7ca774f1cab99327d861e5c1d56ba", + "transactionIndex": "0x3", + "blockHash": "0x919dbb1cad95455cb3ddad306fcf0d859e67807a98b8da6fcda3e7c09ee4a5f0", + "blockNumber": "0xa7b7d54", + "gasUsed": "0x3e5dc1", + "effectiveGasPrice": "0x5f5e100", + "blobGasUsed": "0x0", + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "contractAddress": null, + "gasUsedForL1": "0x222", + "l1BlockNumber": "0x8672ff" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x6ad98", + "logs": [ + { + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000cce40e6e1c74e5ca17085873fb1f484ceaffbc0b" + ], + "data": "0x", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "topics": [ + "0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7", + "0x000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "0xdfe9165ef286e77409590dba1a1bcd826dca4e58eb44296059b059d5fcbec9f8" + ], + "data": "0x", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + ], + "data": "0x", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + ], + "data": "0x", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "0x000000000000000000000000ba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed" + ], + "data": "0x", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x7", + "removed": false + }, + { + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3" + ], + "data": "0x", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x8", + "removed": false + }, + { + "address": "0x6edce65403992e310a62460808c4b910d972f10f", + "topics": [ + "0x6ee10e9ed4d6ce9742703a498707862f4b00f1396a87195eb93267b3d7983981" + ], + "data": "0x000000000000000000000000b560ae1dd7fdf011ead2189510ae08f2dbd168a50000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0x9", + "removed": false + }, + { + "address": "0xb560ae1dd7fdf011ead2189510ae08f2dbd168a5", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "logIndex": "0xa", + "removed": false + } + ], + "logsBloom": "0x00020004000000000000000000040000400000400400000000800000000000000000000014000000200080008010000000000002000000000002000000000000000000000000000000000000000002000001000000000000000100000000000000000000020000100202000000000800000000000000000000010000000000400000000000000021000800000200108000000000000080000000000000000000000080000000000800000000000000000000000000000000001000000000000400000020000000000200000000000000000040002004000100002000400020000080000000000000000000000080000000200400000020000000000000000000", + "type": "0x2", + "transactionHash": "0x4e7a8ba2636c490a8b5346b6875ad5a643d02ce7543e409a907f89a036ea926d", + "transactionIndex": "0x2", + "blockHash": "0x344916b6317c599f8ac1a52b2afec0d820cf6375ab6b70ec22ec9f224db9c4d5", + "blockNumber": "0xa7b7d63", + "gasUsed": "0x4d39a", + "effectiveGasPrice": "0x5f5e100", + "blobGasUsed": "0x0", + "from": "0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3", + "to": "0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed", + "contractAddress": null, + "gasUsedForL1": "0x36", + "l1BlockNumber": "0x8672ff" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "address", + "value": "0xB560ae1dD7FdF011Ead2189510ae08f2dbD168a5" + } + }, + "timestamp": 1753104603, + "chain": 421614, + "commit": "3e84df9" +} \ No newline at end of file