0 txs
3 calls
constructor
constructor(address DAO, address _USDC, address _GBL, address _underwriter)
functions
canPull
purefunction canPull() pure returns (bool)
canPullERC1155
viewfunction canPullERC1155() view returns (bool)
canPullERC721
viewfunction canPullERC721() view returns (bool)
canPullMulti
viewfunction canPullMulti() view returns (bool)
canPullMultiERC721
viewfunction canPullMultiERC721() view returns (bool)
canPullMultiPartial
viewfunction canPullMultiPartial() view returns (bool)
canPullPartial
purefunction canPullPartial() pure returns (bool)
canPush
purefunction canPush() pure returns (bool)
canPushERC1155
viewfunction canPushERC1155() view returns (bool)
canPushERC721
viewfunction canPushERC721() view returns (bool)
canPushMulti
viewfunction canPushMulti() view returns (bool)
canPushMultiERC721
viewfunction canPushMultiERC721() view returns (bool)
GBL
viewfunction GBL() view returns (address)
limit
viewfunction limit(address) view returns (uint256)
locked
viewfunction locked() view returns (bool)
owner
viewfunction owner() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
underwriter
viewfunction underwriter() view returns (address)
usage
viewfunction usage(address) view returns (uint256)
USDC
viewfunction USDC() view returns (address)
adjustLimit
nonpayablefunction adjustLimit(uint256 amount, address user)
draw
nonpayablefunction draw(uint256 amount)
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)
pullFromLocker
nonpayablefunction pullFromLocker(address asset, bytes data)
pullFromLockerERC1155
nonpayablefunction pullFromLockerERC1155(address asset, uint256[] ids, uint256[] amounts, bytes data)
pullFromLockerERC721
nonpayablefunction pullFromLockerERC721(address asset, uint256 tokenId, bytes data)
pullFromLockerMulti
nonpayablefunction pullFromLockerMulti(address[] assets, bytes[] data)
pullFromLockerMultiERC721
nonpayablefunction pullFromLockerMultiERC721(address[] assets, uint256[] tokenIds, bytes[] data)
pullFromLockerMultiPartial
nonpayablefunction pullFromLockerMultiPartial(address[] assets, uint256[] amounts, bytes[] data)
pullFromLockerPartial
nonpayablefunction pullFromLockerPartial(address asset, uint256 amount, bytes data)
pushToLocker
nonpayablefunction pushToLocker(address asset, uint256 amount, bytes data)
pushToLockerERC1155
nonpayablefunction pushToLockerERC1155(address asset, uint256[] ids, uint256[] amounts, bytes data)
pushToLockerERC721
nonpayablefunction pushToLockerERC721(address asset, uint256 tokenId, bytes data)
pushToLockerMulti
nonpayablefunction pushToLockerMulti(address[] assets, uint256[] amounts, bytes[] data)
pushToLockerMultiERC721
nonpayablefunction pushToLockerMultiERC721(address[] assets, uint256[] tokenIds, bytes[] data)
renounceOwnership
nonpayablefunction renounceOwnership()
repay
nonpayablefunction repay(uint256 amount, uint256 base)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferOwnershipAndLock
nonpayablefunction transferOwnershipAndLock(address newOwner)
events
AdjustLimit
event AdjustLimit(uint256 amount, address user)
Draw
event Draw(uint256 amount, address user)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Repay
event Repay(uint256 amount, uint256 base, address user)
errors
No errors.
creation bytecode
0x60e06040523480156200001157600080fd5b506040516200487d3803806200487d833981810160405281019062000037919062000409565b620000576200004b6200011560201b60201c565b6200011d60201b60201c565b600180819055506200006f84620001e160201b60201c565b8273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050505062000608565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001f1620002e560201b60201c565b600060149054906101000a900460ff161562000244576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200023b90620004dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620002b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ad9062000574565b60405180910390fd5b6001600060146101000a81548160ff021916908315150217905550620002e2816200011d60201b60201c565b50565b620002f56200011560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200031b6200037660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000374576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036b90620005e6565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003d182620003a4565b9050919050565b620003e381620003c4565b8114620003ef57600080fd5b50565b6000815190506200040381620003d8565b92915050565b600080600080608085870312156200042657620004256200039f565b5b60006200043687828801620003f2565b94505060206200044987828801620003f2565b93505060406200045c87828801620003f2565b92505060606200046f87828801620003f2565b91505092959194509250565b600082825260208201905092915050565b7f4f776e61626c654c6f636b65643a3a756e6c6f636b65642829206c6f636b6564600082015250565b6000620004c46020836200047b565b9150620004d1826200048c565b602082019050919050565b60006020820190508181036000830152620004f781620004b5565b9050919050565b7f4f776e61626c654c6f636b65643a3a7472616e736665724f776e65727368697060008201527f416e644c6f636b2829206e65774f776e6572203d3d2061646472657373283029602082015250565b60006200055c6040836200047b565b91506200056982620004fe565b604082019050919050565b600060208201905081810360008301526200058f816200054d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620005ce6020836200047b565b9150620005db8262000596565b602082019050919050565b600060208201905081810360008301526200060181620005bf565b9050919050565b60805160a05160c0516141ea6200069360003960008181610c7b0152611c99015260008181610ed4015281816110730152818161138b01528181611562015281816115fb01528181611695015281816118dc015281816119c101528181611aa301528181611b9d0152611c37015260008181610f62015281816119260152611a1301526141ea6000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063715018a611610146578063cf309012116100c3578063dd913bdb11610087578063dd913bdb1461069a578063e7f44629146106b8578063f00db260146106d6578063f23a6e61146106f4578063f2fde38b14610724578063fd76f59d1461074057610253565b8063cf309012146105f8578063d284af9414610616578063d879726214610632578063d8aed14514610662578063d8f2a78b1461067e57610253565b8063b0607cf81161010a578063b0607cf814610554578063b892bcc014610572578063bc197c811461058e578063cd45e1fb146105be578063cf10b7ab146105da57610253565b8063715018a6146104d257806389a30271146104dc5780638b648ee2146104fa5780638da5cb5b14610518578063a4a3e79d1461053657610253565b806330320c5a116101d4578063422b201811610198578063422b201814610444578063423156321461046057806358289c7e1461047c57806364c77735146104985780636a7ab9af146104b657610253565b806330320c5a146103b25780633b304147146103ce5780633c117244146103ea5780633ce8d432146104085780633eda81ad1461042657610253565b8063191658741161021b578063191658741461030e5780631a42d1391461032a5780631d9389e91461035a578063215cccdd146103765780632f08d48b1461039457610253565b806301ffc9a7146102585780631205217614610288578063150b7a02146102a457806315e98744146102d45780631852b383146102f0575b600080fd5b610272600480360381019061026d9190612496565b61075c565b60405161027f91906124de565b60405180910390f35b6102a2600480360381019061029d91906125f2565b6107d6565b005b6102be60048036038101906102b991906127a7565b6108a5565b6040516102cb9190612839565b60405180910390f35b6102ee60048036038101906102e99190612956565b6108b9565b005b6102f8610a0f565b60405161030591906124de565b60405180910390f35b61032860048036038101906103239190612a0a565b610a14565b005b610344600480360381019061033f9190612a8b565b610b84565b6040516103519190612ac7565b60405180910390f35b610374600480360381019061036f91906125f2565b610b9c565b005b61037e610c6b565b60405161038b91906124de565b60405180910390f35b61039c610c74565b6040516103a991906124de565b60405180910390f35b6103cc60048036038101906103c79190612ae2565b610c79565b005b6103e860048036038101906103e39190612b22565b610d8f565b005b6103f2610f5b565b6040516103ff91906124de565b60405180910390f35b610410610f60565b60405161041d9190612b5e565b60405180910390f35b61042e610f84565b60405161043b91906124de565b60405180910390f35b61045e60048036038101906104599190612b79565b610f89565b005b61047a600480360381019061047591906125f2565b611061565b005b61049660048036038101906104919190612a8b565b611141565b005b6104a061122f565b6040516104ad91906124de565b60405180910390f35b6104d060048036038101906104cb9190612956565b611238565b005b6104da611325565b005b6104e4611389565b6040516104f19190612b5e565b60405180910390f35b6105026113ad565b60405161050f91906124de565b60405180910390f35b6105206113b2565b60405161052d9190612b5e565b60405180910390f35b61053e6113db565b60405161054b91906124de565b60405180910390f35b61055c6113e0565b60405161056991906124de565b60405180910390f35b61058c60048036038101906105879190612956565b6113e5565b005b6105a860048036038101906105a39190612d05565b61153b565b6040516105b59190612839565b60405180910390f35b6105d860048036038101906105d39190612dd4565b611550565b005b6105e26116e6565b6040516105ef91906124de565b60405180910390f35b6106006116eb565b60405161060d91906124de565b60405180910390f35b610630600480360381019061062b9190612956565b6116fe565b005b61064c60048036038101906106479190612a8b565b6117e9565b6040516106599190612ac7565b60405180910390f35b61067c60048036038101906106779190612e34565b611801565b005b610698600480360381019061069391906125f2565b611b8b565b005b6106a2611c89565b6040516106af91906124de565b60405180910390f35b6106c0611c8e565b6040516106cd91906124de565b60405180910390f35b6106de611c97565b6040516106eb9190612b5e565b60405180910390f35b61070e60048036038101906107099190612e74565b611cbb565b60405161071b9190612839565b60405180910390f35b61073e60048036038101906107399190612a8b565b611cd0565b005b61075a60048036038101906107559190612b79565b611da3565b005b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107cf57506107ce82611e7b565b5b9050919050565b6107de611ee5565b6107e6610f5b565b610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90612f8e565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663b88d4fde3061084a6113b2565b8686866040518663ffffffff1660e01b815260040161086d959493929190612fec565b600060405180830381600087803b15801561088757600080fd5b505af115801561089b573d6000803e3d6000fd5b5050505050505050565b600063150b7a0260e01b9050949350505050565b6108c1611ee5565b6108c9610a0f565b610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906130ac565b60405180910390fd5b60005b86869050811015610a0657868682818110610929576109286130cc565b5b905060200201602081019061093e9190612a8b565b73ffffffffffffffffffffffffffffffffffffffff1663b88d4fde306109626113b2565b888886818110610975576109746130cc565b5b9050602002013587878781811061098f5761098e6130cc565b5b90506020028101906109a1919061310a565b6040518663ffffffff1660e01b81526004016109c1959493929190612fec565b600060405180830381600087803b1580156109db57600080fd5b505af11580156109ef573d6000803e3d6000fd5b5050505080806109fe9061319c565b91505061090b565b50505050505050565b600090565b610a1c611ee5565b610a24610f84565b610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90613256565b60405180910390fd5b60005b84849050811015610b7d57610b6a610a7c6113b2565b868684818110610a8f57610a8e6130cc565b5b9050602002016020810190610aa49190612a8b565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610adc9190612b5e565b602060405180830381865afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d919061328b565b878785818110610b3057610b2f6130cc565b5b9050602002016020810190610b459190612a8b565b73ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b8080610b759061319c565b915050610a66565b5050505050565b60036020528060005260406000206000915090505481565b610ba4611ee5565b610bac6113ad565b610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be29061332a565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663b88d4fde610c0f6113b2565b308686866040518663ffffffff1660e01b8152600401610c33959493929190612fec565b600060405180830381600087803b158015610c4d57600080fd5b505af1158015610c61573d6000803e3d6000fd5b5050505050505050565b60006001905090565b600090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610cb8611fe9565b73ffffffffffffffffffffffffffffffffffffffff1614610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d05906133bc565b60405180910390fd5b81600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f249abe44bb334df3bdb06d8f5b0f595fe235a4d6647ac6b64f38e4f78b89c4b48282604051610d839291906133dc565b60405180910390a15050565b60026000610d9b611fe9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460036000610de2611fe9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610e289190613405565b1115610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e60906134ab565b60405180910390fd5b8060036000610e76611fe9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ebf9190613405565b92505081905550610f18610ed1611fe9565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b7fc41816115fa1bcec19c79512b6fbb5b88fe30c0036f40828b1a10609ec94348281610f42611fe9565b604051610f509291906133dc565b60405180910390a150565b600090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b610f91611ee5565b610f996113e0565b610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf9061353d565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d630610ffd6113b2565b8989898989896040518963ffffffff1660e01b81526004016110269897969594939291906135d8565b600060405180830381600087803b15801561104057600080fd5b505af1158015611054573d6000803e3d6000fd5b5050505050505050505050565b611069611ee5565b611071611ff1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f6906136b8565b60405180910390fd5b61113361110a6113b2565b30858773ffffffffffffffffffffffffffffffffffffffff16612040909392919063ffffffff16565b61113b6120c9565b50505050565b611149611ee5565b600060149054906101000a900460ff1615611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090613724565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff906137b6565b60405180910390fd5b6001600060146101000a81548160ff02191690831515021790555061122c816120d2565b50565b60006001905090565b611240611ee5565b6112486113db565b611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90613848565b60405180910390fd5b60005b8686905081101561131c576113096112a06113b2565b308787858181106112b4576112b36130cc565b5b905060200201358a8a868181106112ce576112cd6130cc565b5b90506020020160208101906112e39190612a8b565b73ffffffffffffffffffffffffffffffffffffffff16612040909392919063ffffffff16565b80806113149061319c565b91505061128a565b50505050505050565b61132d611ee5565b600060149054906101000a900460ff161561137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490613724565b60405180910390fd5b61138760006120d2565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600090565b600090565b6113ed611ee5565b6113f5611c89565b611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b906138da565b60405180910390fd5b60005b8686905081101561153257868682818110611455576114546130cc565b5b905060200201602081019061146a9190612a8b565b73ffffffffffffffffffffffffffffffffffffffff1663b88d4fde61148d6113b2565b308888868181106114a1576114a06130cc565b5b905060200201358787878181106114bb576114ba6130cc565b5b90506020028101906114cd919061310a565b6040518663ffffffff1660e01b81526004016114ed959493929190612fec565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b50505050808061152a9061319c565b915050611437565b50505050505050565b600063bc197c8160e01b905095945050505050565b611558611ee5565b611560611ff1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e59061396c565b60405180910390fd5b6116d96115f96113b2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116529190612b5e565b602060405180830381865afa15801561166f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611693919061328b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b6116e16120c9565b505050565b600090565b600060149054906101000a900460ff1681565b611706611ee5565b61170e610c74565b61174d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611744906139fe565b60405180910390fd5b60005b868690508110156117e0576117cd6117666113b2565b868684818110611779576117786130cc565b5b90506020020135898985818110611793576117926130cc565b5b90506020020160208101906117a89190612a8b565b73ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b80806117d89061319c565b915050611750565b50505050505050565b60026020528060005260406000206000915090505481565b81811115611844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183b90613a90565b60405180910390fd5b60036000611850611fe9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490613b22565b60405180910390fd5b6119216118d8611fe9565b30847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612040909392919063ffffffff16565b611a057f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166372d6724a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561198f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b39190613b57565b82846119bf9190613b84565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b6000811115611b4557611ae77f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166398fabd3a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa09190613b57565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b8060036000611af4611fe9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b3d9190613b84565b925050819055505b7f7ce07c31f2b07f744a159f0fa8d9b28589a98953fa8ad8a9310c2d775c34443f8282611b70611fe9565b604051611b7f93929190613bb8565b60405180910390a15050565b611b93611ee5565b611b9b611ff1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2090613c61565b60405180910390fd5b611c7b611c346113b2565b847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611f639092919063ffffffff16565b611c836120c9565b50505050565b600090565b60006001905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600063f23a6e6160e01b905095945050505050565b611cd8611ee5565b600060149054906101000a900460ff1615611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f90613724565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8e90613cf3565b60405180910390fd5b611da0816120d2565b50565b611dab611ee5565b611db36116e6565b611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990613d85565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6611e166113b2565b308989898989896040518963ffffffff1660e01b8152600401611e409897969594939291906135d8565b600060405180830381600087803b158015611e5a57600080fd5b505af1158015611e6e573d6000803e3d6000fd5b5050505050505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611eed611fe9565b73ffffffffffffffffffffffffffffffffffffffff16611f0b6113b2565b73ffffffffffffffffffffffffffffffffffffffff1614611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5890613df1565b60405180910390fd5b565b611fe48363a9059cbb60e01b8484604051602401611f82929190613e11565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612196565b505050565b600033905090565b600260015403612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90613e86565b60405180910390fd5b6002600181905550565b6120c3846323b872dd60e01b85858560405160240161206193929190613ea6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612196565b50505050565b60018081905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006121f8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661225d9092919063ffffffff16565b905060008151111561225857808060200190518101906122189190613f09565b612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90613fa8565b60405180910390fd5b5b505050565b606061226c8484600085612275565b90509392505050565b6060824710156122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b19061403a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516122e391906140cb565b60006040518083038185875af1925050503d8060008114612320576040519150601f19603f3d011682016040523d82523d6000602084013e612325565b606091505b509150915061233687838387612342565b92505050949350505050565b606083156123a457600083510361239c5761235c856123b7565b61239b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123929061412e565b60405180910390fd5b5b8290506123af565b6123ae83836123da565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156123ed5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124219190614192565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124738161243e565b811461247e57600080fd5b50565b6000813590506124908161246a565b92915050565b6000602082840312156124ac576124ab612434565b5b60006124ba84828501612481565b91505092915050565b60008115159050919050565b6124d8816124c3565b82525050565b60006020820190506124f360008301846124cf565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612524826124f9565b9050919050565b61253481612519565b811461253f57600080fd5b50565b6000813590506125518161252b565b92915050565b6000819050919050565b61256a81612557565b811461257557600080fd5b50565b60008135905061258781612561565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126125b2576125b161258d565b5b8235905067ffffffffffffffff8111156125cf576125ce612592565b5b6020830191508360018202830111156125eb576125ea612597565b5b9250929050565b6000806000806060858703121561260c5761260b612434565b5b600061261a87828801612542565b945050602061262b87828801612578565b935050604085013567ffffffffffffffff81111561264c5761264b612439565b5b6126588782880161259c565b925092505092959194509250565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126b48261266b565b810181811067ffffffffffffffff821117156126d3576126d261267c565b5b80604052505050565b60006126e661242a565b90506126f282826126ab565b919050565b600067ffffffffffffffff8211156127125761271161267c565b5b61271b8261266b565b9050602081019050919050565b82818337600083830152505050565b600061274a612745846126f7565b6126dc565b90508281526020810184848401111561276657612765612666565b5b612771848285612728565b509392505050565b600082601f83011261278e5761278d61258d565b5b813561279e848260208601612737565b91505092915050565b600080600080608085870312156127c1576127c0612434565b5b60006127cf87828801612542565b94505060206127e087828801612542565b93505060406127f187828801612578565b925050606085013567ffffffffffffffff81111561281257612811612439565b5b61281e87828801612779565b91505092959194509250565b6128338161243e565b82525050565b600060208201905061284e600083018461282a565b92915050565b60008083601f84011261286a5761286961258d565b5b8235905067ffffffffffffffff81111561288757612886612592565b5b6020830191508360208202830111156128a3576128a2612597565b5b9250929050565b60008083601f8401126128c0576128bf61258d565b5b8235905067ffffffffffffffff8111156128dd576128dc612592565b5b6020830191508360208202830111156128f9576128f8612597565b5b9250929050565b60008083601f8401126129165761291561258d565b5b8235905067ffffffffffffffff81111561293357612932612592565b5b60208301915083602082028301111561294f5761294e612597565b5b9250929050565b6000806000806000806060878903121561297357612972612434565b5b600087013567ffffffffffffffff81111561299157612990612439565b5b61299d89828a01612854565b9650965050602087013567ffffffffffffffff8111156129c0576129bf612439565b5b6129cc89828a016128aa565b9450945050604087013567ffffffffffffffff8111156129ef576129ee612439565b5b6129fb89828a01612900565b92509250509295509295509295565b60008060008060408587031215612a2457612a23612434565b5b600085013567ffffffffffffffff811115612a4257612a41612439565b5b612a4e87828801612854565b9450945050602085013567ffffffffffffffff811115612a7157612a70612439565b5b612a7d87828801612900565b925092505092959194509250565b600060208284031215612aa157612aa0612434565b5b6000612aaf84828501612542565b91505092915050565b612ac181612557565b82525050565b6000602082019050612adc6000830184612ab8565b92915050565b60008060408385031215612af957612af8612434565b5b6000612b0785828601612578565b9250506020612b1885828601612542565b9150509250929050565b600060208284031215612b3857612b37612434565b5b6000612b4684828501612578565b91505092915050565b612b5881612519565b82525050565b6000602082019050612b736000830184612b4f565b92915050565b60008060008060008060006080888a031215612b9857612b97612434565b5b6000612ba68a828b01612542565b975050602088013567ffffffffffffffff811115612bc757612bc6612439565b5b612bd38a828b016128aa565b9650965050604088013567ffffffffffffffff811115612bf657612bf5612439565b5b612c028a828b016128aa565b9450945050606088013567ffffffffffffffff811115612c2557612c24612439565b5b612c318a828b0161259c565b925092505092959891949750929550565b600067ffffffffffffffff821115612c5d57612c5c61267c565b5b602082029050602081019050919050565b6000612c81612c7c84612c42565b6126dc565b90508083825260208201905060208402830185811115612ca457612ca3612597565b5b835b81811015612ccd5780612cb98882612578565b845260208401935050602081019050612ca6565b5050509392505050565b600082601f830112612cec57612ceb61258d565b5b8135612cfc848260208601612c6e565b91505092915050565b600080600080600060a08688031215612d2157612d20612434565b5b6000612d2f88828901612542565b9550506020612d4088828901612542565b945050604086013567ffffffffffffffff811115612d6157612d60612439565b5b612d6d88828901612cd7565b935050606086013567ffffffffffffffff811115612d8e57612d8d612439565b5b612d9a88828901612cd7565b925050608086013567ffffffffffffffff811115612dbb57612dba612439565b5b612dc788828901612779565b9150509295509295909350565b600080600060408486031215612ded57612dec612434565b5b6000612dfb86828701612542565b935050602084013567ffffffffffffffff811115612e1c57612e1b612439565b5b612e288682870161259c565b92509250509250925092565b60008060408385031215612e4b57612e4a612434565b5b6000612e5985828601612578565b9250506020612e6a85828601612578565b9150509250929050565b600080600080600060a08688031215612e9057612e8f612434565b5b6000612e9e88828901612542565b9550506020612eaf88828901612542565b9450506040612ec088828901612578565b9350506060612ed188828901612578565b925050608086013567ffffffffffffffff811115612ef257612ef1612439565b5b612efe88828901612779565b9150509295509295909350565b600082825260208201905092915050565b7f5a69766f654c6f636b65723a3a70756c6c46726f6d4c6f636b6572455243373260008201527f312829202163616e50756c6c4552433732312829000000000000000000000000602082015250565b6000612f78603483612f0b565b9150612f8382612f1c565b604082019050919050565b60006020820190508181036000830152612fa781612f6b565b9050919050565b600082825260208201905092915050565b6000612fcb8385612fae565b9350612fd8838584612728565b612fe18361266b565b840190509392505050565b60006080820190506130016000830188612b4f565b61300e6020830187612b4f565b61301b6040830186612ab8565b818103606083015261302e818486612fbf565b90509695505050505050565b7f5a69766f654c6f636b65723a3a70756c6c46726f6d4c6f636b65724d756c746960008201527f4552433732312829202163616e50756c6c4d756c746945524337323128290000602082015250565b6000613096603e83612f0b565b91506130a18261303a565b604082019050919050565b600060208201905081810360008301526130c581613089565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613127576131266130fb565b5b80840192508235915067ffffffffffffffff82111561314957613148613100565b5b60208301925060018202360383131561316557613164613105565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131a782612557565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131d9576131d861316d565b5b600182019050919050565b7f5a69766f654c6f636b65723a3a70756c6c46726f6d4c6f636b65724d756c746960008201527f2829202163616e50756c6c4d756c746928290000000000000000000000000000602082015250565b6000613240603283612f0b565b915061324b826131e4565b604082019050919050565b6000602082019050818103600083015261326f81613233565b9050919050565b60008151905061328581612561565b92915050565b6000602082840312156132a1576132a0612434565b5b60006132af84828501613276565b91505092915050565b7f5a69766f654c6f636b65723a3a70757368546f4c6f636b65724552433732312860008201527f29202163616e5075736845524337323128290000000000000000000000000000602082015250565b6000613314603283612f0b565b915061331f826132b8565b604082019050919050565b6000602082019050818103600083015261334381613307565b9050919050565b7f4f43435f5661726961626c653a3a6973556e6465727772697465722829205f6d60008201527f736753656e646572282920213d20756e64657277726974657200000000000000602082015250565b60006133a6603983612f0b565b91506133b18261334a565b604082019050919050565b600060208201905081810360008301526133d581613399565b9050919050565b60006040820190506133f16000830185612ab8565b6133fe6020830184612b4f565b9392505050565b600061341082612557565b915061341b83612557565b92508282019050808211156134335761343261316d565b5b92915050565b7f4f43435f5661726961626c653a3a64726177282920616d6f756e74202b20757360008201527f616765203e206c696d6974000000000000000000000000000000000000000000602082015250565b6000613495602b83612f0b565b91506134a082613439565b604082019050919050565b600060208201905081810360008301526134c481613488565b9050919050565b7f5a69766f654c6f636b65723a3a70756c6c46726f6d4c6f636b6572455243313160008201527f35352829202163616e50756c6c45524331313535282900000000000000000000602082015250565b6000613527603683612f0b565b9150613532826134cb565b604082019050919050565b600060208201905081810360008301526135568161351a565b9050919050565b600082825260208201905092915050565b600080fd5b82818337505050565b6000613588838561355d565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156135bb576135ba61356e565b5b6020830292506135cc838584613573565b82840190509392505050565b600060a0820190506135ed600083018b612b4f565b6135fa602083018a612b4f565b818103604083015261360d81888a61357c565b9050818103606083015261362281868861357c565b90508181036080830152613637818486612fbf565b90509998505050505050505050565b7f4f43435f5661726961626c653a3a70757368546f4c6f636b657228292061737360008201527f657420213d205553444300000000000000000000000000000000000000000000602082015250565b60006136a2602a83612f0b565b91506136ad82613646565b604082019050919050565b600060208201905081810360008301526136d181613695565b9050919050565b7f4f776e61626c654c6f636b65643a3a756e6c6f636b65642829206c6f636b6564600082015250565b600061370e602083612f0b565b9150613719826136d8565b602082019050919050565b6000602082019050818103600083015261373d81613701565b9050919050565b7f4f776e61626c654c6f636b65643a3a7472616e736665724f776e65727368697060008201527f416e644c6f636b2829206e65774f776e6572203d3d2061646472657373283029602082015250565b60006137a0604083612f0b565b91506137ab82613744565b604082019050919050565b600060208201905081810360008301526137cf81613793565b9050919050565b7f5a69766f654c6f636b65723a3a70757368546f4c6f636b65724d756c7469282960008201527f202163616e507573684d756c7469282900000000000000000000000000000000602082015250565b6000613832603083612f0b565b915061383d826137d6565b604082019050919050565b6000602082019050818103600083015261386181613825565b9050919050565b7f5a69766f654c6f636b65723a3a70757368546f4c6f636b65724d756c7469455260008201527f433732312829202163616e507573684d756c7469455243373231282900000000602082015250565b60006138c4603c83612f0b565b91506138cf82613868565b604082019050919050565b600060208201905081810360008301526138f3816138b7565b9050919050565b7f4f43435f5661726961626c653a3a70756c6c46726f6d4c6f636b65722829206160008201527f7373657420213d20555344430000000000000000000000000000000000000000602082015250565b6000613956602c83612f0b565b9150613961826138fa565b604082019050919050565b6000602082019050818103600083015261398581613949565b9050919050565b7f5a69766f654c6f636b65723a3a70756c6c46726f6d4c6f636b65724d756c746960008201527f5061727469616c2829202163616e50756c6c4d756c74695061727469616c2829602082015250565b60006139e8604083612f0b565b91506139f38261398c565b604082019050919050565b60006020820190508181036000830152613a17816139db565b9050919050565b7f4f43435f5661726961626c653a3a726570617928292062617365203e20616d6f60008201527f756e740000000000000000000000000000000000000000000000000000000000602082015250565b6000613a7a602383612f0b565b9150613a8582613a1e565b604082019050919050565b60006020820190508181036000830152613aa981613a6d565b9050919050565b7f4f43435f5661726961626c653a3a7265706179282920616d6f756e74203e207560008201527f7361676500000000000000000000000000000000000000000000000000000000602082015250565b6000613b0c602483612f0b565b9150613b1782613ab0565b604082019050919050565b60006020820190508181036000830152613b3b81613aff565b9050919050565b600081519050613b518161252b565b92915050565b600060208284031215613b6d57613b6c612434565b5b6000613b7b84828501613b42565b91505092915050565b6000613b8f82612557565b9150613b9a83612557565b9250828203905081811115613bb257613bb161316d565b5b92915050565b6000606082019050613bcd6000830186612ab8565b613bda6020830185612ab8565b613be76040830184612b4f565b949350505050565b7f4f43435f5661726961626c653a3a70756c6c46726f6d4c6f636b65725061727460008201527f69616c282920617373657420213d205553444300000000000000000000000000602082015250565b6000613c4b603383612f0b565b9150613c5682613bef565b604082019050919050565b60006020820190508181036000830152613c7a81613c3e565b9050919050565b7f4f776e61626c654c6f636b65643a3a7472616e736665724f776e65727368697060008201527f2829206e65774f776e6572203d3d206164647265737328302900000000000000602082015250565b6000613cdd603983612f0b565b9150613ce882613c81565b604082019050919050565b60006020820190508181036000830152613d0c81613cd0565b9050919050565b7f5a69766f654c6f636b65723a3a70757368546f4c6f636b65724552433131353560008201527f2829202163616e50757368455243313135352829000000000000000000000000602082015250565b6000613d6f603483612f0b565b9150613d7a82613d13565b604082019050919050565b60006020820190508181036000830152613d9e81613d62565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ddb602083612f0b565b9150613de682613da5565b602082019050919050565b60006020820190508181036000830152613e0a81613dce565b9050919050565b6000604082019050613e266000830185612b4f565b613e336020830184612ab8565b9392505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613e70601f83612f0b565b9150613e7b82613e3a565b602082019050919050565b60006020820190508181036000830152613e9f81613e63565b9050919050565b6000606082019050613ebb6000830186612b4f565b613ec86020830185612b4f565b613ed56040830184612ab8565b949350505050565b613ee6816124c3565b8114613ef157600080fd5b50565b600081519050613f0381613edd565b92915050565b600060208284031215613f1f57613f1e612434565b5b6000613f2d84828501613ef4565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613f92602a83612f0b565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614024602683612f0b565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561408e578082015181840152602081019050614073565b60008484015250505050565b60006140a58261405a565b6140af8185614065565b93506140bf818560208601614070565b80840191505092915050565b60006140d7828461409a565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614118601d83612f0b565b9150614123826140e2565b602082019050919050565b600060208201905081810360008301526141478161410b565b9050919050565b600081519050919050565b60006141648261414e565b61416e8185612f0b565b935061417e818560208601614070565b6141878161266b565b840191505092915050565b600060208201905081810360008301526141ac8184614159565b90509291505056fea2646970667358221220088d506dbb6d4667abcec7fc44ebe9d4ab0b4e2e2ec74d87c23299bd8e290be364736f6c63430008110033000000000000000000000000b65a66621d7de34afec9b9ac0755133051550dd7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ea537eb0bbcc7783bdf7c595bf9371984583da660000000000000000000000001fa2700aa0544716d4597d094f4adacf67d47ab6