12 txs
13 calls
constructor
constructor(address _bungeeGateway, address _tokenMessenger, address _msgTransmitter, address _circleUsdc, address _swapExecutor, address _owner)
functions
_chainIdToDomainMap
viewfunction _chainIdToDomainMap(uint256) view returns (uint32)
BUNGEE_GATEWAY
viewfunction BUNGEE_GATEWAY() view returns (address)
CIRCLE_USDC
viewfunction CIRCLE_USDC() view returns (address)
destinationReceivers
viewfunction destinationReceivers(uint256) view returns (address)
domainToChainIdMap
viewfunction domainToChainIdMap(uint32) view returns (uint256)
getDestinationDomain
viewfunction getDestinationDomain(uint256 toChainId) view returns (uint32)
msgTransmitter
viewfunction msgTransmitter() view returns (address)
NATIVE_TOKEN_ADDRESS
viewfunction NATIVE_TOKEN_ADDRESS() view returns (address)
nominee
viewfunction nominee() view returns (address)
owner
viewfunction owner() view returns (address)
SINGLE_OUTPUT_IMPL_ID
viewfunction SINGLE_OUTPUT_IMPL_ID() view returns (uint8)
swapExecutor
viewfunction swapExecutor() view returns (address)
tokenMessenger
viewfunction tokenMessenger() view returns (address)
addDestinationChainSupport
nonpayablefunction addDestinationChainSupport(address receiver, uint256 toChainId, uint32 domain)
addDomainToChainIdMap
nonpayablefunction addDomainToChainIdMap(uint256 chainId, uint32 domain)
claimOwner
nonpayablefunction claimOwner()
execute
nonpayablefunction execute(uint256 amount, address inputToken, bytes32 requestHash, uint256 expiry, address receiverContract, address feeCollector, tuple exec)
fulfil
payablefunction fulfil(bytes32 requestHash, tuple fulfilExec, address transmitter) payable
handleReceiveMessage
nonpayablefunction handleReceiveMessage(uint32 sourceDomain, bytes32 sender, bytes messageBody) returns (bool received)
nominateOwner
nonpayablefunction nominateOwner(address nominee_)
releaseFunds
nonpayablefunction releaseFunds(address token, uint256 amount, address recipient)
removeDestinationChainSupport
nonpayablefunction removeDestinationChainSupport(uint256 toChainId)
removeDomainToChainIdMap
nonpayablefunction removeDomainToChainIdMap(uint32 domain)
rescue
nonpayablefunction rescue(address token, address to, uint256 amount)
withdrawRequestOnDestination
nonpayablefunction withdrawRequestOnDestination(tuple request, bytes withdrawRequestData)
events
OwnerClaimed
event OwnerClaimed(address indexed claimer)
OwnerNominated
event OwnerNominated(address indexed nominee)
RequestExtracted
event RequestExtracted(bytes32 indexed requestHash, uint8 implId, address transmitter, bytes execution)
RequestFulfilled
event RequestFulfilled(bytes32 indexed requestHash, uint8 implId, address fulfiller, bytes execution)
RequestSettled
event RequestSettled(bytes32 indexed requestHash)
RequestsSettledOnDestination
event RequestsSettledOnDestination(bytes32[] requestHashes, uint8 implId, address transmitter, uint256 outboundFees)
WithdrawOnDestination
event WithdrawOnDestination(bytes32 indexed requestHash, address token, uint256 amount, address to)
WithdrawOnOrigin
event WithdrawOnOrigin(bytes32 indexed requestHash, address token, uint256 amount, address to)
errors
CallerNotBungeeGateway
error CallerNotBungeeGateway()
CallerNotCCTPMessageTransmitter
error CallerNotCCTPMessageTransmitter()
FulfilmentDeadlineNotMet
error FulfilmentDeadlineNotMet()
InvalidFulfil
error InvalidFulfil()
InvalidMsg
error InvalidMsg()
MsgReceiveFailed
error MsgReceiveFailed()
OnlyNominee
error OnlyNominee()
OnlyOwner
error OnlyOwner()
ReleaseFundsNotImplemented
error ReleaseFundsNotImplemented()
TransferFailed
error TransferFailed()
WrongAffiliateFeeLength
error WrongAffiliateFeeLength()
creation bytecode
0x6101206040523480156200001257600080fd5b5060405162002ddb38038062002ddb8339810160408190526200003591620000e5565b6001600160a01b038616608052806200004e8162000075565b50506001600160a01b0393841660a05291831660c052821660e05216610100525062000166565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b80516001600160a01b0381168114620000e057600080fd5b919050565b60008060008060008060c08789031215620000ff57600080fd5b6200010a87620000c8565b95506200011a60208801620000c8565b94506200012a60408801620000c8565b93506200013a60608801620000c8565b92506200014a60808801620000c8565b91506200015a60a08801620000c8565b90509295509295509295565b60805160a05160c05160e05161010051612b886200025360003960008181610360015281816115e4015261161f01526000818161042a01528181610f5101528181610fc90152818161134901528181611542015281816115c20152818161164c015281816117e0015261187c0152600081816105190152818161084201528181610978015281816110f9015281816112640152818161145f01528181611aa60152611b2601526000818161027801528181610f730152610ffb01526000818161030c015281816105ed015281816106c50152818161078e015281816108b40152610cb80152612b886000f3fe60806040526004361061016a5760003560e01c806384fcec46116100d1578063b4e53d7c1161008a578063da2de34411610064578063da2de344146104cc578063df2ebdbb146104df578063e29e9df614610507578063f670e36b1461053b57600080fd5b8063b4e53d7c1461046c578063c1a936dd1461048c578063c410a5df146104ac57600080fd5b806384fcec461461034e578063881b4387146103825780638da5cb5b146103ca57806396abeb70146103e85780639bdb675d14610418578063a2a028ff1461044c57600080fd5b8063461178301161012357806346117830146102665780634eae20e21461029a5780635b94db27146102ba57806362524dd7146102da57806370372d85146102fa578063815b9c481461032e57600080fd5b806312ba63d91461017657806320f99c0a146101b657806320ff430b146101e85780633bd1adec1461020a5780633cbc7eaa1461021f5780633ed33c7f1461024657600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506101a3610191366004611e38565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156101c257600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020016101ad565b3480156101f457600080fd5b50610208610203366004611e7d565b610571565b005b34801561021657600080fd5b506102086105ac565b34801561022b57600080fd5b50610234600181565b60405160ff90911681526020016101ad565b34801561025257600080fd5b50610208610261366004611ebe565b6105e2565b34801561027257600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a657600080fd5b506102086102b5366004611f9f565b6106ba565b3480156102c657600080fd5b506102086102d5366004612010565b61070e565b3480156102e657600080fd5b506102086102f536600461202d565b610783565b34801561030657600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561033a57600080fd5b5061020861034936600461206f565b6107d7565b34801561035a57600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561038e57600080fd5b506103b561039d36600461206f565b60026020526000908152604090205463ffffffff1681565b60405163ffffffff90911681526020016101ad565b3480156103d657600080fd5b506000546001600160a01b03166101d0565b3480156103f457600080fd5b50610408610403366004612088565b610835565b60405190151581526020016101ad565b34801561042457600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561045857600080fd5b506103b561046736600461206f565b610b7a565b34801561047857600080fd5b50610208610487366004611e38565b610ba1565b34801561049857600080fd5b506102086104a73660046120e1565b610be3565b3480156104b857600080fd5b506102086104c736600461210d565b610c25565b6102086104da36600461214b565b610cad565b3480156104eb57600080fd5b506101d073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561051357600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561054757600080fd5b506101d061055636600461206f565b6004602052600090815260409020546001600160a01b031681565b6000546001600160a01b0316331461059c57604051635fc483c560e01b815260040160405180910390fd5b6105a7838284610d01565b505050565b6001546001600160a01b031633146105d757604051637c91ccdd60e01b815260040160405180910390fd5b6105e033610db9565b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461062b57604051634556123760e01b815260040160405180910390fd5b600080806106868a61063d868061219f565b61064c906102208101906121c0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610e0c92505050565b9194509250905081156106a0576106a0898383888c610ea9565b6106ae838a8a8a8a89610f25565b50505050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461070357604051634556123760e01b815260040160405180910390fd5b6105a7838383611184565b6000546001600160a01b0316331461073957604051635fc483c560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107cc57604051634556123760e01b815260040160405180910390fd5b6105a7838383611388565b6000546001600160a01b0316331461080257604051635fc483c560e01b815260040160405180910390fd5b600090815260046020908152604080832080546001600160a01b031916905560029091529020805463ffffffff19169055565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461088057604051634ef57dab60e01b815260040160405180910390fd5b63ffffffff8516600090815260036020526040908190205490516374f8d3fd60e01b815230600482015260248101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374f8d3fd90604401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190612206565b6001600160a01b0385811691161461095257604051631bd147a760e01b815260040160405180910390fd5b6000808080808080610966898b018b612238565b965096509650965096509650965060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feb617248e876040516020016109b892919061229d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016109ec91815260200190565b602060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d91906122c7565b905060008111610a5057604051631bd147a760e01b815260040160405180910390fd5b6040518060e00160405280898152602001866001610a6e91906122f6565b6001600160401b031681526020018e63ffffffff168152602001876001600160a01b0316815260200185815260200184815260200183815250600560008981526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160010160086101000a81548163ffffffff021916908363ffffffff160217905550606082015181600101600c6101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816002015560a0820151816003015560c08201518160040155905050600198505050505050505050949350505050565b600081815260026020526040812054610b9b9060019063ffffffff1661231d565b92915050565b6000546001600160a01b03163314610bcc57604051635fc483c560e01b815260040160405180910390fd5b63ffffffff16600090815260036020526040812055565b6000546001600160a01b03163314610c0e57604051635fc483c560e01b815260040160405180910390fd5b63ffffffff16600090815260036020526040902055565b6000546001600160a01b03163314610c5057604051635fc483c560e01b815260040160405180910390fd5b600082815260046020526040902080546001600160a01b0319166001600160a01b038516179055610c8281600161233a565b600092835260026020526040909220805463ffffffff191663ffffffff909316929092179091555050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cf657604051634556123760e01b815260040160405180910390fd5b6105a78383836113a1565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610da5576000816001600160a01b03168361138890604051600060405180830381858888f193505050503d8060008114610d78576040519150601f19603f3d011682016040523d82523d6000602084013e610d7d565b606091505b5050905080610d9f576040516312171d8360e31b815260040160405180910390fd5b50505050565b6105a76001600160a01b03841682846118c4565b600080546001600160a01b0383166001600160a01b0319918216811783556001805490921690915560405190917ffbe19c9b601f5ee90b44c7390f3fa2319eba01762d34ee372aeafd59b25c7f8791a250565b60008060008060008086511115610e9e5760008651601a14610e4157604051634115207f60e01b815260040160405180910390fd5b610e4c87601461194a565b9050610e598760006119a7565b925065ffffffffffff811615610e9c57662386f26fc10000610e8365ffffffffffff83168a612357565b610e8d919061236e565b9150610e998289612390565b97505b505b959690945092505050565b610eb4858584610d01565b60405163404e3d4960e01b81526001600160a01b03848116600483015260248201869052868116604483015283169063404e3d4990606401600060405180830381600087803b158015610f0657600080fd5b505af1158015610f1a573d6000803e3d6000fd5b505050505050505050565b6000610f3d610f34838061219f565b60200135610b7a565b90506001600160a01b0380841690610f98907f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008a611a0c565b604051637c2b6edb60e11b81526004810189905263ffffffff83166024820152604481018290526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166064830152608482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063f856ddb69060a4016020604051808303816000875af1158015611046573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106a91906123a3565b90506000898861108261012088016101008901612010565b604080516020810194909452838101929092526001600160a01b03166060838101919091526001600160401b03851660808401529087013560a083015286013560c082015260e081018890526101000160408051601f198184030181529082905263f7259a7560e01b825291506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7259a7590611134908790879081908790600401612410565b6020604051808303816000875af1158015611153573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117791906123a3565b5050505050505050505050565b600080808061119585870187612532565b93509350935093506111a984848484611a8c565b60006005816111bf6111ba8b6125de565b611be8565b81526020808201929092526040908101600020815160e0810183528154815260018201546001600160401b03811694820194909452600160401b840463ffffffff1692810192909252600160601b9092046001600160a01b0316606082015260028201546080820152600382015460a082015260049091015460c0820181905290915042101561126257604051630888f67560e41b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feb61724826040015183602001516040516020016112ac92919061229d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016112e091815260200190565b602060405180830381865afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132191906122c7565b60000361134157604051633f560aab60e21b815260040160405180910390fd5b805161137e907f00000000000000000000000000000000000000000000000000000000000000009061137960c08c0160a08d01612010565b610d01565b5050505050505050565b604051636980f16760e01b815260040160405180910390fd5b60008080808080806113b660808a018a6121c0565b8101906113c3919061272f565b96509650965096509650965096506113dd84848484611a8c565b60008a815260056020908152604091829020825160e0810184528154815260018201546001600160401b03811682850181905263ffffffff600160401b8304168387018190526001600160a01b03600160601b9093048316606085015260028501546080850152600385015460a085015260049094015460c0840152945191947f00000000000000000000000000000000000000000000000000000000000000009091169363feb6172493611495939092910161229d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016114c991815260200190565b602060405180830381865afa1580156114e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150a91906122c7565b60000361152a57604051633f560aab60e21b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b591906122c7565b905088156116ad576116087f00000000000000000000000000000000000000000000000000000000000000008a7f0000000000000000000000000000000000000000000000000000000000000000610d01565b60405163017c1d7560e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630be0eba89061167a907f0000000000000000000000000000000000000000000000000000000000000000908d908d908d9060040161281a565b600060405180830381600087803b15801561169457600080fd5b505af11580156116a8573d6000803e3d6000fd5b505050505b81608001518b6040013510806116ca57508160a001518b60600135105b156116e857604051633f560aab60e21b815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6117078c8061219f565b61171a9061018081019061016001612010565b6001600160a01b0316036117725761176d73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61175260608e013560408f013561284d565b61175c8e8061219f565b6113799060c081019060a001612010565b6117c8565b6117a161177f8c8061219f565b6117929061018081019061016001612010565b60408d013561175c8e8061219f565b6117c873eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee60608d013561175c8e8061219f565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185391906122c7565b61185d9083612390565b905060008184600001516118719190612390565b11156118b5576118b57f00000000000000000000000000000000000000000000000000000000000000008285600001516118ab9190612390565b8560600151610d01565b50505050505050505050505050565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610d9f5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064015b60405180910390fd5b600061195782600661284d565b8351101561199e5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7434385f6f75744f66426f756e647360601b6044820152606401611941565b50016006015190565b60006119b482601461284d565b835110156119fc5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401611941565b500160200151600160601b900490565b600060405163095ea7b360e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610d9f5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606401611941565b604051630afd9fa560e31b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906357ecfd2890611add9088908890600401612860565b6020604051808303816000875af1158015611afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b20919061288e565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166357ecfd2885856040518363ffffffff1660e01b8152600401611b72929190612860565b6020604051808303816000875af1158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb5919061288e565b9050811580611bc2575080155b15611be05760405163043d7c2960e21b815260040160405180910390fd5b505050505050565b604051670a4cae2eacae6e8560c31b60208201527510985cda58d4995c5d595cdd0818985cda58d4995c4b60521b60288201527f6164647265737320737761704f7574707574546f6b656e2c0000000000000000603e820152751d5a5b9d0c8d4d881b5a5b94ddd85c13dd5d1c1d5d0b60521b605682015270189e5d195ccccc881b595d1859185d184b607a1b606c82015273627974657320616666696c69617465466565732960601b607d820152600090609101604051602081830303815290604052604051602001611cbb906128b0565b60408051601f1981840301815290829052611cd99291602001612a61565b60405160208183030381529060405280519060200120611cfc8360000151611d75565b836020015184604001518560600151866080015180519060200120604051602001611d589695949392919095865260208601949094526001600160a01b039290921660408501526060840152608083015260a082015260c00190565b604051602081830303815290604052805190602001209050919050565b6000604051602001611d86906128b0565b604051602081830303815290604052805190602001208260000151468460400151856060015186608001518760a001518860c001518960e001518a61010001518b61012001518c61014001518d61016001518e61018001518f6101a00151604051602001611e019e9d9c9b9a99989796959493929190612a90565b60408051601f1981840301815290829052611d589291602001612b2c565b803563ffffffff81168114611e3357600080fd5b919050565b600060208284031215611e4a57600080fd5b611e5382611e1f565b9392505050565b6001600160a01b0381168114611e6f57600080fd5b50565b8035611e3381611e5a565b600080600060608486031215611e9257600080fd5b8335611e9d81611e5a565b92506020840135611ead81611e5a565b929592945050506040919091013590565b600080600080600080600060e0888a031215611ed957600080fd5b873596506020880135611eeb81611e5a565b955060408801359450606088013593506080880135611f0981611e5a565b925060a0880135611f1981611e5a565b915060c08801356001600160401b03811115611f3457600080fd5b8801610120818b031215611f4757600080fd5b8091505092959891949750929550565b60008083601f840112611f6957600080fd5b5081356001600160401b03811115611f8057600080fd5b602083019150836020828501011115611f9857600080fd5b9250929050565b600080600060408486031215611fb457600080fd5b83356001600160401b0380821115611fcb57600080fd5b908501906102408288031215611fe057600080fd5b90935060208501359080821115611ff657600080fd5b5061200386828701611f57565b9497909650939450505050565b60006020828403121561202257600080fd5b8135611e5381611e5a565b60008060006060848603121561204257600080fd5b833561204d81611e5a565b925060208401359150604084013561206481611e5a565b809150509250925092565b60006020828403121561208157600080fd5b5035919050565b6000806000806060858703121561209e57600080fd5b6120a785611e1f565b93506020850135925060408501356001600160401b038111156120c957600080fd5b6120d587828801611f57565b95989497509550505050565b600080604083850312156120f457600080fd5b8235915061210460208401611e1f565b90509250929050565b60008060006060848603121561212257600080fd5b833561212d81611e5a565b92506020840135915061214260408501611e1f565b90509250925092565b60008060006060848603121561216057600080fd5b8335925060208401356001600160401b0381111561217d57600080fd5b840160c0818703121561218f57600080fd5b9150604084013561206481611e5a565b6000823561023e198336030181126121b657600080fd5b9190910192915050565b6000808335601e198436030181126121d757600080fd5b8301803591506001600160401b038211156121f157600080fd5b602001915036819003821315611f9857600080fd5b60006020828403121561221857600080fd5b8151611e5381611e5a565b6001600160401b0381168114611e6f57600080fd5b600080600080600080600060e0888a03121561225357600080fd5b8735965060208801359550604088013561226c81611e5a565b9450606088013561227c81612223565b9699959850939660808101359560a0820135955060c0909101359350915050565b60e09290921b6001600160e01b031916825260c01b6001600160c01b0319166004820152600c0190565b6000602082840312156122d957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03818116838216019080821115612316576123166122e0565b5092915050565b63ffffffff828116828216039080821115612316576123166122e0565b63ffffffff818116838216019080821115612316576123166122e0565b8082028115828204841417610b9b57610b9b6122e0565b60008261238b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610b9b57610b9b6122e0565b6000602082840312156123b557600080fd5b8151611e5381612223565b60005b838110156123db5781810151838201526020016123c3565b50506000910152565b600081518084526123fc8160208601602086016123c0565b601f01601f19169290920160200192915050565b63ffffffff8516815283602082015282604082015260806060820152600061243b60808301846123e4565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561247d5761247d612445565b60405290565b6040516101c081016001600160401b038111828210171561247d5761247d612445565b600082601f8301126124b757600080fd5b81356001600160401b03808211156124d1576124d1612445565b604051601f8301601f19908116603f011681019082821181831017156124f9576124f9612445565b8160405283815286602085880101111561251257600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561254857600080fd5b84356001600160401b038082111561255f57600080fd5b61256b888389016124a6565b9550602087013591508082111561258157600080fd5b61258d888389016124a6565b945060408701359150808211156125a357600080fd5b6125af888389016124a6565b935060608701359150808211156125c557600080fd5b506125d2878288016124a6565b91505092959194509250565b60008136036102408112156125f257600080fd5b6125fa61245b565b6101c08083121561260a57600080fd5b612612612483565b92508435835260208501356020840152604085013560408401526060850135606084015261264260808601611e72565b608084015261265360a08601611e72565b60a084015261266460c08601611e72565b60c084015261267560e08601611e72565b60e0840152610100612688818701611e1f565b9084015261012061269a868201611e72565b9084015261014085810135908401526101606126b7818701611e72565b9084015261018085810135908401526101a080860135908401528282526126df818601611e72565b6020830152506101e08401356040820152610200840135606082015261022084013591506001600160401b0382111561271757600080fd5b612723368386016124a6565b60808201529392505050565b600080600080600080600060e0888a03121561274a57600080fd5b8735965061275a60208901611e72565b955060408801356001600160401b038082111561277657600080fd5b6127828b838c016124a6565b965060608a013591508082111561279857600080fd5b6127a48b838c016124a6565b955060808a01359150808211156127ba57600080fd5b6127c68b838c016124a6565b945060a08a01359150808211156127dc57600080fd5b6127e88b838c016124a6565b935060c08a01359150808211156127fe57600080fd5b5061280b8a828b016124a6565b91505092959891949750929550565b6001600160a01b038581168252602082018590528316604082015260806060820181905260009061243b908301846123e4565b80820180821115610b9b57610b9b6122e0565b60408152600061287360408301856123e4565b828103602084015261288581856123e4565b95945050505050565b6000602082840312156128a057600080fd5b81518015158114611e5357600080fd5b6c084c2e6d2c6a4cae2eacae6e85609b1b8152751d5a5b9d0c8d4d881bdc9a59da5b90da185a5b92590b60521b600d8201527f75696e743235362064657374696e6174696f6e436861696e49642c00000000006023820152701d5a5b9d0c8d4d88191958591b1a5b994b607a1b603e8201526d1d5a5b9d0c8d4d881b9bdb98d94b60921b604f8201526e1859191c995cdcc81cd95b99195c8b608a1b605d820152701859191c995cdcc81c9958d95a5d995c8b607a1b606c820152701859191c995cdcc819195b1959d85d194b607a1b607d820152751859191c995cdcc8189d5b99d95951d85d195dd85e4b60521b608e820152741d5a5b9d0ccc881cddda5d18da189bd85c9912590b605a1b60a4820152721859191c995cdcc81a5b9c1d5d151bdad95b8b606a1b60b9820152731d5a5b9d0c8d4d881a5b9c1d5d105b5bdd5b9d0b60621b60cc820152731859191c995cdcc81bdd5d1c1d5d151bdad95b8b60621b60e08201527f75696e74323536206d696e4f7574707574416d6f756e742c75696e743235362060f48201526c72656675656c416d6f756e742960981b61011482015260006101218201610b9b565b60008351612a738184602088016123c0565b835190830190612a878183602088016123c0565b01949350505050565b8e8152602081018e9052604081018d9052606081018c90526001600160a01b038b811660808301528a811660a083015289811660c0830152881660e08201526101c0810163ffffffff88166101008301526001600160a01b03871661012083015285610140830152612b0e6101608301866001600160a01b03169052565b6101808201939093526101a001529c9b505050505050505050505050565b82815260008251612b448160208501602087016123c0565b91909101602001939250505056fea264697066735822122019a2d59bd7f49a1b67783d594448c25bacef2e8207106c3005c738e84179c79264736f6c6343000813003300000000000000000000000014e5d6d274cfc4e57648b11ee96827fc18452fb6000000000000000000000000bd3fa81b58ba92a82136038b25adec7066af31550000000000000000000000000a992d191deec32afe36203ad87d7d289a738f81000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000fd6b5c873faf51a9a9968eeaf31ec2c9c93dc2a6000000000000000000000000a5acba07788f16b4790fcbb09ca3b7fc8dd053a2