Files
smom-dbis-138/artifacts/contracts/bridge/adapters/non-evm/HederaAdapter.sol/HederaAdapter.json
2026-03-02 12:14:09 -08:00

702 lines
37 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "HederaAdapter",
"sourceName": "contracts/bridge/adapters/non-evm/HederaAdapter.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "AddressInsufficientBalance",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "string",
"name": "txHash",
"type": "string"
}
],
"name": "HederaBridgeConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "destination",
"type": "string"
}
],
"name": "HederaBridgeInitiated",
"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": "BRIDGE_OPERATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ORACLE_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "recipient",
"type": "bytes"
}
],
"name": "bridge",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "bridgeRequests",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destinationData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "enum IChainAdapter.BridgeStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "completedAt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "cancelBridge",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "string",
"name": "txHash",
"type": "string"
}
],
"name": "confirmTransaction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
}
],
"name": "estimateFee",
"outputs": [
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "getBridgeStatus",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destinationData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "enum IChainAdapter.BridgeStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "completedAt",
"type": "uint256"
}
],
"internalType": "struct IChainAdapter.BridgeRequest",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getChainIdentifier",
"outputs": [
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "string",
"name": "identifier",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "getChainType",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"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": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"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": "bool",
"name": "_isActive",
"type": "bool"
}
],
"name": "setIsActive",
"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": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "txHashes",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
}
],
"name": "validateDestination",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x6080346200009957601f620017dc38819003918201601f19168301916001600160401b038311848410176200009e578084926020946040528339810103126200009957516001600160a01b038116810362000099576200007b90600180556200006881620000b4565b50620000748162000134565b50620001d6565b50600160ff1960025416176002556040516115489081620002748239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200013057818052816020526040822081835260205260408220600160ff198254161790553391600080516020620017bc8339815191528180a4600190565b5090565b6001600160a01b031660008181527f0d4654aaffc87c2c9a3fd6a99770bc308fad799420104834ddcca8973d00903960205260408120549091907f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15689060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620017bc833981519152339380a4600190565b505090565b6001600160a01b031660008181527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160205260408120549091907f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620017bc833981519152339380a460019056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146110055750806307e2cea514610fca57806322f3e2d414610fa7578063248a9ca314610f785780632750fc7814610ef15780632b368ac214610ea55780632f2ff15d14610e6657806336568abe14610e1f5780634be40fd114610de457806360b4141114610d3a5780636cb4dfc014610cfc57806370cf467114610ace5780637ecebe0014610a945780638d7514151461095057806391d1485414610903578063941b9682146108ad57806397e67c3b14610866578063a217fddf1461084a578063a8734a1314610770578063d046b4e2146105f8578063d547741f146105b75763f33ffba31461011157600080fd5b60803660031901126105b257610125611058565b6044356001600160401b0381116105b257610144903690600401611084565b916064356001600160401b0381116105b257610164903690600401611084565b50506002600154146105a057600260015560ff60025416156105685760243515610535576101933684846112ae565b3360005260056020526040600020805490600019821461051f5760018201905561021560a860405180933360601b60208301526bffffffffffffffffffffffff198760601b166034830152602435604883015285516101f9816068850160208a016111e8565b8201906068820152426088820152036088810184520182611122565b8051602090910120926001600160a01b0383166104bb57602435341061048357610268905b60405195610247876110eb565b3387526001600160a01b0385166020880152602435604088015236916112ae565b6060850152826080850152600160a08501524260c0850152600060e0850152826000526003602052604060002060018060a01b038551166bffffffffffffffffffffffff60a01b9081835416178255600182019060018060a01b03602088015116908254161790556040850151600282015560608501518051906001600160401b03821161046d5761030a8261030160038601546110b1565b6003860161123d565b602090601f83116001146103fb5761033b9291600091836103f0575b50508160011b916000199060031b1c19161790565b60038201555b608085015160048201556005810160a086015160068110156103da5760209660079260e09260ff8019835416911617905560c081015160068501550151910155827f6a1ea4a864fc28ad410725a6b0bad1be42dd791c8c1c7e287c9737e51f7e2efe60405193602435855260408786015260018060a01b031693806103cb3395604083019061120b565b0390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610326565b9190600384016000526020600020906000935b601f1984168510610452576001945083601f19811610610439575b505050811b016003820155610341565b015160001960f88460031b161c19169055388080610429565b8181015183556020948501946001909301929091019061040e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761046d5760a082016040526102689161051a906001600160a01b0386166113fe565b61023a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b600080fd5b346105b25760403660031901126105b2576105f66004356105d661106e565b908060005260006020526105f16001604060002001546112e5565b611389565b005b346105b2576020806003193601126105b257600435600052600381526040600020600581019060ff82541660068110156103da578015908115610765575b50156107305780546001600160a01b03908116338190036106f6576001830154821690816106a957505060008083600282959483955416910154908282156106a0575bf115610694575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610679565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761046d576106f1926040526113fe565b610680565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610636565b346105b2576020806003193601126105b257600435600052600481526040600020906040519182600082546107a4816110b1565b93848452600191866001821691826000146108285750506001146107e9575b50506107d192500383611122565b6107e560405192828493845283019061120b565b0390f35b85925060005281600020906000915b8583106108105750506107d1935082010185806107c3565b805483890185015287945086939092019181016107f8565b92509350506107d194915060ff191682840152151560051b82010185806107c3565b346105b25760003660031901126105b257602060405160008152f35b346105b25760003660031901126105b2576107e560405161088681611107565b600681526548656465726160d01b602082015260405191829160208352602083019061120b565b346105b25760003660031901126105b2576107e56040516108cd81611107565b600e81526d121959195c984b53585a5b9b995d60921b60208201526040519182916000835260406020840152604083019061120b565b346105b25760403660031901126105b25761091c61106e565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346105b2576020806003193601126105b257600060e0604051610972816110eb565b82815282848201528260408201526060808201528260808201528260a08201528260c0820152015260043560005260038152604060002090604051906109b7826110eb565b82546001600160a01b0390811683526001840154811682840190815260028501546040850190815291949092906109f060038201611143565b93606086019485526004820154946080870195865260ff6005840154169460a088019560068110156103da57610a85938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610a73610100958660808a015261012089019061120b565b955160a08801525160c0870190611230565b5160e085015251908301520390f35b346105b25760203660031901126105b2576001600160a01b03610ab5611058565b1660005260056020526020604060002054604051908152f35b346105b25760403660031901126105b2576004356001600160401b036024358181116105b257610b02903690600401611084565b3360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160209081526040909120549193917f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff1615610cde57508460005260038152604060002090600582019182549260ff84169360068510156103da576001809503610ca85760029060ff19161790556007429101558560005260048152604060002092851161046d578491610bc983610bc386546110b1565b8661123d565b600091601f8411600114610c435750509080610bfb92600091610c38575b508160011b916000199060031b1c19161790565b90555b816040519283928337810160008152039020907f8479e04b108a2d71f1c709c5984af80c994b1c43a28e9e58b41a4c1c704b302f600080a3005b905084013587610be7565b60008581528181209492601f19841692905b838310610c8e5750505010610c74575b5050600183811b019055610bfe565b830135600019600386901b60f8161c191690558480610c65565b888601358755958601959481019489945091810191610c55565b60405162461bcd60e51b815260048101859052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105b25760203660031901126105b2576004356001600160401b0381116105b257610d2e6020913690600401611084565b90506040519015158152f35b346105b25760203660031901126105b2576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610d8160038301611143565b91610dd6600482015493610dc660ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a015288019061120b565b94608087015260a0860190611230565b60c084015260e08301520390f35b346105b25760003660031901126105b25760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b346105b25760403660031901126105b257610e3861106e565b336001600160a01b03821603610e54576105f690600435611389565b60405163334bd91960e11b8152600490fd5b346105b25760403660031901126105b2576105f6600435610e8561106e565b90806000526000602052610ea06001604060002001546112e5565b61130b565b346105b25760603660031901126105b257610ebe611058565b506044356001600160401b0381116105b257610ede903690600401611084565b5050602060405166038d7ea4c680008152f35b346105b25760203660031901126105b2576004358015158091036105b2573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610f595760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b346105b25760203660031901126105b25760043560005260006020526020600160406000200154604051908152f35b346105b25760003660031901126105b257602060ff600254166040519015158152f35b346105b25760003660031901126105b25760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b346105b25760203660031901126105b2576004359063ffffffff60e01b82168092036105b257602091637965db0b60e01b8114908115611047575b5015158152f35b6301ffc9a760e01b14905083611040565b600435906001600160a01b03821682036105b257565b602435906001600160a01b03821682036105b257565b9181601f840112156105b2578235916001600160401b0383116105b257602083818601950101116105b257565b90600182811c921680156110e1575b60208310146110cb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916110c0565b61010081019081106001600160401b0382111761046d57604052565b604081019081106001600160401b0382111761046d57604052565b90601f801991011681019081106001600160401b0382111761046d57604052565b90604051918260008254611156816110b1565b908184526020946001916001811690816000146111c65750600114611187575b50505061118592500383611122565b565b600090815285812095935091905b8183106111ae5750506111859350820101388080611176565b85548884018501529485019487945091830191611195565b9250505061118594925060ff191682840152151560051b820101388080611176565b60005b8381106111fb5750506000910152565b81810151838201526020016111eb565b90602091611224815180928185528580860191016111e8565b601f01601f1916010190565b9060068210156103da5752565b90601f811161124b57505050565b6000916000526020600020906020601f850160051c83019410611289575b601f0160051c01915b82811061127e57505050565b818155600101611272565b9092508290611269565b6001600160401b03811161046d57601f01601f191660200190565b9291926112ba82611293565b916112c86040519384611122565b8294818452818301116105b2578281602093846000960137010152565b80600052600060205260406000203360005260205260ff6040600020541615610cde5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461138457808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146113845780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b031690611448600080836020829551910182875af13d156114a7573d9061142a82611293565b916114386040519384611122565b82523d84602084013e5b846114af565b908151918215159283611478575b5050506114605750565b60249060405190635274afe760e01b82526004820152fd5b8192935090602091810103126114a35760200151908115918215036114a05750388080611456565b80fd5b5080fd5b606090611442565b906114d657508051156114c457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611509575b6114e7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156114df56fea264697066735822122046eaa325dd7ab704d45032dd1a231b247f861293e95ba9588b8a4ec048d7a54f64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146110055750806307e2cea514610fca57806322f3e2d414610fa7578063248a9ca314610f785780632750fc7814610ef15780632b368ac214610ea55780632f2ff15d14610e6657806336568abe14610e1f5780634be40fd114610de457806360b4141114610d3a5780636cb4dfc014610cfc57806370cf467114610ace5780637ecebe0014610a945780638d7514151461095057806391d1485414610903578063941b9682146108ad57806397e67c3b14610866578063a217fddf1461084a578063a8734a1314610770578063d046b4e2146105f8578063d547741f146105b75763f33ffba31461011157600080fd5b60803660031901126105b257610125611058565b6044356001600160401b0381116105b257610144903690600401611084565b916064356001600160401b0381116105b257610164903690600401611084565b50506002600154146105a057600260015560ff60025416156105685760243515610535576101933684846112ae565b3360005260056020526040600020805490600019821461051f5760018201905561021560a860405180933360601b60208301526bffffffffffffffffffffffff198760601b166034830152602435604883015285516101f9816068850160208a016111e8565b8201906068820152426088820152036088810184520182611122565b8051602090910120926001600160a01b0383166104bb57602435341061048357610268905b60405195610247876110eb565b3387526001600160a01b0385166020880152602435604088015236916112ae565b6060850152826080850152600160a08501524260c0850152600060e0850152826000526003602052604060002060018060a01b038551166bffffffffffffffffffffffff60a01b9081835416178255600182019060018060a01b03602088015116908254161790556040850151600282015560608501518051906001600160401b03821161046d5761030a8261030160038601546110b1565b6003860161123d565b602090601f83116001146103fb5761033b9291600091836103f0575b50508160011b916000199060031b1c19161790565b60038201555b608085015160048201556005810160a086015160068110156103da5760209660079260e09260ff8019835416911617905560c081015160068501550151910155827f6a1ea4a864fc28ad410725a6b0bad1be42dd791c8c1c7e287c9737e51f7e2efe60405193602435855260408786015260018060a01b031693806103cb3395604083019061120b565b0390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610326565b9190600384016000526020600020906000935b601f1984168510610452576001945083601f19811610610439575b505050811b016003820155610341565b015160001960f88460031b161c19169055388080610429565b8181015183556020948501946001909301929091019061040e565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761046d5760a082016040526102689161051a906001600160a01b0386166113fe565b61023a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b600080fd5b346105b25760403660031901126105b2576105f66004356105d661106e565b908060005260006020526105f16001604060002001546112e5565b611389565b005b346105b2576020806003193601126105b257600435600052600381526040600020600581019060ff82541660068110156103da578015908115610765575b50156107305780546001600160a01b03908116338190036106f6576001830154821690816106a957505060008083600282959483955416910154908282156106a0575bf115610694575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610679565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761046d576106f1926040526113fe565b610680565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610636565b346105b2576020806003193601126105b257600435600052600481526040600020906040519182600082546107a4816110b1565b93848452600191866001821691826000146108285750506001146107e9575b50506107d192500383611122565b6107e560405192828493845283019061120b565b0390f35b85925060005281600020906000915b8583106108105750506107d1935082010185806107c3565b805483890185015287945086939092019181016107f8565b92509350506107d194915060ff191682840152151560051b82010185806107c3565b346105b25760003660031901126105b257602060405160008152f35b346105b25760003660031901126105b2576107e560405161088681611107565b600681526548656465726160d01b602082015260405191829160208352602083019061120b565b346105b25760003660031901126105b2576107e56040516108cd81611107565b600e81526d121959195c984b53585a5b9b995d60921b60208201526040519182916000835260406020840152604083019061120b565b346105b25760403660031901126105b25761091c61106e565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346105b2576020806003193601126105b257600060e0604051610972816110eb565b82815282848201528260408201526060808201528260808201528260a08201528260c0820152015260043560005260038152604060002090604051906109b7826110eb565b82546001600160a01b0390811683526001840154811682840190815260028501546040850190815291949092906109f060038201611143565b93606086019485526004820154946080870195865260ff6005840154169460a088019560068110156103da57610a85938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610a73610100958660808a015261012089019061120b565b955160a08801525160c0870190611230565b5160e085015251908301520390f35b346105b25760203660031901126105b2576001600160a01b03610ab5611058565b1660005260056020526020604060002054604051908152f35b346105b25760403660031901126105b2576004356001600160401b036024358181116105b257610b02903690600401611084565b3360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160209081526040909120549193917f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff1615610cde57508460005260038152604060002090600582019182549260ff84169360068510156103da576001809503610ca85760029060ff19161790556007429101558560005260048152604060002092851161046d578491610bc983610bc386546110b1565b8661123d565b600091601f8411600114610c435750509080610bfb92600091610c38575b508160011b916000199060031b1c19161790565b90555b816040519283928337810160008152039020907f8479e04b108a2d71f1c709c5984af80c994b1c43a28e9e58b41a4c1c704b302f600080a3005b905084013587610be7565b60008581528181209492601f19841692905b838310610c8e5750505010610c74575b5050600183811b019055610bfe565b830135600019600386901b60f8161c191690558480610c65565b888601358755958601959481019489945091810191610c55565b60405162461bcd60e51b815260048101859052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b346105b25760203660031901126105b2576004356001600160401b0381116105b257610d2e6020913690600401611084565b90506040519015158152f35b346105b25760203660031901126105b2576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610d8160038301611143565b91610dd6600482015493610dc660ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a015288019061120b565b94608087015260a0860190611230565b60c084015260e08301520390f35b346105b25760003660031901126105b25760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b346105b25760403660031901126105b257610e3861106e565b336001600160a01b03821603610e54576105f690600435611389565b60405163334bd91960e11b8152600490fd5b346105b25760403660031901126105b2576105f6600435610e8561106e565b90806000526000602052610ea06001604060002001546112e5565b61130b565b346105b25760603660031901126105b257610ebe611058565b506044356001600160401b0381116105b257610ede903690600401611084565b5050602060405166038d7ea4c680008152f35b346105b25760203660031901126105b2576004358015158091036105b2573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610f595760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b346105b25760203660031901126105b25760043560005260006020526020600160406000200154604051908152f35b346105b25760003660031901126105b257602060ff600254166040519015158152f35b346105b25760003660031901126105b25760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b346105b25760203660031901126105b2576004359063ffffffff60e01b82168092036105b257602091637965db0b60e01b8114908115611047575b5015158152f35b6301ffc9a760e01b14905083611040565b600435906001600160a01b03821682036105b257565b602435906001600160a01b03821682036105b257565b9181601f840112156105b2578235916001600160401b0383116105b257602083818601950101116105b257565b90600182811c921680156110e1575b60208310146110cb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916110c0565b61010081019081106001600160401b0382111761046d57604052565b604081019081106001600160401b0382111761046d57604052565b90601f801991011681019081106001600160401b0382111761046d57604052565b90604051918260008254611156816110b1565b908184526020946001916001811690816000146111c65750600114611187575b50505061118592500383611122565b565b600090815285812095935091905b8183106111ae5750506111859350820101388080611176565b85548884018501529485019487945091830191611195565b9250505061118594925060ff191682840152151560051b820101388080611176565b60005b8381106111fb5750506000910152565b81810151838201526020016111eb565b90602091611224815180928185528580860191016111e8565b601f01601f1916010190565b9060068210156103da5752565b90601f811161124b57505050565b6000916000526020600020906020601f850160051c83019410611289575b601f0160051c01915b82811061127e57505050565b818155600101611272565b9092508290611269565b6001600160401b03811161046d57601f01601f191660200190565b9291926112ba82611293565b916112c86040519384611122565b8294818452818301116105b2578281602093846000960137010152565b80600052600060205260406000203360005260205260ff6040600020541615610cde5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461138457808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146113845780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b031690611448600080836020829551910182875af13d156114a7573d9061142a82611293565b916114386040519384611122565b82523d84602084013e5b846114af565b908151918215159283611478575b5050506114605750565b60249060405190635274afe760e01b82526004820152fd5b8192935090602091810103126114a35760200151908115918215036114a05750388080611456565b80fd5b5080fd5b606090611442565b906114d657508051156114c457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611509575b6114e7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156114df56fea264697066735822122046eaa325dd7ab704d45032dd1a231b247f861293e95ba9588b8a4ec048d7a54f64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}