0 txs
11 calls
constructor
No constructor.
functions
__getFeeDispatcherStorage
purefunction __getFeeDispatcherStorage() pure returns (tuple)
_self
viewfunction _self() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultAdmin
viewfunction defaultAdmin() view returns (address)
defaultAdminDelay
viewfunction defaultAdminDelay() view returns (uint48)
defaultAdminDelayIncreaseWait
viewfunction defaultAdminDelayIncreaseWait() view returns (uint48)
DEPLOYER_ROLE
viewfunction DEPLOYER_ROLE() view returns (bytes32)
getDeployedVault
viewfunction getDeployedVault(uint256 index) view returns (address)
getDeployedVaults
viewfunction getDeployedVaults() view returns (address[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
owner
viewfunction owner() view returns (address)
pendingDefaultAdmin
viewfunction pendingDefaultAdmin() view returns (address newAdmin, uint48 schedule)
pendingDefaultAdminDelay
viewfunction pendingDefaultAdminDelay() view returns (uint48 newDelay, uint48 schedule)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
acceptDefaultAdminTransfer
nonpayablefunction acceptDefaultAdminTransfer()
beginDefaultAdminTransfer
nonpayablefunction beginDefaultAdminTransfer(address newAdmin)
cancelDefaultAdminTransfer
nonpayablefunction cancelDefaultAdminTransfer()
changeDefaultAdminDelay
nonpayablefunction changeDefaultAdminDelay(uint48 newDelay)
createVault
nonpayablefunction createVault(tuple params, bytes32 salt) returns (address)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(tuple params)
removeVault
nonpayablefunction removeVault(uint256 index, address vault)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
rollbackDefaultAdminDelay
nonpayablefunction rollbackDefaultAdminDelay()
upgradeVault
nonpayablefunction upgradeVault(address vault, tuple upgradeVaultParams)
events
DefaultAdminDelayChangeCanceled
event DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled
event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule)
DefaultAdminTransferCanceled
event DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled
event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule)
Initialized
event Initialized(uint64 version)
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)
VaultCreated
event VaultCreated(address indexed vault, string name)
VaultRemoved
event VaultRemoved(address indexed vault)
VaultUpgraded
event VaultUpgraded(address indexed vault)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlEnforcedDefaultAdminDelay
error AccessControlEnforcedDefaultAdminDelay(uint48 schedule)
AccessControlEnforcedDefaultAdminRules
error AccessControlEnforcedDefaultAdminRules()
AccessControlInvalidDefaultAdmin
error AccessControlInvalidDefaultAdmin(address defaultAdmin)
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressNotContract
error AddressNotContract(address addr)
Create2EmptyBytecode
error Create2EmptyBytecode()
Create2FailedDeployment
error Create2FailedDeployment()
Create2InsufficientBalance
error Create2InsufficientBalance(uint256 balance, uint256 needed)
InvalidInitialization
error InvalidInitialization()
InvalidVaultIndex
error InvalidVaultIndex(uint256 index, address vault)
NotDelegateCall
error NotDelegateCall()
NotInitializing
error NotInitializing()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
VaultMisconfigured
error VaultMisconfigured()
creation bytecode
0x60a060405230608052348015610013575f80fd5b5060805161314f6100335f395f81816102ab01526110c0015261314f5ff3fe608060405234801562000010575f80fd5b5060043610620001c4575f3560e01c806384ef8ffc1162000107578063cc8463c8116200009f578063d0affc3d1162000077578063d0affc3d1462000410578063d547741f1462000427578063d602b9fd146200043e578063ecd002611462000448575f80fd5b8063cc8463c814620003cb578063cefc142914620003d5578063cf6eefb714620003df575f80fd5b80639e8df3b311620000df5780639e8df3b3146200036b578063a1eda53c1462000382578063a217fddf14620003ac578063a930b65314620003b4575f80fd5b806384ef8ffc14620003405780638da5cb5b146200034a57806391d148541462000354575f80fd5b8063248a9ca3116200017b5780632f2ff15d11620001535780632f2ff15d14620002e457806336568abe14620002fb578063634e93da1462000312578063649a5ec71462000329575f80fd5b8063248a9ca3146200027f578063273a041c14620002a55780632dad299914620002cd575f80fd5b806301ffc9a714620001c8578063022d63fb14620001f45780630aa6220b14620002115780630bec5c06146200021d578063206c330f146200024d57806320d5f3141462000266575b5f80fd5b620001df620001d936600462001e6d565b6200045b565b60405190151581526020015b60405180910390f35b620697805b60405165ffffffffffff9091168152602001620001eb565b6200021b62000488565b005b620002346200022e366004620020ea565b620004a1565b6040516001600160a01b039091168152602001620001eb565b62000257620007f8565b604051620001eb9190620022f4565b620002706200091f565b604051620001eb919062002385565b6200029662000290366004620023d3565b6200098b565b604051908152602001620001eb565b620002347f000000000000000000000000000000000000000000000000000000000000000081565b6200021b620002de366004620023eb565b620009ac565b6200021b620002f5366004620023eb565b62000b20565b6200021b6200030c366004620023eb565b62000b4f565b6200021b620003233660046200241c565b62000c1e565b6200021b6200033a3660046200243a565b62000c35565b6200023462000c4c565b6200023462000c68565b620001df62000365366004620023eb565b62000c78565b6200021b6200037c36600462002456565b62000caf565b6200038c62001042565b6040805165ffffffffffff938416815292909116602083015201620001eb565b620002965f81565b6200021b620003c5366004620024da565b620010b6565b620001f9620014dd565b6200021b6200155d565b620003e9620015a2565b604080516001600160a01b03909316835265ffffffffffff909116602083015201620001eb565b6200023462000421366004620023d3565b620015d0565b6200021b62000438366004620023eb565b6200160f565b6200021b6200163a565b62000296672222a82627aca2a960c11b81565b5f6001600160e01b031982166318a4c3c360e11b1480620004825750620004828262001650565b92915050565b5f620004948162001686565b6200049e62001692565b50565b5f672222a82627aca2a960c11b620004b98162001686565b5f5f805160206200309a83398151915290505f604051806102200160405280875f01516001600160a01b031681526020018760200151815260200187604001518152602001876060015115158152602001836002015f9054906101000a90046001600160a01b03166001600160a01b03168152602001876080015181526020018760c0015181526020018760e0015181526020018761010001516001600160a01b031681526020018761012001516001600160a01b031681526020018761016001516001600160a01b031681526020018761018001516001600160a01b03168152602001876101a001516001600160a01b03168152602001876101c001516001600160a01b03168152602001876101e0015165ffffffffffff16815260200187610200015160ff16815260200187610240015181525090505f6040518061010001604052808860a001518152602001846003015f9054906101000a90046001600160a01b03166001600160a01b031681526020018861026001516002811115620006475762000647620024f1565b81526020018861022001516001600160a01b031681526020015f81526020015f8152602001846002015f9054906101000a90046001600160a01b03166001600160a01b031681526020018861014001516001600160a01b031681525090505f8282604051602401620006bb92919062002681565b60408051601f19818403018152918152602080830180516001600160e01b0316631c55a64560e21b17905290519192505f916200076e9183918b916200070390820162001e5f565b601f1982820381018352601f90910116604081905260018a015462000739916001600160a01b0390911690889060200162002834565b60408051601f198184030181529082905262000759929160200162002859565b604051602081830303815290604052620016a0565b90505f805160206200309a83398151915280546001810182555f9182526020918290200180546001600160a01b0319166001600160a01b038416908117909155908a01516040517f9ac5b328ab6d3580bb9d913ade0f698d31858dbd2f266e8c5b30ab443f9aff8f91620007e2916200288b565b60405180910390a29550505050505b5092915050565b6200081b60405180606001604052805f81526020015f8152602001606081525090565b604080516060810182527ffdd5e928c3467d3da929a44639dde8d54e0576a04fec4ff333caa67a6f243300805482527ffdd5e928c3467d3da929a44639dde8d54e0576a04fec4ff333caa67a6f243301546020808401919091527ffdd5e928c3467d3da929a44639dde8d54e0576a04fec4ff333caa67a6f243302805485518184028101840187528181529395869594869491860193909290915f9084015b8282101562000910575f848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018082015484860152600290910154918301919091529083529092019101620008ba565b50505050815250509250505090565b60605f805160206200309a8339815191528054604080516020808402820181019092528281529291908301828280156200098157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000962575b5050505050905090565b5f9081525f80516020620030da833981519152602052604090206001015490565b672222a82627aca2a960c11b620009c38162001686565b5f805160206200309a8339815191528054819085908110620009e957620009e96200289f565b5f918252602090912001546001600160a01b0384811691161462000a3757604051632ad9304560e01b8152600481018590526001600160a01b03841660248201526044015b60405180910390fd5b8054819062000a4990600190620028c7565b8154811062000a5c5762000a5c6200289f565b5f9182526020909120015481546001600160a01b039091169082908690811062000a8a5762000a8a6200289f565b5f91825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055805481908062000ac65762000ac6620028dd565b5f8281526020812082015f1990810180546001600160a01b03191690559091019091556040516001600160a01b038516917fe71f3a50e5ad81964f352c411f1d45e35438ecd1acecef59ac81d9fbbf6cbc0a91a250505050565b8162000b3f57604051631fe1e13d60e11b815260040160405180910390fd5b62000b4b828262001729565b5050565b5f80516020620030ba8339815191528215801562000b87575062000b7262000c4c565b6001600160a01b0316826001600160a01b0316145b1562000c0d575f8062000b99620015a2565b90925090506001600160a01b03821615158062000bbc575065ffffffffffff8116155b8062000bd057504265ffffffffffff821610155b1562000bfa576040516319ca5ebb60e01b815265ffffffffffff8216600482015260240162000a2e565b5050805465ffffffffffff60a01b191681555b62000c19838362001751565b505050565b5f62000c2a8162001686565b62000b4b8262001787565b5f62000c418162001686565b62000b4b8262001801565b5f80516020620030fa833981519152546001600160a01b031690565b5f62000c7362000c4c565b905090565b5f9182525f80516020620030da833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b672222a82627aca2a960c11b62000cc68162001686565b6040805160048082526024820183526020820180516001600160e01b031663206c330f60e01b1790529151637c4496cb60e11b815290915f916001600160a01b0387169163f8892d969162000d1e918691016200288b565b5f604051808303815f875af115801562000d3a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000d639190810190620028f1565b80602001905181019062000d78919062002963565b90505f81604001515167ffffffffffffffff81111562000d9c5762000d9c62001e96565b60405190808252806020026020018201604052801562000dfa57816020015b62000de660405180606001604052805f6001600160a01b031681526020015f81526020015f81525090565b81526020019060019003908162000dbb5790505b5090505f5b82604001515181101562000ec55760405180606001604052808460400151838151811062000e315762000e316200289f565b60200260200101515f01516001600160a01b031681526020018460400151838151811062000e635762000e636200289f565b60200260200101516020015181526020018460400151838151811062000e8d5762000e8d6200289f565b60200260200101516040015181525082828151811062000eb15762000eb16200289f565b602090810291909101015260010162000dff565b5060408051610100810182528281527fb15b0e5184d023350edf2480f9c9912300640d68c5b0243b52371c071431c403546001600160a01b0316602082015286515f805160206200309a833981519152925f929190820190600281111562000f315762000f31620024f1565b81526020898101516001600160a01b03908116828401528751604080850191909152918801516060840152600286015481166080840152818b0151811660a090930192909252516395336f8d60e01b81529192508916906395336f8d9062000f9e90849060040162002a7b565b5f604051808303815f87803b15801562000fb6575f80fd5b505af115801562000fc9573d5f803e3d5ffd5b5050505062000fe35f805160206200309a83398151915290565b80546001810182555f918252602082200180546001600160a01b0319166001600160a01b038b1690811790915560405190917f4860ce8322e4fa4e67e8a71f5d7f3b6b0fb0be489540cd861aeb7490bee8605d91a25050505050505050565b5f80516020620030fa833981519152545f90600160d01b900465ffffffffffff165f80516020620030ba83398151915281158015906200108a57504265ffffffffffff831610155b62001097575f80620010ad565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362001100576040516327844c6960e11b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015620011465750825b90505f8267ffffffffffffffff166001148015620011635750303b155b90508115801562001172575080155b15620011915760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620011bc57845460ff60401b1916600160401b1785555b620011e7620011d260608801604089016200243a565b620011e160208901896200241c565b62001878565b5f805160206200309a8339815191526200120860808801606089016200241c565b6001600160a01b03163b5f0362001251576200122b60808801606089016200241c565b60405163247e970160e01b81526001600160a01b03909116600482015260240162000a2e565b5f620012646080890160608a016200241c565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620012a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620012c6919062002a8f565b9050306001600160a01b0316816001600160a01b031663d8a06f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200130f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001335919062002a8f565b6001600160a01b0316146200135d5760405163011eb35760e31b815260040160405180910390fd5b6200136f6080890160608a016200241c565b6001830180546001600160a01b0319166001600160a01b0392909216919091179055620013a360a0890160808a016200241c565b6001600160a01b03163b5f03620013c6576200122b60a0890160808a016200241c565b620013d860a0890160808a016200241c565b6002830180546001600160a01b0319166001600160a01b03929092169190911790556200140c60c0890160a08a016200241c565b6001600160a01b03163b5f036200142f576200122b60c0890160a08a016200241c565b6200144160c0890160a08a016200241c565b6003830180546001600160a01b0319166001600160a01b03929092169190911790556200148b672222a82627aca2a960c11b6200148560408b0160208c016200241c565b6200188e565b5050508315620014d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f80516020620030fa833981519152545f905f80516020620030ba83398151915290600160d01b900465ffffffffffff1680158015906200152557504265ffffffffffff8216105b62001541578154600160d01b900465ffffffffffff1662001556565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f62001568620015a2565b509050336001600160a01b038216146200159857604051636116401160e11b815233600482015260240162000a2e565b6200049e62001909565b5f80516020620030ba833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b5f5f805160206200309a833981519152805483908110620015f557620015f56200289f565b5f918252602090912001546001600160a01b031692915050565b816200162e57604051631fe1e13d60e11b815260040160405180910390fd5b62000b4b8282620019af565b5f620016468162001686565b6200049e620019d1565b5f6001600160e01b03198216637965db0b60e01b14806200048257506301ffc9a760e01b6001600160e01b031983161462000482565b6200049e8133620019dd565b6200169e5f8062001a1a565b565b5f83471015620016cd5760405163392efb2b60e21b81524760048201526024810185905260440162000a2e565b81515f03620016ef57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b0381166200172257604051633a0ba96160e11b815260040160405180910390fd5b9392505050565b62001734826200098b565b6200173f8162001686565b6200174b83836200188e565b50505050565b6001600160a01b03811633146200177b5760405163334bd91960e11b815260040160405180910390fd5b62000c19828262001af7565b5f62001792620014dd565b6200179d4262001b55565b620017a9919062002aad565b9050620017b7828262001b8d565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6200180d8262001c1c565b620018184262001b55565b62001824919062002aad565b905062001832828262001a1a565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b6200188262001c6b565b62000b4b828262001cb5565b5f5f80516020620030ba83398151915283620018f5575f620018af62000c4c565b6001600160a01b031614620018d757604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b62001901848462001d22565b949350505050565b5f80516020620030ba8339815191525f8062001924620015a2565b915091506200193a8165ffffffffffff16151590565b15806200194f57504265ffffffffffff821610155b1562001979576040516319ca5ebb60e01b815265ffffffffffff8216600482015260240162000a2e565b6200198e5f6200198862000c4c565b62001af7565b506200199b5f836200188e565b505081546001600160d01b03191690915550565b620019ba826200098b565b620019c58162001686565b6200174b838362001af7565b6200169e5f8062001b8d565b620019e9828262000c78565b62000b4b5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440162000a2e565b5f80516020620030fa833981519152545f80516020620030ba83398151915290600160d01b900465ffffffffffff16801562001ab9574265ffffffffffff8216101562001a9057600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b0217825562001ab9565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f5f80516020620030ba8339815191528315801562001b30575062001b1b62000c4c565b6001600160a01b0316836001600160a01b0316145b1562001b49576001810180546001600160a01b03191690555b62001901848462001dca565b5f65ffffffffffff82111562001b89576040516306dfcc6560e41b8152603060048201526024810183905260440162000a2e565b5090565b5f80516020620030ba8339815191525f62001ba7620015a2565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915062001be890508165ffffffffffff16151590565b156200174b576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f8062001c28620014dd565b90508065ffffffffffff168365ffffffffffff161162001c545762001c4e838262002acf565b62001722565b6200172265ffffffffffff84166206978062001e48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200169e57604051631afcd79f60e31b815260040160405180910390fd5b62001cbf62001c6b565b5f80516020620030ba8339815191526001600160a01b03821662001cf957604051636116401160e11b81525f600482015260240162000a2e565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556200174b5f836200188e565b5f5f80516020620030da83398151915262001d3e848462000c78565b62001dc0575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905562001d753390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505062000482565b5f91505062000482565b5f5f80516020620030da83398151915262001de6848462000c78565b1562001dc0575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505062000482565b5f81831062001e58578162001722565b5090919050565b6105a88062002af283390190565b5f6020828403121562001e7e575f80fd5b81356001600160e01b03198116811462001722575f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001ed05762001ed062001e96565b60405290565b604051610280810167ffffffffffffffff8111828210171562001ed05762001ed062001e96565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001f295762001f2962001e96565b604052919050565b6001600160a01b03811681146200049e575f80fd5b803562001f538162001f31565b919050565b5f67ffffffffffffffff82111562001f745762001f7462001e96565b50601f01601f191660200190565b5f82601f83011262001f92575f80fd5b813562001fa962001fa38262001f58565b62001efd565b81815284602083860101111562001fbe575f80fd5b816020850160208301375f918101602001919091529392505050565b8035801515811462001f53575f80fd5b5f67ffffffffffffffff82111562002006576200200662001e96565b5060051b60200190565b5f82601f83011262002020575f80fd5b813560206200203362001fa38362001fea565b8281526060928302850182019282820191908785111562002052575f80fd5b8387015b85811015620020a75781818a0312156200206e575f80fd5b6200207862001eaa565b8135620020858162001f31565b8152818601358682015260408083013590820152845292840192810162002056565b5090979650505050505050565b803565ffffffffffff8116811462001f53575f80fd5b803560ff8116811462001f53575f80fd5b80356003811062001f53575f80fd5b5f8060408385031215620020fc575f80fd5b823567ffffffffffffffff8082111562002114575f80fd5b90840190610280828703121562002129575f80fd5b6200213362001ed6565b6200213e8362001f46565b815260208301358281111562002152575f80fd5b620021608882860162001f82565b60208301525060408301358281111562002178575f80fd5b620021868882860162001f82565b6040830152506200219a6060840162001fda565b60608201526080830135608082015260a083013582811115620021bb575f80fd5b620021c98882860162002010565b60a08301525060c083013560c082015260e083013560e08201526101009150620021f582840162001f46565b8282015261012091506200220b82840162001f46565b8282015261014091506200222182840162001f46565b8282015261016091506200223782840162001f46565b8282015261018091506200224d82840162001f46565b828201526101a091506200226382840162001f46565b828201526101c091506200227982840162001f46565b828201526101e091506200228f828401620020b4565b828201526102009150620022a5828401620020ca565b828201526102209150620022bb82840162001f46565b82820152610240915081830135828201526102609150620022de828401620020db565b9181019190915295602094909401359450505050565b5f60208083526080830184516020850152602085015160408501526040850151606080606087015282825180855260a0880191506020840194505f93505b8084101562002379576200236482865180516001600160a01b0316825260208082015190830152604090810151910152565b93850193600193909301929082019062002332565b50979650505050505050565b602080825282518282018190525f9190848201906040850190845b81811015620023c75783516001600160a01b031683529284019291840191600101620023a0565b50909695505050505050565b5f60208284031215620023e4575f80fd5b5035919050565b5f8060408385031215620023fd575f80fd5b823591506020830135620024118162001f31565b809150509250929050565b5f602082840312156200242d575f80fd5b8135620017228162001f31565b5f602082840312156200244b575f80fd5b6200172282620020b4565b5f80828403608081121562002469575f80fd5b8335620024768162001f31565b92506060601f19820112156200248a575f80fd5b506200249562001eaa565b620024a360208501620020db565b81526040840135620024b58162001f31565b60208201526060840135620024ca8162001f31565b6040820152919491935090915050565b5f60c08284031215620024eb575f80fd5b50919050565b634e487b7160e01b5f52602160045260245ffd5b5f5b838110156200252157818101518382015260200162002507565b50505f910152565b5f81518084526200254281602086016020860162002505565b601f01601f19169290920160200192915050565b600381106200257357634e487b7160e01b5f52602160045260245ffd5b9052565b805161010080845281519084018190525f91610120850191602091820190845b81811015620025dd57620025c985845180516001600160a01b0316825260208082015190830152604090810151910152565b606094909401939183019160010162002597565b505050506020830151620025fc60208601826001600160a01b03169052565b50604083015162002611604086018262002556565b5060608301516200262d60608601826001600160a01b03169052565b506080830151608085015260a083015160a085015260c08301516200265d60c08601826001600160a01b03169052565b5060e08301516200267960e08601826001600160a01b03169052565b509392505050565b604081526200269c6040820184516001600160a01b03169052565b5f6020840151610220806060850152620026bb61026085018362002529565b91506040860151603f19858403016080860152620026da838262002529565b9250506060860151620026f160a086018215159052565b5060808601516001600160a01b03811660c08601525060a086015160e085015260c0860151610100818187015260e08801519150610120828188015281890151925061014091506200274d828801846001600160a01b03169052565b88015191506101606200276a878201846001600160a01b03169052565b9088015191506101809062002789878301846001600160a01b03169052565b88015191506101a0620027a6878201846001600160a01b03169052565b9088015191506101c090620027c5878301846001600160a01b03169052565b88015191506101e0620027e2878201846001600160a01b03169052565b90880151915061020090620028008783018465ffffffffffff169052565b88015160ff16928601929092525085015161024084015282810360208401526200282b818562002577565b95945050505050565b6001600160a01b03831681526040602082018190525f90620019019083018462002529565b5f83516200286c81846020880162002505565b8351908301906200288281836020880162002505565b01949350505050565b602081525f62001722602083018462002529565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004825762000482620028b3565b634e487b7160e01b5f52603160045260245ffd5b5f6020828403121562002902575f80fd5b815167ffffffffffffffff81111562002919575f80fd5b8201601f810184136200292a575f80fd5b80516200293b62001fa38262001f58565b81815285602083850101111562002950575f80fd5b6200282b82602083016020860162002505565b5f602080838503121562002975575f80fd5b825167ffffffffffffffff808211156200298d575f80fd5b81850191506060808388031215620029a3575f80fd5b620029ad62001eaa565b83518152848401518582015260408085015184811115620029cc575f80fd5b80860195505088601f860112620029e1575f80fd5b84519350620029f462001fa38562001fea565b84815260609094028501860193868101908a86111562002a12575f80fd5b958701955b8587101562002a685784878c03121562002a2f575f80fd5b62002a3962001eaa565b875162002a468162001f31565b8152878901518982015283880151848201528252958401959087019062002a17565b6040840152509098975050505050505050565b602081525f62001722602083018462002577565b5f6020828403121562002aa0575f80fd5b8151620017228162001f31565b65ffffffffffff818116838216019080821115620007f157620007f1620028b3565b65ffffffffffff828116828216039080821115620007f157620007f1620028b356fe60a060405234801561000f575f80fd5b506040516105a83803806105a883398101604081905261002e91610387565b818161003a828261004f565b506001600160a01b0316608052506104769050565b6100588261010c565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a2805115610100576100fb826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f59190610442565b8261021a565b505050565b61010861028d565b5050565b806001600160a01b03163b5f0361014657604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e39190610442565b9050806001600160a01b03163b5f0361010857604051634c9c8ce360e01b81526001600160a01b038216600482015260240161013d565b60605f80846001600160a01b031684604051610236919061045b565b5f60405180830381855af49150503d805f811461026e576040519150601f19603f3d011682016040523d82523d5f602084013e610273565b606091505b5090925090506102848583836102ae565b95945050505050565b34156102ac5760405163b398979f60e01b815260040160405180910390fd5b565b6060826102c3576102be8261030d565b610306565b81511580156102da57506001600160a01b0384163b155b1561030357604051639996b31560e01b81526001600160a01b038516600482015260240161013d565b50805b9392505050565b80511561031d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80516001600160a01b038116811461034c575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561037f578181015183820152602001610367565b50505f910152565b5f8060408385031215610398575f80fd5b6103a183610336565b60208401519092506001600160401b03808211156103bd575f80fd5b818501915085601f8301126103d0575f80fd5b8151818111156103e2576103e2610351565b604051601f8201601f19908116603f0116810190838211818310171561040a5761040a610351565b81604052828152886020848701011115610422575f80fd5b610433836020830160208801610365565b80955050505050509250929050565b5f60208284031215610452575f80fd5b61030682610336565b5f825161046c818460208701610365565b9190910192915050565b60805161011b61048d5f395f601d015261011b5ff3fe6080604052600a600c565b005b60186014601a565b609d565b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156076573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906098919060ba565b905090565b365f80375f80365f845af43d5f803e80801560b6573d5ff35b3d5ffd5b5f6020828403121560c9575f80fd5b81516001600160a01b038116811460de575f80fd5b939250505056fea26469706673582212200e7aaf390e32d237097f25e9da1b616ee47b60248ea5869839cab2793d3bbeec64736f6c63430008160033b15b0e5184d023350edf2480f9c9912300640d68c5b0243b52371c071431c400eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a2646970667358221220c578a7de1994bc20ee94c539510bd2ec19a7a7ac5f8af0ff8476b89e73e5864264736f6c63430008160033