1 tx
2 calls
constructor
constructor(uint256 minDelay, address[] proposers, address[] executors)
functions
CANCELLER_ROLE
viewfunction CANCELLER_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
EXECUTOR_ROLE
viewfunction EXECUTOR_ROLE() view returns (bytes32)
getMinDelay
viewfunction getMinDelay() view returns (uint256 duration)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTimestamp
viewfunction getTimestamp(bytes32 id) view returns (uint256 timestamp)
hashOperation
purefunction hashOperation(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt) pure returns (bytes32 hash)
hashOperationBatch
purefunction hashOperationBatch(address[] targets, uint256[] values, bytes[] payloads, bytes32 predecessor, bytes32 salt) pure returns (bytes32 hash)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isOperation
viewfunction isOperation(bytes32 id) view returns (bool pending)
isOperationDone
viewfunction isOperationDone(bytes32 id) view returns (bool done)
isOperationPending
viewfunction isOperationPending(bytes32 id) view returns (bool pending)
isOperationReady
viewfunction isOperationReady(bytes32 id) view returns (bool ready)
PROPOSER_ROLE
viewfunction PROPOSER_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TIMELOCK_ADMIN_ROLE
viewfunction TIMELOCK_ADMIN_ROLE() view returns (bytes32)
cancel
nonpayablefunction cancel(bytes32 id)
execute
payablefunction execute(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt) payable
executeBatch
payablefunction executeBatch(address[] targets, uint256[] values, bytes[] payloads, bytes32 predecessor, bytes32 salt) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
schedule
nonpayablefunction schedule(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt, uint256 delay)
scheduleBatch
nonpayablefunction scheduleBatch(address[] targets, uint256[] values, bytes[] payloads, bytes32 predecessor, bytes32 salt, uint256 delay)
transferAnyERC20Token
nonpayablefunction transferAnyERC20Token(address tokenAddress, address recipient, uint256 amount)
transferAnyLegacyERC20Token
nonpayablefunction transferAnyLegacyERC20Token(address tokenAddress, address recipient, uint256 amount)
updateDelay
nonpayablefunction updateDelay(uint256 newDelay)
withdrawETH
nonpayablefunction withdrawETH(address recipient, uint256 amount)
events
CallExecuted
event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data)
CallScheduled
event CallScheduled(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data, bytes32 predecessor, uint256 delay)
Cancelled
event Cancelled(bytes32 indexed id)
MinDelayChange
event MinDelayChange(uint256 oldDuration, uint256 newDuration)
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)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200416f3803806200416f833981810160405281019062000037919062000773565b620000697f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5806200034f60201b60201c565b620000bb7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200034f60201b60201c565b6200010d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200034f60201b60201c565b6200015f7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f7837f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200034f60201b60201c565b620001a07f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca562000194620003b260201b60201c565b620003ba60201b60201c565b620001d27f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca530620003ba60201b60201c565b60005b825181101562000291576200022e7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc18483815181106200021a57620002196200080d565b5b6020026020010151620003ba60201b60201c565b6200027d7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f7838483815181106200026957620002686200080d565b5b6020026020010151620003ba60201b60201c565b8062000289906200086b565b9050620001d5565b5060005b81518110156200030257620002ee7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63838381518110620002da57620002d96200080d565b5b6020026020010151620003ba60201b60201c565b80620002fa906200086b565b905062000295565b50826002819055507f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d56000846040516200033e92919062000916565b60405180910390a150505062000943565b60006200036283620003d060201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600033905090565b620003cc8282620003ef60201b60201c565b5050565b6000806000838152602001908152602001600020600101549050919050565b620004018282620004e060201b60201c565b620004dc57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000481620003b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b62000573816200055e565b81146200057f57600080fd5b50565b600081519050620005938162000568565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620005e9826200059e565b810181811067ffffffffffffffff821117156200060b576200060a620005af565b5b80604052505050565b6000620006206200054a565b90506200062e8282620005de565b919050565b600067ffffffffffffffff821115620006515762000650620005af565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006948262000667565b9050919050565b620006a68162000687565b8114620006b257600080fd5b50565b600081519050620006c6816200069b565b92915050565b6000620006e3620006dd8462000633565b62000614565b9050808382526020820190506020840283018581111562000709576200070862000662565b5b835b81811015620007365780620007218882620006b5565b8452602084019350506020810190506200070b565b5050509392505050565b600082601f83011262000758576200075762000599565b5b81516200076a848260208601620006cc565b91505092915050565b6000806000606084860312156200078f576200078e62000554565b5b60006200079f8682870162000582565b935050602084015167ffffffffffffffff811115620007c357620007c262000559565b5b620007d18682870162000740565b925050604084015167ffffffffffffffff811115620007f557620007f462000559565b5b620008038682870162000740565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000878826200055e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620008ad57620008ac6200083c565b5b600182019050919050565b6000819050919050565b6000819050919050565b6000620008ed620008e7620008e184620008b8565b620008c2565b6200055e565b9050919050565b620008ff81620008cc565b82525050565b62000910816200055e565b82525050565b60006040820190506200092d6000830185620008f4565b6200093c602083018462000905565b9392505050565b61381c80620009536000396000f3fe6080604052600436106101dc5760003560e01c80638065657f11610102578063c4d252f511610095578063e38335e511610064578063e38335e514610728578063f23a6e6114610744578063f25b836414610781578063f27a0c92146107aa576101e3565b8063c4d252f514610670578063d45c443514610699578063d493b9ac146106d6578063d547741f146106ff576101e3565b8063a217fddf116100d1578063a217fddf146105a0578063b08e51c0146105cb578063b1c5f427146105f6578063bc197c8114610633576101e3565b80638065657f146104d25780638f2a0bb01461050f5780638f61f4f51461053857806391d1485414610563576101e3565b8063248a9ca31161017a57806336568abe1161014957806336568abe1461041a5780634782f77914610443578063584b153e1461046c57806364d62353146104a9576101e3565b8063248a9ca31461033a5780632ab0f529146103775780632f2ff15d146103b457806331d50750146103dd576101e3565b80630d3cf6fc116101b65780630d3cf6fc14610279578063134008d3146102a457806313bc9f20146102c0578063150b7a02146102fd576101e3565b806301d5062a146101e857806301ffc9a71461021157806307bd02651461024e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190611d88565b6107d5565b005b34801561021d57600080fd5b5061023860048036038101906102339190611e8f565b61086a565b6040516102459190611ed7565b60405180910390f35b34801561025a57600080fd5b506102636108e4565b6040516102709190611f01565b60405180910390f35b34801561028557600080fd5b5061028e610908565b60405161029b9190611f01565b60405180910390f35b6102be60048036038101906102b99190611f1c565b61092c565b005b3480156102cc57600080fd5b506102e760048036038101906102e29190611fb6565b6109ac565b6040516102f49190611ed7565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612124565b6109d2565b60405161033191906121b6565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190611fb6565b6109e6565b60405161036e9190611f01565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190611fb6565b610a05565b6040516103ab9190611ed7565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d691906121d1565b610a1a565b005b3480156103e957600080fd5b5061040460048036038101906103ff9190611fb6565b610a3b565b6040516104119190611ed7565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c91906121d1565b610a4f565b005b34801561044f57600080fd5b5061046a6004803603810190610465919061224f565b610ad2565b005b34801561047857600080fd5b50610493600480360381019061048e9190611fb6565b610bc9565b6040516104a09190611ed7565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb919061228f565b610bde565b005b3480156104de57600080fd5b506104f960048036038101906104f49190611f1c565b610c91565b6040516105069190611f01565b60405180910390f35b34801561051b57600080fd5b50610536600480360381019061053191906123be565b610cd0565b005b34801561054457600080fd5b5061054d610e7b565b60405161055a9190611f01565b60405180910390f35b34801561056f57600080fd5b5061058a600480360381019061058591906121d1565b610e9f565b6040516105979190611ed7565b60405180910390f35b3480156105ac57600080fd5b506105b5610f09565b6040516105c29190611f01565b60405180910390f35b3480156105d757600080fd5b506105e0610f10565b6040516105ed9190611f01565b60405180910390f35b34801561060257600080fd5b5061061d600480360381019061061891906124ad565b610f34565b60405161062a9190611f01565b60405180910390f35b34801561063f57600080fd5b5061065a6004803603810190610655919061264c565b610f79565b60405161066791906121b6565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190611fb6565b610f8e565b005b3480156106a557600080fd5b506106c060048036038101906106bb9190611fb6565b611048565b6040516106cd919061272a565b60405180910390f35b3480156106e257600080fd5b506106fd60048036038101906106f89190612745565b611065565b005b34801561070b57600080fd5b50610726600480360381019061072191906121d1565b61116a565b005b610742600480360381019061073d91906124ad565b61118b565b005b34801561075057600080fd5b5061076b60048036038101906107669190612798565b611321565b60405161077891906121b6565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190612745565b611336565b005b3480156107b657600080fd5b506107bf6113eb565b6040516107cc919061272a565b60405180910390f35b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16107ff816113f5565b600061080f898989898989610c91565b905061081b8184611409565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516108579695949392919061287c565b60405180910390a3505050505050505050565b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108dd57506108dc826114c3565b5b9050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610958816000610e9f565b61096e5761096d8161096861153d565b611545565b5b600061097e888888888888610c91565b905061098a81856115e2565b6109998160008a8a8a8a611683565b6109a28161177b565b5050505050505050565b6000806109b883611048565b90506001811180156109ca5750428111155b915050919050565b600063150b7a0260e01b9050949350505050565b6000806000838152602001908152602001600020600101549050919050565b60006001610a1283611048565b149050919050565b610a23826109e6565b610a2c816113f5565b610a3683836117de565b505050565b600080610a4783611048565b119050919050565b610a5761153d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abb9061295b565b60405180910390fd5b610ace82826118be565b5050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610afe816000610e9f565b610b1457610b1381610b0e61153d565b611545565b5b6000808473ffffffffffffffffffffffffffffffffffffffff1684604051610b3b906129ac565b60006040518083038185875af1925050503d8060008114610b78576040519150601f19603f3d011682016040523d82523d6000602084013e610b7d565b606091505b509150915081610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612a0d565b60405180910390fd5b5050505050565b60006001610bd683611048565b119050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390612a9f565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560025482604051610c7f929190612abf565b60405180910390a18060028190555050565b6000868686868686604051602001610cae96959493929190612ae8565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610cfa816113f5565b878790508a8a905014610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990612bb6565b60405180910390fd5b858590508a8a905014610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8190612bb6565b60405180910390fd5b6000610d9c8b8b8b8b8b8b8b8b610f34565b9050610da88184611409565b60005b8b8b9050811015610e6d5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610dec57610deb612bd6565b5b9050602002016020810190610e019190612c05565b8d8d86818110610e1457610e13612bd6565b5b905060200201358c8c87818110610e2e57610e2d612bd6565b5b9050602002810190610e409190612c41565b8c8b604051610e549695949392919061287c565b60405180910390a380610e6690612cd3565b9050610dab565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b60008888888888888888604051602001610f55989796959493929190612fb4565b60405160208183030381529060405280519060200120905098975050505050505050565b600063bc197c8160e01b905095945050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610fb8816113f5565b610fc182610bc9565b611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790613094565b60405180910390fd5b6001600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b600060016000838152602001908152602001600020549050919050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611091816000610e9f565b6110a7576110a6816110a161153d565b611545565b5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016110e29291906130b4565b6020604051808303816000875af1158015611101573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111259190613109565b611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90613182565b60405180910390fd5b50505050565b611173826109e6565b61117c816113f5565b61118683836118be565b505050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636111b7816000610e9f565b6111cd576111cc816111c761153d565b611545565b5b868690508989905014611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612bb6565b60405180910390fd5b84849050898990501461125d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125490612bb6565b60405180910390fd5b600061126f8a8a8a8a8a8a8a8a610f34565b905061127b81856115e2565b60005b8a8a905081101561130b576112fa82828d8d858181106112a1576112a0612bd6565b5b90506020020160208101906112b69190612c05565b8c8c868181106112c9576112c8612bd6565b5b905060200201358b8b878181106112e3576112e2612bd6565b5b90506020028101906112f59190612c41565b611683565b8061130490612cd3565b905061127e565b506113158161177b565b50505050505050505050565b600063f23a6e6160e01b905095945050505050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63611362816000610e9f565b611378576113778161137261153d565b611545565b5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016113b39291906130b4565b600060405180830381600087803b1580156113cd57600080fd5b505af11580156113e1573d6000803e3d6000fd5b5050505050505050565b6000600254905090565b6114068161140161153d565b611545565b50565b61141282610a3b565b15611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990613214565b60405180910390fd5b61145a6113eb565b81101561149c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611493906132a6565b60405180910390fd5b80426114a891906132c6565b60016000848152602001908152602001600020819055505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061153657506115358261199f565b5b9050919050565b600033905090565b61154f8282610e9f565b6115de576115748173ffffffffffffffffffffffffffffffffffffffff166014611a09565b6115828360001c6020611a09565b60405160200161159392919061342e565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d591906134a1565b60405180910390fd5b5050565b6115eb826109ac565b61162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190613535565b60405180910390fd5b6000801b811480611640575061163f81610a05565b5b61167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906135c7565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff168484846040516116ad92919061360c565b60006040518083038185875af1925050503d80600081146116ea576040519150601f19603f3d011682016040523d82523d6000602084013e6116ef565b606091505b5050905080611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a90613697565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588787878760405161176a94939291906136b7565b60405180910390a350505050505050565b611784816109ac565b6117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90613535565b60405180910390fd5b60018060008381526020019081526020016000208190555050565b6117e88282610e9f565b6118ba57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061185f61153d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6118c88282610e9f565b1561199b57600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061194061153d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611a1c91906136f7565b611a2691906132c6565b67ffffffffffffffff811115611a3f57611a3e611ff9565b5b6040519080825280601f01601f191660200182016040528015611a715781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611aa957611aa8612bd6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611b0d57611b0c612bd6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611b4d91906136f7565b611b5791906132c6565b90505b6001811115611bf7577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611b9957611b98612bd6565b5b1a60f81b828281518110611bb057611baf612bd6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611bf090613751565b9050611b5a565b5060008414611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c32906137c6565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c8482611c59565b9050919050565b611c9481611c79565b8114611c9f57600080fd5b50565b600081359050611cb181611c8b565b92915050565b6000819050919050565b611cca81611cb7565b8114611cd557600080fd5b50565b600081359050611ce781611cc1565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611d1257611d11611ced565b5b8235905067ffffffffffffffff811115611d2f57611d2e611cf2565b5b602083019150836001820283011115611d4b57611d4a611cf7565b5b9250929050565b6000819050919050565b611d6581611d52565b8114611d7057600080fd5b50565b600081359050611d8281611d5c565b92915050565b600080600080600080600060c0888a031215611da757611da6611c4f565b5b6000611db58a828b01611ca2565b9750506020611dc68a828b01611cd8565b965050604088013567ffffffffffffffff811115611de757611de6611c54565b5b611df38a828b01611cfc565b95509550506060611e068a828b01611d73565b9350506080611e178a828b01611d73565b92505060a0611e288a828b01611cd8565b91505092959891949750929550565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611e6c81611e37565b8114611e7757600080fd5b50565b600081359050611e8981611e63565b92915050565b600060208284031215611ea557611ea4611c4f565b5b6000611eb384828501611e7a565b91505092915050565b60008115159050919050565b611ed181611ebc565b82525050565b6000602082019050611eec6000830184611ec8565b92915050565b611efb81611d52565b82525050565b6000602082019050611f166000830184611ef2565b92915050565b60008060008060008060a08789031215611f3957611f38611c4f565b5b6000611f4789828a01611ca2565b9650506020611f5889828a01611cd8565b955050604087013567ffffffffffffffff811115611f7957611f78611c54565b5b611f8589828a01611cfc565b94509450506060611f9889828a01611d73565b9250506080611fa989828a01611d73565b9150509295509295509295565b600060208284031215611fcc57611fcb611c4f565b5b6000611fda84828501611d73565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61203182611fe8565b810181811067ffffffffffffffff821117156120505761204f611ff9565b5b80604052505050565b6000612063611c45565b905061206f8282612028565b919050565b600067ffffffffffffffff82111561208f5761208e611ff9565b5b61209882611fe8565b9050602081019050919050565b82818337600083830152505050565b60006120c76120c284612074565b612059565b9050828152602081018484840111156120e3576120e2611fe3565b5b6120ee8482856120a5565b509392505050565b600082601f83011261210b5761210a611ced565b5b813561211b8482602086016120b4565b91505092915050565b6000806000806080858703121561213e5761213d611c4f565b5b600061214c87828801611ca2565b945050602061215d87828801611ca2565b935050604061216e87828801611cd8565b925050606085013567ffffffffffffffff81111561218f5761218e611c54565b5b61219b878288016120f6565b91505092959194509250565b6121b081611e37565b82525050565b60006020820190506121cb60008301846121a7565b92915050565b600080604083850312156121e8576121e7611c4f565b5b60006121f685828601611d73565b925050602061220785828601611ca2565b9150509250929050565b600061221c82611c59565b9050919050565b61222c81612211565b811461223757600080fd5b50565b60008135905061224981612223565b92915050565b6000806040838503121561226657612265611c4f565b5b60006122748582860161223a565b925050602061228585828601611cd8565b9150509250929050565b6000602082840312156122a5576122a4611c4f565b5b60006122b384828501611cd8565b91505092915050565b60008083601f8401126122d2576122d1611ced565b5b8235905067ffffffffffffffff8111156122ef576122ee611cf2565b5b60208301915083602082028301111561230b5761230a611cf7565b5b9250929050565b60008083601f84011261232857612327611ced565b5b8235905067ffffffffffffffff81111561234557612344611cf2565b5b60208301915083602082028301111561236157612360611cf7565b5b9250929050565b60008083601f84011261237e5761237d611ced565b5b8235905067ffffffffffffffff81111561239b5761239a611cf2565b5b6020830191508360208202830111156123b7576123b6611cf7565b5b9250929050565b600080600080600080600080600060c08a8c0312156123e0576123df611c4f565b5b60008a013567ffffffffffffffff8111156123fe576123fd611c54565b5b61240a8c828d016122bc565b995099505060208a013567ffffffffffffffff81111561242d5761242c611c54565b5b6124398c828d01612312565b975097505060408a013567ffffffffffffffff81111561245c5761245b611c54565b5b6124688c828d01612368565b9550955050606061247b8c828d01611d73565b935050608061248c8c828d01611d73565b92505060a061249d8c828d01611cd8565b9150509295985092959850929598565b60008060008060008060008060a0898b0312156124cd576124cc611c4f565b5b600089013567ffffffffffffffff8111156124eb576124ea611c54565b5b6124f78b828c016122bc565b9850985050602089013567ffffffffffffffff81111561251a57612519611c54565b5b6125268b828c01612312565b9650965050604089013567ffffffffffffffff81111561254957612548611c54565b5b6125558b828c01612368565b945094505060606125688b828c01611d73565b92505060806125798b828c01611d73565b9150509295985092959890939650565b600067ffffffffffffffff8211156125a4576125a3611ff9565b5b602082029050602081019050919050565b60006125c86125c384612589565b612059565b905080838252602082019050602084028301858111156125eb576125ea611cf7565b5b835b8181101561261457806126008882611cd8565b8452602084019350506020810190506125ed565b5050509392505050565b600082601f83011261263357612632611ced565b5b81356126438482602086016125b5565b91505092915050565b600080600080600060a0868803121561266857612667611c4f565b5b600061267688828901611ca2565b955050602061268788828901611ca2565b945050604086013567ffffffffffffffff8111156126a8576126a7611c54565b5b6126b48882890161261e565b935050606086013567ffffffffffffffff8111156126d5576126d4611c54565b5b6126e18882890161261e565b925050608086013567ffffffffffffffff81111561270257612701611c54565b5b61270e888289016120f6565b9150509295509295909350565b61272481611cb7565b82525050565b600060208201905061273f600083018461271b565b92915050565b60008060006060848603121561275e5761275d611c4f565b5b600061276c86828701611ca2565b935050602061277d86828701611ca2565b925050604061278e86828701611cd8565b9150509250925092565b600080600080600060a086880312156127b4576127b3611c4f565b5b60006127c288828901611ca2565b95505060206127d388828901611ca2565b94505060406127e488828901611cd8565b93505060606127f588828901611cd8565b925050608086013567ffffffffffffffff81111561281657612815611c54565b5b612822888289016120f6565b9150509295509295909350565b61283881611c79565b82525050565b600082825260208201905092915050565b600061285b838561283e565b93506128688385846120a5565b61287183611fe8565b840190509392505050565b600060a082019050612891600083018961282f565b61289e602083018861271b565b81810360408301526128b181868861284f565b90506128c06060830185611ef2565b6128cd608083018461271b565b979650505050505050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612945602f836128d8565b9150612950826128e9565b604082019050919050565b6000602082019050818103600083015261297481612938565b9050919050565b600081905092915050565b50565b600061299660008361297b565b91506129a182612986565b600082019050919050565b60006129b782612989565b9150819050919050565b7f4661696c656420746f2077697468647261772045746865720000000000000000600082015250565b60006129f76018836128d8565b9150612a02826129c1565b602082019050919050565b60006020820190508181036000830152612a26816129ea565b9050919050565b7f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060008201527f62652074696d656c6f636b000000000000000000000000000000000000000000602082015250565b6000612a89602b836128d8565b9150612a9482612a2d565b604082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b6000604082019050612ad4600083018561271b565b612ae1602083018461271b565b9392505050565b600060a082019050612afd600083018961282f565b612b0a602083018861271b565b8181036040830152612b1d81868861284f565b9050612b2c6060830185611ef2565b612b396080830184611ef2565b979650505050505050565b7f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d6160008201527f7463680000000000000000000000000000000000000000000000000000000000602082015250565b6000612ba06023836128d8565b9150612bab82612b44565b604082019050919050565b60006020820190508181036000830152612bcf81612b93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c1b57612c1a611c4f565b5b6000612c2984828501611ca2565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612c5e57612c5d612c32565b5b80840192508235915067ffffffffffffffff821115612c8057612c7f612c37565b5b602083019250600182023603831315612c9c57612c9b612c3c565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612cde82611cb7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d1057612d0f612ca4565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b612d3f81611c79565b82525050565b6000612d518383612d36565b60208301905092915050565b6000612d6c6020840184611ca2565b905092915050565b6000602082019050919050565b6000612d8d8385612d1b565b9350612d9882612d2c565b8060005b85811015612dd157612dae8284612d5d565b612db88882612d45565b9750612dc383612d74565b925050600181019050612d9c565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b6000612e008385612dde565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612e3357612e32612def565b5b602083029250612e448385846120a5565b82840190509392505050565b600082825260208201905092915050565b6000819050919050565b600082825260208201905092915050565b6000612e888385612e6b565b9350612e958385846120a5565b612e9e83611fe8565b840190509392505050565b6000612eb6848484612e7c565b90509392505050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612eeb57612eea612ec9565b5b83810192508235915060208301925067ffffffffffffffff821115612f1357612f12612ebf565b5b600182023603831315612f2957612f28612ec4565b5b509250929050565b6000602082019050919050565b6000612f4a8385612e50565b935083602084028501612f5c84612e61565b8060005b87811015612fa2578484038952612f778284612ece565b612f82868284612ea9565b9550612f8d84612f31565b935060208b019a505050600181019050612f60565b50829750879450505050509392505050565b600060a0820190508181036000830152612fcf818a8c612d81565b90508181036020830152612fe481888a612df4565b90508181036040830152612ff9818688612f3e565b90506130086060830185611ef2565b6130156080830184611ef2565b9998505050505050505050565b7f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20636160008201527f6e6e6f742062652063616e63656c6c6564000000000000000000000000000000602082015250565b600061307e6031836128d8565b915061308982613022565b604082019050919050565b600060208201905081810360008301526130ad81613071565b9050919050565b60006040820190506130c9600083018561282f565b6130d6602083018461271b565b9392505050565b6130e681611ebc565b81146130f157600080fd5b50565b600081519050613103816130dd565b92915050565b60006020828403121561311f5761311e611c4f565b5b600061312d848285016130f4565b91505092915050565b7f5472616e73666572206661696c65642100000000000000000000000000000000600082015250565b600061316c6010836128d8565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60008201527f7265616479207363686564756c65640000000000000000000000000000000000602082015250565b60006131fe602f836128d8565b9150613209826131a2565b604082019050919050565b6000602082019050818103600083015261322d816131f1565b9050919050565b7f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e7460008201527f2064656c61790000000000000000000000000000000000000000000000000000602082015250565b60006132906026836128d8565b915061329b82613234565b604082019050919050565b600060208201905081810360008301526132bf81613283565b9050919050565b60006132d182611cb7565b91506132dc83611cb7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561331157613310612ca4565b5b828201905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061335d60178361331c565b915061336882613327565b601782019050919050565b600081519050919050565b60005b8381101561339c578082015181840152602081019050613381565b838111156133ab576000848401525b50505050565b60006133bc82613373565b6133c6818561331c565b93506133d681856020860161337e565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061341860118361331c565b9150613423826133e2565b601182019050919050565b600061343982613350565b915061344582856133b1565b91506134508261340b565b915061345c82846133b1565b91508190509392505050565b600061347382613373565b61347d81856128d8565b935061348d81856020860161337e565b61349681611fe8565b840191505092915050565b600060208201905081810360008301526134bb8184613468565b905092915050565b7f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20697360008201527f206e6f7420726561647900000000000000000000000000000000000000000000602082015250565b600061351f602a836128d8565b915061352a826134c3565b604082019050919050565b6000602082019050818103600083015261354e81613512565b9050919050565b7f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e67206465706560008201527f6e64656e63790000000000000000000000000000000000000000000000000000602082015250565b60006135b16026836128d8565b91506135bc82613555565b604082019050919050565b600060208201905081810360008301526135e0816135a4565b9050919050565b60006135f3838561297b565b93506136008385846120a5565b82840190509392505050565b60006136198284866135e7565b91508190509392505050565b7f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207460008201527f72616e73616374696f6e20726576657274656400000000000000000000000000602082015250565b60006136816033836128d8565b915061368c82613625565b604082019050919050565b600060208201905081810360008301526136b081613674565b9050919050565b60006060820190506136cc600083018761282f565b6136d9602083018661271b565b81810360408301526136ec81848661284f565b905095945050505050565b600061370282611cb7565b915061370d83611cb7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561374657613745612ca4565b5b828202905092915050565b600061375c82611cb7565b91506000820361376f5761376e612ca4565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006137b06020836128d8565b91506137bb8261377a565b602082019050919050565b600060208201905081810360008301526137df816137a3565b905091905056fea26469706673582212202d3c7521c01be49d37ca478cdbe1ff42d7eb3a52bbbf70b23ce126253432efa364736f6c634300080e0033000000000000000000000000000000000000000000000000000000000003f480000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b57a7d9a7a33b5170253275b7bc18d7dc14c1ea400000000000000000000000000000000000000000000000000000000000000010000000000000000000000003cceee4d5d73ce957bc083619ecf80cbe8536fca