0 txs
0 calls
constructor
constructor(address initialAdmin)
functions
AUTHORITY_ROLE
viewfunction AUTHORITY_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getErc20Transfer
viewfunction getErc20Transfer(string uid) view returns (bytes32, tuple)
getNativeTransfer
viewfunction getNativeTransfer(string uid) view returns (bytes32, uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTransferState
viewfunction getTransferState(string uid) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isErc20Transfer
viewfunction isErc20Transfer(string uid) view returns (bool)
isNativeTransfer
viewfunction isNativeTransfer(string uid) view returns (bool)
isTransferProcessed
viewfunction isTransferProcessed(string uid) view returns (bool)
isTransferReserved
viewfunction isTransferReserved(string uid) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TRANSFER_EXECUTED
viewfunction TRANSFER_EXECUTED() view returns (bytes32)
TRANSFER_RESERVED
viewfunction TRANSFER_RESERVED() view returns (bytes32)
TRANSFER_REVERTED
viewfunction TRANSFER_REVERTED() view returns (bytes32)
executeErc20Transfer
nonpayablefunction executeErc20Transfer(string uid, address receiver) returns (bool)
executeNativeTransfer
nonpayablefunction executeNativeTransfer(string uid, address receiver) returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
reserveErc20Transfer
nonpayablefunction reserveErc20Transfer(string uid, uint8 chargeId, address erc20Address, uint256 erc20Amount, bytes signature, uint40 expiration, address authorizer)
reserveNativeTransfer
payablefunction reserveNativeTransfer(string uid, uint8 chargeId, bytes signature, uint40 expiration, address authorizer) payable
revertErc20Transfer
nonpayablefunction revertErc20Transfer(string uid, address refund) returns (bool)
revertNativeTransfer
nonpayablefunction revertNativeTransfer(string uid, address refund) returns (bool)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TransferExecuted
event TransferExecuted(string uid)
TransferReserved
event TransferReserved(string indexed uid, uint8 chargeId)
TransferReverted
event TransferReverted(string uid)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
FailedCall
error FailedCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234801561000f575f5ffd5b506040516128a23803806128a283398101604081905261002e916100e8565b6100385f8261003f565b5050610115565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166100df575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556100973390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016100e2565b505f5b92915050565b5f602082840312156100f8575f5ffd5b81516001600160a01b038116811461010e575f5ffd5b9392505050565b612780806101225f395ff3fe60806040526004361061018e575f3560e01c80635fc8ff2f116100dc578063a217fddf11610087578063d106871111610062578063d1068711146104fe578063d547741f1461051d578063ee52c2751461053c578063fefd838514610570575f5ffd5b8063a217fddf146104ac578063a33ffe23146104bf578063ac9650d8146104d2575f5ffd5b80638d3818b1116100b75780638d3818b1146103f757806391d148541461042a57806395e7c81414610479575f5ffd5b80635fc8ff2f1461039a5780637eb2a350146103b9578063806574ac146103d8575f5ffd5b806329ba0a651161013c57806336568abe1161011757806336568abe146103295780633ded7f8c146103485780634a3fba0e14610367575f5ffd5b806329ba0a65146102925780632a1f92fd146102e95780632f2ff15d14610308575f5ffd5b8063248a9ca31161016c578063248a9ca3146102265780632800edf91461025457806328864d6714610273575f5ffd5b806301ffc9a7146101925780630e68d082146101c657806317e0adea14610207575b5f5ffd5b34801561019d575f5ffd5b506101b16101ac366004612050565b61058f565b60405190151581526020015b60405180910390f35b3480156101d1575f5ffd5b506101f97f11d01c9b56cdb9581a12ba739ca796bc4781caeb130dfda587b45ce1f3420f3b81565b6040519081526020016101bd565b348015610212575f5ffd5b506101b161022136600461216b565b610627565b348015610231575f5ffd5b506101f96102403660046121a5565b5f9081526020819052604090206001015490565b34801561025f575f5ffd5b506101b161026e3660046121e4565b6106b6565b34801561027e575f5ffd5b506101b161028d36600461216b565b6108d9565b34801561029d575f5ffd5b506102b16102ac36600461216b565b610905565b60408051928352815173ffffffffffffffffffffffffffffffffffffffff1660208085019190915290910151908201526060016101bd565b3480156102f4575f5ffd5b506101b161030336600461216b565b61098e565b348015610313575f5ffd5b5061032761032236600461222f565b6109c0565b005b348015610334575f5ffd5b5061032761034336600461222f565b6109ea565b348015610353575f5ffd5b506101b161036236600461216b565b610a48565b348015610372575f5ffd5b506101f97fd565e3fc066df348a5cbc05a8d6323e00552838041cea2d84cc59876ba37735d81565b3480156103a5575f5ffd5b506101b16103b43660046121e4565b610a71565b3480156103c4575f5ffd5b506101b16103d33660046121e4565b610bb5565b3480156103e3575f5ffd5b506101f96103f236600461216b565b610daa565b348015610402575f5ffd5b506101f97f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca60481565b348015610435575f5ffd5b506101b161044436600461222f565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b348015610484575f5ffd5b506101f97fa4dbb9b4158d444008ec40bb666acc21873cd771fbe533f61c6d9b6a6593289381565b3480156104b7575f5ffd5b506101f95f81565b6103276104cd366004612274565b610dd1565b3480156104dd575f5ffd5b506104f16104ec366004612309565b611056565b6040516101bd91906123c6565b348015610509575f5ffd5b50610327610518366004612447565b61113c565b348015610528575f5ffd5b5061032761053736600461222f565b611442565b348015610547575f5ffd5b5061055b61055636600461216b565b611466565b604080519283526020830191909152016101bd565b34801561057b575f5ffd5b506101b161058a3660046121e4565b6114af565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061062157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f7f11d01c9b56cdb9581a12ba739ca796bc4781caeb130dfda587b45ce1f3420f3b600183604051610659919061250c565b908152602001604051809103902054148061062157507fa4dbb9b4158d444008ec40bb666acc21873cd771fbe533f61c6d9b6a659328936001836040516106a0919061250c565b9081526020016040518091039020541492915050565b5f7fd565e3fc066df348a5cbc05a8d6323e00552838041cea2d84cc59876ba37735d6106e1816115f3565b6106ea8461098e565b15806106fc57506106fa846108d9565b155b15610709575f91506108d2565b7f11d01c9b56cdb9581a12ba739ca796bc4781caeb130dfda587b45ce1f3420f3b60018560405161073a919061250c565b9081526020016040518091039020819055505f60038560405161075d919061250c565b9081526040519081900360200181205473ffffffffffffffffffffffffffffffffffffffff169063a9059cbb90869060039061079a908a9061250c565b908152604051908190036020018120600101547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252610804929160040173ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020604051808303815f875af1158015610820573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108449190612517565b905080610895577f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca60460018660405161087c919061250c565b90815260405190819003602001902055505f91506108d2565b7fcf009d32db190726fb245a5225f57c027fce2bee3fbf253baee4cac36f74a90f856040516108c49190612536565b60405180910390a160019250505b5092915050565b5f5f6003836040516108eb919061250c565b908152602001604051809103902060010154119050919050565b6040805180820182525f80825260208201819052915160019061092990859061250c565b908152602001604051809103902054600384604051610948919061250c565b908152604080519182900360209081018320838301909252815473ffffffffffffffffffffffffffffffffffffffff168352600190910154908201529094909350915050565b5f7f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca6046001836040516106a0919061250c565b5f828152602081905260409020600101546109da816115f3565b6109e48383611600565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610a39576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a4382826116f9565b505050565b5f5f600283604051610a5a919061250c565b908152602001604051809103902054119050919050565b5f7fd565e3fc066df348a5cbc05a8d6323e00552838041cea2d84cc59876ba37735d610a9c816115f3565b610aa58461098e565b1580610ab75750610ab584610a48565b155b15610ac4575f91506108d2565b7f11d01c9b56cdb9581a12ba739ca796bc4781caeb130dfda587b45ce1f3420f3b600185604051610af5919061250c565b9081526020016040518091039020819055505f8373ffffffffffffffffffffffffffffffffffffffff16600286604051610b2f919061250c565b90815260405190819003602001812054905f81818185875af1925050503d805f8114610b76576040519150601f19603f3d011682016040523d82523d5f602084013e610b7b565b606091505b5050905080610895577f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca60460018660405161087c919061250c565b5f7fd565e3fc066df348a5cbc05a8d6323e00552838041cea2d84cc59876ba37735d610be0816115f3565b610be98461098e565b1580610bfb5750610bf9846108d9565b155b15610c08575f91506108d2565b7fa4dbb9b4158d444008ec40bb666acc21873cd771fbe533f61c6d9b6a65932893600185604051610c39919061250c565b9081526020016040518091039020819055505f600385604051610c5c919061250c565b9081526040519081900360200181205473ffffffffffffffffffffffffffffffffffffffff169063a9059cbb908690600390610c99908a9061250c565b908152604051908190036020018120600101547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252610d03929160040173ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020604051808303815f875af1158015610d1f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d439190612517565b905080610d7b577f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca60460018660405161087c919061250c565b7fccb9b3f254b3f999482c0d15f35a281236ba39846c8221f06c25a49576b97934856040516108c49190612536565b5f600182604051610dbb919061250c565b9081526020016040518091039020549050919050565b5f3411610e65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f546f6b656e5472616e7366657252656c61793a205472616e736665722076616c60448201527f7565206973206e756c6c0000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610e6e8561098e565b15610efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f546f6b656e5472616e7366657252656c61793a205472616e7366657220616c7260448201527f65616479207265736572766564000000000000000000000000000000000000006064820152608401610e5c565b610f0485610627565b15610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f546f6b656e5472616e7366657252656c61793a205472616e7366657220616c7260448201527f656164792070726f6365737365640000000000000000000000000000000000006064820152608401610e5c565b610fa083838388885f346117b2565b7f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca604600186604051610fd1919061250c565b90815260200160405180910390208190555034600286604051610ff4919061250c565b9081526040519081900360200181209190915561101290869061250c565b60405190819003812060ff86168252907f0ae086c57599a515485fb9e54e2bf9ffeadd20d192c48640f0ceafd5719846ee9060200160405180910390a25050505050565b604080515f8152602081019091526060908267ffffffffffffffff8111156110805761108061208f565b6040519080825280602002602001820160405280156110b357816020015b606081526020019060019003908161109e5790505b5091505f5b838110156111345761110f308686848181106110d6576110d6612548565b90506020028101906110e89190612575565b856040516020016110fb939291906125dd565b604051602081830303815290604052611a25565b83828151811061112157611121612548565b60209081029190910101526001016110b8565b505092915050565b5f84116111cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f546f6b656e5472616e7366657252656c61793a205472616e736665722076616c60448201527f7565206973206e756c6c000000000000000000000000000000000000000000006064820152608401610e5c565b6111d48761098e565b15611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f546f6b656e5472616e7366657252656c61793a205472616e7366657220616c7260448201527f65616479207265736572766564000000000000000000000000000000000000006064820152608401610e5c565b61126a87610627565b156112f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f546f6b656e5472616e7366657252656c61793a205472616e7366657220616c7260448201527f656164792070726f6365737365640000000000000000000000000000000000006064820152608401610e5c565b6113068383838a8a8a8a6117b2565b7f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca604600188604051611337919061250c565b90815260200160405180910390208190555060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185815250600388604051611384919061250c565b90815260405160209181900382019020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff91821617825592909101516001909101556113ee908616333087611aa4565b866040516113fc919061250c565b60405190819003812060ff88168252907f0ae086c57599a515485fb9e54e2bf9ffeadd20d192c48640f0ceafd5719846ee9060200160405180910390a250505050505050565b5f8281526020819052604090206001015461145c816115f3565b6109e483836116f9565b5f5f600183604051611478919061250c565b908152602001604051809103902054600284604051611497919061250c565b90815260200160405180910390205491509150915091565b5f7fd565e3fc066df348a5cbc05a8d6323e00552838041cea2d84cc59876ba37735d6114da816115f3565b6114e38461098e565b15806114f557506114f384610a48565b155b15611502575f91506108d2565b7fa4dbb9b4158d444008ec40bb666acc21873cd771fbe533f61c6d9b6a65932893600185604051611533919061250c565b9081526020016040518091039020819055505f8373ffffffffffffffffffffffffffffffffffffffff1660028660405161156d919061250c565b90815260405190819003602001812054905f81818185875af1925050503d805f81146115b4576040519150601f19603f3d011682016040523d82523d5f602084013e6115b9565b606091505b5050905080610d7b577f13b7232325d768be97bba0f97971bb57a3353dca49d348277d396291eeaca60460018660405161087c919061250c565b6115fd8133611b39565b50565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff166116f2575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556116903390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610621565b505f610621565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16156116f2575f8381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610621565b73ffffffffffffffffffffffffffffffffffffffff85165f9081527ffd954c8947fdc98546445b97ed0b40d4f2e212d6308d6baacd84bd7753623989602052604090205460ff16611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f546f6b656e5472616e7366657252656c61793a204d697373696e6720726f6c6560448201527f20415554484f524954595f524f4c4520666f7220617574686f72697a657200006064820152608401610e5c565b8564ffffffffff1642111561191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f546f6b656e5472616e7366657252656c61793a205369676e617475726520657860448201527f70697265640000000000000000000000000000000000000000000000000000006064820152608401610e5c565b6119908561198a878946308a8a8a8a6040516020016119429897969594939291906125f2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b89611bc2565b611a1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f546f6b656e5472616e7366657252656c61793a20496e76616c6964205369676e60448201527f61747572650000000000000000000000000000000000000000000000000000006064820152608401610e5c565b50505050505050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff1684604051611a4e919061250c565b5f60405180830381855af49150503d805f8114611a86576040519150601f19603f3d011682016040523d82523d5f602084013e611a8b565b606091505b5091509150611a9b858383611c5c565b95945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526109e4908590611ceb565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16611bbe576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015260248101839052604401610e5c565b5050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b5f03611c47575f5f611bed8585611d8a565b5090925090505f816003811115611c0657611c066126ee565b148015611c3e57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b92505050611c55565b611c52848484611dd3565b90505b9392505050565b606082611c7157611c6c82611f1c565b611c55565b8151158015611c95575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611ce4576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e5c565b5080611c55565b5f5f60205f8451602086015f885af180611d0a576040513d5f823e3d81fd5b50505f513d91508115611d21578060011415611d3b565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156109e4576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e5c565b5f5f5f8351604103611dc1576020840151604085015160608601515f1a611db388828585611f5d565b955095509550505050611dcc565b505081515f91506002905b9250925092565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff168585604051602401611e0092919061271b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1626ba7e0000000000000000000000000000000000000000000000000000000017905251611e81919061250c565b5f60405180830381855afa9150503d805f8114611eb9576040519150601f19603f3d011682016040523d82523d5f602084013e611ebe565b606091505b5091509150818015611ed257506020815110155b8015611f12575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090611f109083016020908101908401612733565b145b9695505050505050565b805115611f2b57805160208201fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611f9657505f91506003905082612046565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611fe7573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661203d57505f925060019150829050612046565b92505f91508190505b9450945094915050565b5f60208284031215612060575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c55575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f8301126120cb575f5ffd5b8135602083015f5f67ffffffffffffffff8411156120eb576120eb61208f565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff821117156121385761213861208f565b60405283815290508082840187101561214f575f5ffd5b838360208301375f602085830101528094505050505092915050565b5f6020828403121561217b575f5ffd5b813567ffffffffffffffff811115612191575f5ffd5b61219d848285016120bc565b949350505050565b5f602082840312156121b5575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146121df575f5ffd5b919050565b5f5f604083850312156121f5575f5ffd5b823567ffffffffffffffff81111561220b575f5ffd5b612217858286016120bc565b925050612226602084016121bc565b90509250929050565b5f5f60408385031215612240575f5ffd5b82359150612226602084016121bc565b803560ff811681146121df575f5ffd5b803564ffffffffff811681146121df575f5ffd5b5f5f5f5f5f60a08688031215612288575f5ffd5b853567ffffffffffffffff81111561229e575f5ffd5b6122aa888289016120bc565b9550506122b960208701612250565b9350604086013567ffffffffffffffff8111156122d4575f5ffd5b6122e0888289016120bc565b9350506122ef60608701612260565b91506122fd608087016121bc565b90509295509295909350565b5f5f6020838503121561231a575f5ffd5b823567ffffffffffffffff811115612330575f5ffd5b8301601f81018513612340575f5ffd5b803567ffffffffffffffff811115612356575f5ffd5b8560208260051b840101111561236a575f5ffd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561243b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845261242685835161237a565b945060209384019391909101906001016123ec565b50929695505050505050565b5f5f5f5f5f5f5f60e0888a03121561245d575f5ffd5b873567ffffffffffffffff811115612473575f5ffd5b61247f8a828b016120bc565b97505061248e60208901612250565b955061249c604089016121bc565b945060608801359350608088013567ffffffffffffffff8111156124be575f5ffd5b6124ca8a828b016120bc565b9350506124d960a08901612260565b91506124e760c089016121bc565b905092959891949750929550565b5f81518060208401855e5f93019283525090919050565b5f611c5582846124f5565b5f60208284031215612527575f5ffd5b81518015158114611c55575f5ffd5b602081525f611c55602083018461237a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126125a8575f5ffd5b83018035915067ffffffffffffffff8211156125c2575f5ffd5b6020019150368190038213156125d6575f5ffd5b9250929050565b828482375f8382015f8152611f1281856124f5565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008960601b1681527fffffffffff0000000000000000000000000000000000000000000000000000008860d81b1660148201528660198201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b1660398201525f612684604d8301876124f5565b60f89590951b7fff00000000000000000000000000000000000000000000000000000000000000168552505060609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166001830152601582015260350195945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b828152604060208201525f61219d604083018461237a565b5f60208284031215612743575f5ffd5b505191905056fea264697066735822122040e2c79d8dae0cc5cee6e2961562c5fb230f0542a9d8410919344829d6557c0c64736f6c634300081e0033000000000000000000000000e62cd51f1cd0594f6cb900414191c5783e0069fa