Contract Overview
Balance:
0 AVAX

AVAX Value:
$0.00(@ $27.64/AVAX)

Token:
More Info
Tag:
Not Available. Update?

Contract Creators:
Contract Source Code Verified (Partial Match)
Contract Name:
BatchTransaction

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 1000000 runs

Created At:
Tue, 10 Sep 2024 05:58:06 GMT
AccessControl.sol
@openzeppelin
contracts
access
AccessControl.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "__native",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "__wnative",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "__assetForwarder",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "__dexspan",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "__assetBridge",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "__feeAdapter",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "NonContractCall",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ReentrantCall",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "appId",
        "type": "uint256"
      }
    ],
    "name": "Executed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "OperationFailedRefundEvent",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [],
    "name": "OperationSuccessful",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "previousAdminRole",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "newAdminRole",
        "type": "bytes32"
      }
    ],
    "name": "RoleAdminChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleGranted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "RoleRevoked",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "DEFAULT_ADMIN_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "SETTER_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "adminWithdrawFunds",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "assetBridge",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "assetForwarder",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dexspan",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "appId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "refundRecipient",
        "type": "address"
      },
      {
        "internalType": "address[]",
        "name": "target",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "value",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256[]",
        "name": "callType",
        "type": "uint256[]"
      },
      {
        "internalType": "bytes[]",
        "name": "data",
        "type": "bytes[]"
      }
    ],
    "name": "executeBatchCallsDestChain",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "appId",
        "type": "uint256"
      },
      {
        "internalType": "address[]",
        "name": "tokens",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "amounts",
        "type": "uint256[]"
      },
      {
        "internalType": "bytes",
        "name": "feeData",
        "type": "bytes"
      },
      {
        "internalType": "address[]",
        "name": "target",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "value",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256[]",
        "name": "callType",
        "type": "uint256[]"
      },
      {
        "internalType": "bytes[]",
        "name": "data",
        "type": "bytes[]"
      }
    ],
    "name": "executeBatchCallsSameChain",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "getRoleAdmin",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "grantRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "tokenSent",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "instruction",
        "type": "bytes"
      }
    ],
    "name": "handleMessage",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "hasRole",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adapter",
        "type": "address"
      }
    ],
    "name": "isAdapterWhitelisted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "native",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "onERC721Received",
    "outputs": [
      {
        "internalType": "bytes4",
        "name": "",
        "type": "bytes4"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "renounceRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "revokeRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "adapters",
        "type": "address[]"
      },
      {
        "internalType": "bool[]",
        "name": "shouldWhitelist",
        "type": "bool[]"
      }
    ],
    "name": "setAdapterWhitelist",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "__assetBridge",
        "type": "address"
      }
    ],
    "name": "setAssetBridge",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "__assetForwarder",
        "type": "address"
      }
    ],
    "name": "setAssetForwarder",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "__dexspan",
        "type": "address"
      }
    ],
    "name": "setDexspan",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wnative",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60c034620001f657601f6200381938819003918201601f191683019291906001600160401b03841183851017620001fb578160c09284926040968752833981010312620001f657620000518162000211565b6020916200006183820162000211565b916200006f85830162000211565b926200007e6060840162000211565b906200009b60a0620000936080870162000211565b950162000211565b926001805560805260a05260018060a01b03928380928160018060a01b031997168760025416176002551685600354161760035516836004541617600455169060055416176005556000808052808252828120338252825260ff838220541615620001be575b7f61c92169ef077349011ff0b1383c894d86c5f0b41d986366b58a6cf31e93beda91828252818152838220338352815260ff84832054161562000183575b83516135d2908162000227823960805181818161029a015281816109450152818161217801528181612e5901528181612fb8015261305b015260a0518161051b0152f35b8282528181528382209033835252828120600160ff198254161790553391600080516020620037f9833981519152339280a43880806200013f565b8080528082528281203382528252828120600160ff19825416179055333382600080516020620037f98339815191528180a462000101565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001f65756fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301ffc9a71461018b57806311b0b42d14610186578063150b7a021461018157806318137a411461017c578063248a9ca314610177578063285f94a0146101725780632cebdeb21461016d5780632f2ff15d1461016857806336568abe14610163578063383536901461015e5780636cec044b1461015957806375ea1c92146101545780637fe689171461014f57806391d148541461014a578063963276f3146101455780639e99ec3914610140578063a2011b3f1461013b578063a217fddf14610136578063c5962f2614610131578063d00a2d5f1461012c578063d547741f14610127578063dfd7cb06146101225763f6f38e7c0361000e5761127d565b6111b3565b6110c9565b610f89565b610e00565b610dc6565b610d6d565b610ce6565b610c33565b610bb1565b610b5f565b6108d6565b610884565b610791565b610678565b61053f565b6104d0565b61047e565b610431565b6103aa565b610319565b61024f565b3461024a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361024a57807f7965db0b0000000000000000000000000000000000000000000000000000000060209214908115610220575b506040519015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501438610215565b600080fd5b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b73ffffffffffffffffffffffffffffffffffffffff81160361024a57565b602435906102e9826102be565b565b9181601f8401121561024a5782359167ffffffffffffffff831161024a576020838186019501011161024a57565b3461024a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a576103536004356102be565b61035e6024356102be565b60643567ffffffffffffffff811161024a5761037e9036906004016102eb565b505060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b3461024a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5773ffffffffffffffffffffffffffffffffffffffff6004356103fa816102be565b6104026112eb565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255600080f35b3461024a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5760043560005260006020526020600160406000200154604051908152f35b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461024a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5760043560243561057d816102be565b60009180835282602052610597600160408520015461157f565b8083528260205260ff6105cd83604086209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5416156105d8578280f35b8083528260205261060c82604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a438808280f35b3461024a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a576024356106b3816102be565b3373ffffffffffffffffffffffffffffffffffffffff8216036106dc57610019906004356116e3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b9181601f8401121561024a5782359167ffffffffffffffff831161024a576020808501948460051b01011161024a57565b6101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5767ffffffffffffffff60243581811161024a576107de60049136908301610760565b60449291923584811161024a576107f89036908401610760565b60649291923586811161024a5761081290369086016102eb565b60849291923588811161024a5761082c9036908801610760565b9160a4358a811161024a576108449036908a01610760565b95909460c4358c811161024a5761085e9036908c01610760565b99909860e4359d8e1161024a5761087b8c6100199f369101610760565b9d909c35611b08565b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b3461024a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57600435610911816102be565b60243561091d816102be565b604435906109296114b3565b8173ffffffffffffffffffffffffffffffffffffffff809416937f0000000000000000000000000000000000000000000000000000000000000000168414600014610a1e57506000809350828193927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff839414610a16575b5af16109ab61230d565b50156109b357005b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152606490fd5b0390fd5b4791506109a1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610adb575b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481019190915290602090829081600081604481015b03925af18015610ad657610aaf57005b6100199060203d8111610acf575b610ac78183610ed7565b810190612220565b503d610abd565b61245b565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529150602082602481865afa928315610ad657610a9f93602093600091610b32575b5092509250610a45565b610b529150843d8111610b58575b610b4a8183610ed7565b810190613031565b38610b28565b503d610b40565b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b3461024a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602060ff610c27602435610bf3816102be565b6004356000526000845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54166040519015158152f35b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57610c656102dc565b67ffffffffffffffff9060443582811161024a57610c87903690600401610760565b60649291923584811161024a57610ca2903690600401610760565b60849291923586811161024a57610cbd903690600401610760565b93909260a43597881161024a57610cdb610019983690600401610760565b979096600435611d96565b3461024a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5773ffffffffffffffffffffffffffffffffffffffff600435610d36816102be565b610d3e6112eb565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455600080f35b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5760206040517f61c92169ef077349011ff0b1383c894d86c5f0b41d986366b58a6cf31e93beda8152f35b3461024a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57602060405160008152f35b3461024a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5773ffffffffffffffffffffffffffffffffffffffff600435610e50816102be565b610e586112eb565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355600080f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff821117610ed257604052565b610e87565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ed257604052565b67ffffffffffffffff8111610ed257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192610f5e82610f18565b91610f6c6040519384610ed7565b82948184528183011161024a578281602093846000960137010152565b3461024a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a57600435610fc4816102be565b60443567ffffffffffffffff811161024a573660238201121561024a57610ff5903690602481600401359101610f52565b61106073ffffffffffffffffffffffffffffffffffffffff806002541633149081156110ba575b81156110ac575b506040519061103182610eb6565b600182527f35000000000000000000000000000000000000000000000000000000000000006020830152611aae565b6002600154146110825761107c91600260015560243590613422565b60018055005b60046040517f37ed32e8000000000000000000000000000000000000000000000000000000008152fd5b905060045416331438611023565b8091506003541633149061101c565b3461024a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5761001960243560043561110a826102be565b80600052600060205261112460016040600020015461157f565b6116e3565b67ffffffffffffffff8111610ed25760051b60200190565b8015150361024a57565b81601f8201121561024a5780359161116283611129565b926111706040519485610ed7565b808452602092838086019260051b82010192831161024a578301905b82821061119a575050505090565b83809183356111a881611141565b81520191019061118c565b3461024a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5767ffffffffffffffff60043581811161024a573660238201121561024a57806004013561120e81611129565b9161121c6040519384610ed7565b81835260209160248385019160051b8301019136831161024a57602401905b828210611264576024358587821161024a5761125e61001992369060040161114b565b906119c4565b8380918335611272816102be565b81520191019061123b565b3461024a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261024a5773ffffffffffffffffffffffffffffffffffffffff6004356112cd816102be565b166000526007602052602060ff604060002054166040519015158152f35b3360009081527f637999432676374d4ea036a5e1ac845bfb5900b653d4393f12108092e01503ce60205260409020547f61c92169ef077349011ff0b1383c894d86c5f0b41d986366b58a6cf31e93beda9060ff16156113475750565b61135033611927565b61135861180e565b91603061136484611869565b53607861137084611876565b5360415b6001811161146057610a12604861142e856114028861139388156118c2565b6040519485937f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208601526113d3815180926020603789019101611652565b84017f206973206d697373696e6720726f6c652000000000000000000000000000000060378201520190611675565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ed7565b6040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352600483016116cf565b90600f81169060108210156114ae577f30313233343536373839616263646566000000000000000000000000000000006114a9921a61149f8487611886565b5360041c91611897565b611374565b61183a565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16156114ec57565b6114f533611927565b60009061150061180e565b91603061150c84611869565b53607861151884611876565b5360415b6001811161153b57610a12604861142e856114028861139388156118c2565b90600f81169060108210156114ae577f303132333435363738396162636465660000000000000000000000000000000061157a921a61149f8487611886565b61151c565b80600052600060205260ff6115b83360406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5416156115c25750565b6115cb33611927565b6115d361180e565b9160306115df84611869565b5360786115eb84611876565b5360415b6001811161160e57610a12604861142e856114028861139388156118c2565b90600f81169060108210156114ae577f303132333435363738396162636465660000000000000000000000000000000061164d921a61149f8487611886565b6115ef565b60005b8381106116655750506000910152565b8181015183820152602001611655565b9061168860209282815194859201611652565b0190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936116c881518092818752878088019101611652565b0116010190565b9060206116e092818152019061168c565b90565b6000908082528160205260ff61171c84604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b541661172757505050565b8082528160205261175b83604084209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b73ffffffffffffffffffffffffffffffffffffffff3394169280a4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90600182018092116117fc57565b6117bf565b919082018092116117fc57565b604051906080820182811067ffffffffffffffff821117610ed257604052604282526060366020840137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051156114ae5760200190565b8051600110156114ae5760210190565b9081518110156114ae570160200190565b80156117fc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b156118c957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b604051906060820182811067ffffffffffffffff821117610ed257604052602a82526040366020840137603061195c83611869565b53607861196883611876565b536029905b60018211611980576116e09150156118c2565b600f81169060108210156114ae577f30313233343536373839616263646566000000000000000000000000000000006119be921a61149f8486611886565b9061196d565b6119cc6112eb565b80519182151580611a6b575b6119ea906119e4611a75565b90611aae565b600090815b8481106119fd575050505050565b80611a0a60019284611af4565b51151573ffffffffffffffffffffffffffffffffffffffff611a2c8388611af4565b511685526007602052604085209060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008354169116179055016119ef565b50805183146119d8565b60405190611a8282610eb6565b600182527f31000000000000000000000000000000000000000000000000000000000000006020830152565b15611ab65750565b610a12906040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152602483019061168c565b80518210156114ae5760209160051b010190565b9e9d9c9b9a99989796959294939160026001541461108257939291906002600155611b3c611b34611a75565b838714611aae565b60009485965b818810611c035750505050611ba29350611b7160055473ffffffffffffffffffffffffffffffffffffffff1690565b9073ffffffffffffffffffffffffffffffffffffffff8216611be5575b505050611b99611d24565b90341015611aae565b60005b868110611bc25750611bb998993390611f08565b6102e960018055565b80611bdf6003611bd56001948b8b611ca4565b35106119e4611d5d565b01611ba5565b611bfb92611bf4913691610f52565b9033612523565b388080611b8e565b909192939495611c3d600191611c37611c25611c208c888a611ca4565b611cb4565b611c308c8a88611ca4565b359061215a565b90611801565b97611c7f611c6b3373ffffffffffffffffffffffffffffffffffffffff166000526006602052604060002090565b611c79611c2084888a611ca4565b90611cd6565b0196959493929190611b42565b90156114ae5790565b90600110156114ae5760200190565b91908110156114ae5760051b0190565b356116e0816102be565b80548210156114ae5760005260206000200190600090565b805468010000000000000000811015610ed257611cf891600182018155611cbe565b819291549060031b9173ffffffffffffffffffffffffffffffffffffffff809116831b921b1916179055565b60405190611d3182610eb6565b600182527f32000000000000000000000000000000000000000000000000000000000000006020830152565b60405190611d6a82610eb6565b600182527f34000000000000000000000000000000000000000000000000000000000000006020830152565b906102e9999897969594939291611de4604051611db281610eb6565b600181527f36000000000000000000000000000000000000000000000000000000000000006020820152303314611aae565b611f08565b60405190611df682610eb6565b600182527f33000000000000000000000000000000000000000000000000000000000000006020830152565b90156114ae578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561024a57019081359167ffffffffffffffff831161024a57602001823603811361024a579190565b91908110156114ae5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561024a57019081359167ffffffffffffffff831161024a57602001823603811361024a579190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116117fc57565b98939692909795949181151580612151575b80612148575b8061213f575b611f32906119e4611de9565b6001828103611fc45750611f9c611faa95611f957fbcf6a68a2f901be4a23a41b53acd7697893a7e34def4e28acba584da75283b679c9a96611f8e611faf9b97611f88611fbf9f9c98611c2090611fa399611c8c565b99611c8c565b3595611c8c565b3594611e22565b3691610f52565b9285612915565b612d72565b6040519081529081906020820190565b0390a1565b97926120198a89898786612013611f9c829f9d8d9f9d61200c906120058c8f859f81611ff9611c20611fff94611c2094611c8c565b9a611c95565b98611c8c565b3597611c8c565b3596611e22565b94612684565b885b83811061205a57505050505050505050507fbcf6a68a2f901be4a23a41b53acd7697893a7e34def4e28acba584da75283b6791611faf611fbf92612d72565b80888c8989898f968f908a8a8d9361207185611edb565b84146120eb57926120df926120d8826120e59c6120d182611f9c976120cb611c208c6120bb8f9e8f611c20886120aa92611c2094611ca4565b9f6120b488611edb565b9084611ca4565b9e6120c5866117ee565b91611ca4565b9c611ca4565b359a611ca4565b3598611e7b565b95612a3c565b0161201b565b9161212d8461213a9b612126828096612120611c208a612116611c208f9e6121349f611f9c9f611ca4565b9d6120c586611edb565b9b611ca4565b3599611ca4565b3597611e7b565b946127ed565b6120e5565b50848414611f26565b50848314611f20565b50828214611f1a565b60009073ffffffffffffffffffffffffffffffffffffffff908116907f00000000000000000000000000000000000000000000000000000000000000001681036121a357505090565b6040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152606481019390935290916116e09161221b82608481015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283610ed7565b612235565b9081602091031261024a57516116e081611141565b61228b9173ffffffffffffffffffffffffffffffffffffffff6040519261225b84610eb6565b602084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460208501521661233d565b80519081612297575050565b6020806122a8938301019101612220565b156122af57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5361666545524332303a206f7065726174696f6e206661696c656400000000006044820152fd5b3d15612338573d9061231e82610f18565b9161232c6040519384610ed7565b82523d6000602084013e565b606090565b803f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114159081612403575b50156123d95781600092918360208194519301915af19061238961230d565b9115612393575090565b8151156123a35750805190602001fd5b610a12906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352600483016116cf565b60046040517f304619b5000000000000000000000000000000000000000000000000000000008152fd5b905015153861236a565b6040519061241a82610eb6565b600182527f37000000000000000000000000000000000000000000000000000000000000006020830152565b9081602091031261024a57516116e0816102be565b6040513d6000823e3d90fd5b9060606116e0926000815260006020820152816040820152019061168c565b60609073ffffffffffffffffffffffffffffffffffffffff6116e0949360008352166020820152816040820152019061168c565b60609073ffffffffffffffffffffffffffffffffffffffff6116e0949316815260006020820152816040820152019061168c565b6060916116e0949373ffffffffffffffffffffffffffffffffffffffff8092168352166020820152816040820152019061168c565b919061256461255c6125558373ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b5460ff1690565b6119e461240d565b6000916040517f6af563e900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff906020816004818588165afa908115610ad6576126079591612656575b501661261a57612601611402916040519283917f09c5eabe000000000000000000000000000000000000000000000000000000006020840152602483016116cf565b90612b9c565b8051612611575050565b6102e991612cae565b612601611402916040519283917ff5542f2d00000000000000000000000000000000000000000000000000000000602084015260248301612467565b612677915060203d811161267d575b61266f8183610ed7565b810190612446565b386125bf565b503d612665565b949092916126b861255c6125558673ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b6000604051907f6af563e900000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff91602081600481868b165afa918215610ad657916127cf575b501661278d5750612752611402916040519283917f09c5eabe000000000000000000000000000000000000000000000000000000006020840152602483016116cf565b915b6060936001810361276a57506126079350612b68565b60029192501461277c575b5050612607565b6127869250612b9c565b3880612775565b6127c9906114026040519384927ff5542f2d00000000000000000000000000000000000000000000000000000000602085015260248401612486565b91612754565b6127e7915060203d811161267d5761266f8183610ed7565b3861270f565b9490929161282161255c6125558673ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b6000604051907f6af563e900000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff91602081600481868b165afa918215610ad657916128f7575b50166128bb5750612752611402916040519283917f09c5eabe000000000000000000000000000000000000000000000000000000006020840152602483016116cf565b6127c9906114026040519384927ff5542f2d000000000000000000000000000000000000000000000000000000006020850152602484016124ba565b61290f915060203d811161267d5761266f8183610ed7565b38612878565b9391909161294961255c6125558573ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b6000604051907f6af563e900000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff91602081600481868a165afa918215610ad65791612a1e575b50166129e257612752611402916040519283917f09c5eabe000000000000000000000000000000000000000000000000000000006020840152602483016116cf565b6127c9611402916040519283917ff5542f2d00000000000000000000000000000000000000000000000000000000602084015260248301612467565b612a36915060203d811161267d5761266f8183610ed7565b386129a0565b959193929093612a7261255c6125558773ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b6000604051907f6af563e900000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff91602081600481868c165afa918215610ad65791612b4a575b5016612b0d575050612752611402916040519283917f09c5eabe000000000000000000000000000000000000000000000000000000006020840152602483016116cf565b6114026127c992936040519485937ff5542f2d000000000000000000000000000000000000000000000000000000006020860152602485016124ee565b612b62915060203d811161267d5761266f8183610ed7565b38612ac9565b916000928392602083519301915af1903d916020604051938085528060008387013e84010160405215612b9757565b503d90fd5b3073ffffffffffffffffffffffffffffffffffffffff821614612be857816000929160208493519201905af4903d916020604051938085528060008387013e84010160405215612b9757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64656c656761746563616c6c20746f2073656c660000000000000000000000006044820152fd5b81601f8201121561024a57805191612c5d83611129565b92612c6b6040519485610ed7565b808452602092838086019260051b82010192831161024a578301905b828210612c95575050505090565b8380918351612ca3816102be565b815201910190612c87565b91909182518301602093848183031261024a57848101519167ffffffffffffffff831161024a57612ce59286809201920101612c46565b92600090815b8551811015612d3557600190612d2f73ffffffffffffffffffffffffffffffffffffffff8087168652600685526040862090612d27848b611af4565b511690611cd6565b01612ceb565b505050509050565b80549060009081815582612d5057505050565b815260208120918201915b828110612d6757505050565b818155600101612d5b565b73ffffffffffffffffffffffffffffffffffffffff811660005260069060209082825260406000205460005b818110612dce57505073ffffffffffffffffffffffffffffffffffffffff16600052526102e96040600020612d3d565b60019073ffffffffffffffffffffffffffffffffffffffff841660005285855273ffffffffffffffffffffffffffffffffffffffff612e11826040600020611cbe565b90549060031b1c16612e233082613040565b73ffffffffffffffffffffffffffffffffffffffff861680151590612ece575b80612ec5575b612e56575b505001612d9e565b857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168314612ea457612e9d926130eb565b3880612e4e565b612ec09250600080809381935af1612eba61230d565b50612eee565b612e9d565b50801515612e49565b503073ffffffffffffffffffffffffffffffffffffffff87161415612e43565b15612ef557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6e61746976652073656e64206661696c000000000000000000000000000000006044820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831461301f575b829073ffffffffffffffffffffffffffffffffffffffff908184168015159081613014575b508061300b575b612fb3575b5050505090565b8116907f0000000000000000000000000000000000000000000000000000000000000000168114612ff15791612fe8926130eb565b38818180612fac565b50600080808093613006955af1612eba61230d565b612fe8565b50821515612fa7565b905030141538612fa0565b915061302b3083613040565b91612f7b565b9081602091031261024a575190565b73ffffffffffffffffffffffffffffffffffffffff908116907f0000000000000000000000000000000000000000000000000000000000000000811682036130885750503190565b60246020929360405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610ad6576000916130d3575090565b6116e0915060203d8111610b5857610b4a8183610ed7565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff909216602483015260448201929092526102e99161221b82606481016121ef565b51906102e9826102be565b81601f8201121561024a5780519161316c83611129565b9261317a6040519485610ed7565b808452602092838086019260051b82010192831161024a578301905b8282106131a4575050505090565b81518152908301908301613196565b9080601f8301121561024a578151916131cb83611129565b926040906131db82519586610ed7565b808552602093848087019260051b8501019381851161024a57858101925b85841061320a575050505050505090565b835167ffffffffffffffff811161024a5782019083603f8301121561024a57878201519061323782610f18565b61324388519182610ed7565b8281528588848601011161024a576132648a949385948a8685019101611652565b8152019301926131f9565b91909160c08184031261024a5780519261328b6020830161314a565b9260408301519067ffffffffffffffff9182811161024a57836132af918601612c46565b93606081015183811161024a57846132c8918301613155565b93608082015184811161024a57816132e1918401613155565b9360a083015190811161024a576116e092016131b3565b90815180825260208080930193019160005b828110613318575050505090565b83518552938101939281019260010161330a565b90815180825260208092019182818360051b85019501936000915b8483106133575750505050505090565b909192939495848061337183856001950387528a5161168c565b9801930193019194939290613347565b949291909695939660c0860190865273ffffffffffffffffffffffffffffffffffffffff9182602091168188015260c0604088015283518092528060e088019401926000905b838210613409575050505050906133ed826116e09697866133fb950360608801526132f8565b9084820360808601526132f8565b9160a081840391015261332c565b84518116865294820194938201936001909101906133c7565b61344b73ffffffffffffffffffffffffffffffffffffffff92936020808251830101910161326f565b979492969093169560005b84518110156134e857600261346b8287611af4565b511161347957600101613456565b50505050507fb69677b2a82170abd46dbc9853e73529a3ac021a6e65e7c02f89cdf3b3d063c79350806134b0611fbf928585612f53565b506040519384938460409194939294606082019573ffffffffffffffffffffffffffffffffffffffff80921683521660208201520152565b5061352e906114026000969987966040519586948c60208701997f963276f3000000000000000000000000000000000000000000000000000000008b5260248801613381565b519082305af161353c61230d565b501561356c575050507fc2623b31705c3a17d595c59e4c160723c6c140a0a0cbea051392e781b741575d600080a1565b611fbf836134b07fb69677b2a82170abd46dbc9853e73529a3ac021a6e65e7c02f89cdf3b3d063c7958585612f5356fea26469706673582212202db9a97959341231f02c86e9171c308452b692da53e6bcc02c20cef15c9c8b2b64736f6c634300081200332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c7000000000000000000000000f9f4c3dc7ba8f56737a92d74fd67230c38af51f20000000000000000000000004406ebeb7028fc0fc06bb7706a736ac6ada8d2bf0000000000000000000000008c4acd74ff4385f3b7911432fa6787aa14406f8b000000000000000000000000b885d94fdab3f6d5582c1ed6773c1db82c535a34