0 txs
112.6k calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calculateAvailableManagerFee
viewfunction calculateAvailableManagerFee(uint256 _fundValue) view returns (uint256 fee)
creationTime
viewfunction creationTime() view returns (uint256)
creator
viewfunction creator() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
factory
viewfunction factory() view returns (address)
getExitRemainingCooldown
viewfunction getExitRemainingCooldown(address _depositor) view returns (uint256 remaining)
getFundSummary
viewfunction getFundSummary() view returns (tuple)
lastDeposit
viewfunction lastDeposit(address) view returns (uint256)
lastExitCooldown
viewfunction lastExitCooldown(address) view returns (uint256)
lastFeeMintTime
viewfunction lastFeeMintTime() view returns (uint256)
lastWhitelistTransfer
viewfunction lastWhitelistTransfer(address) view returns (uint256)
name
viewfunction name() view returns (string)
poolManagerLogic
viewfunction poolManagerLogic() view returns (address)
privatePool
viewfunction privatePool() view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenPrice
viewfunction tokenPrice() view returns (uint256 price)
tokenPriceAtLastFeeMint
viewfunction tokenPriceAtLastFeeMint() view returns (uint256)
tokenPriceWithoutManagerFee
viewfunction tokenPriceWithoutManagerFee() view returns (uint256 price)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositForWithCustomCooldown
nonpayablefunction depositForWithCustomCooldown(address _recipient, address _asset, uint256 _amount, uint256 _cooldown) returns (uint256 liquidityMinted)
execTransaction
nonpayablefunction execTransaction(address to, bytes data) returns (bool success)
execTransactions
nonpayablefunction execTransactions(tuple[] txs)
executeOperation
nonpayablefunction executeOperation(address[] assets, uint256[] amounts, uint256[] premiums, address initiator, bytes params) returns (bool success)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _factory, bool _privatePool, string _fundName, string _fundSymbol)
mintManagerFee
nonpayablefunction mintManagerFee()
onERC721Received
nonpayablefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns (bytes4 magicSelector)
setPoolManagerLogic
nonpayablefunction setPoolManagerLogic(address _poolManagerLogic)
setPoolPrivate
nonpayablefunction setPoolPrivate(bool _privatePool)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
withdraw
nonpayablefunction withdraw(uint256 _fundTokenAmount)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawTo
nonpayablefunction withdrawTo(address _recipient, uint256 _fundTokenAmount)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, tuple[] _complexAssetsData)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address fundAddress, address investor, address assetDeposited, uint256 amountDeposited, uint256 valueDeposited, uint256 fundTokensReceived, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, uint256 time)
EntryFeeMinted
event EntryFeeMinted(address recipient, uint256 entryFeeAmount)
ExitFeeMinted
event ExitFeeMinted(address recipient, uint256 exitFeeAmount)
ManagerFeeMinted
event ManagerFeeMinted(address pool, address manager, uint256 available, uint256 daoFee, uint256 managerFee, uint256 tokenPriceAtLastFeeMint)
PoolManagerLogicSet
event PoolManagerLogicSet(address poolManagerLogic, address from)
PoolPrivacyUpdated
event PoolPrivacyUpdated(bool isPoolPrivate)
TransactionExecuted
event TransactionExecuted(address pool, address manager, uint16 transactionType, uint256 time)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdrawal
event Withdrawal(address fundAddress, address investor, uint256 valueWithdrawn, uint256 fundTokensWithdrawn, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, (address asset, uint256 amount, bool externalWithdrawProcessed)[] withdrawnAssets, uint256 time)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615ab180620000216000396000f3fe608060405234801561001057600080fd5b50600436106101e85760003560e01c8063750226de1161010b578063750226de146103825780637714f39d14610395578063778063921461039d5780637ae7cfb5146103b05780637ff9b596146103c3578063920f5c84146103cb57806394138e97146103de57806395d89b41146103f1578063a457c2d7146103f9578063a77134e41461040c578063a9059cbb14610414578063a971a91314610427578063aee883341461043a578063b8ea2b6e1461044d578063c45a015514610460578063cc3c6df614610468578063d8270dce14610470578063dd62ed3e14610478578063de6eb1331461048b578063df8ff12f1461049e576101e8565b806302d05d3f146101ed57806306fdde031461020b578063095ea7b3146102205780630acc7f2514610240578063150b7a021461025557806318160ddd146102755780631c5918d21461028a5780631e50a4a61461029f578063205c2878146102a757806323b872dd146102ba57806329d16ee8146102cd5780632e1a7d4d146102e0578063313ce567146102f357806339509351146103085780633babaad51461031b57806347e7ef241461032e5780635426f81d1461034157806359b5e75e1461035457806370a082311461035c5780637481de661461036f575b600080fd5b6101f56104a6565b6040516102029190614fe9565b60405180910390f35b6102136104ba565b60405161020291906152f2565b61023361022e366004614a3e565b610550565b60405161020291906152c3565b61025361024e366004614ebe565b61056e565b005b6102686102633660046148b2565b61057d565b60405161020291906152ce565b61027d6106e8565b604051610202919061573a565b6102926106ee565b6040516102029190615663565b6101f561082d565b6102536102b5366004614a3e565b61083c565b6102336102c8366004614872565b610921565b61027d6102db366004614802565b6109a9565b6102536102ee366004614e8e565b6109bb565b6102fb610aa2565b6040516102029190615791565b610233610316366004614a3e565b610aab565b610253610329366004614d2b565b610af9565b61027d61033c366004614a3e565b610b71565b61025361034f366004614967565b610b86565b610233610c8d565b61027d61036a366004614802565b610c96565b61027d61037d366004614802565b610cb5565b610253610390366004614802565b610cc7565b61027d610e10565b6102536103ab366004614a69565b610e16565b6102336103be3660046149ec565b610e26565b61027d610e70565b6102336103d9366004614b0c565b610eac565b61027d6103ec366004614e8e565b6112d6565b61021361131d565b610233610407366004614a3e565b61137e565b61027d6113e6565b610233610422366004614a3e565b611405565b610253610435366004614cec565b611419565b61027d610448366004614802565b6114c2565b61027d61045b366004614802565b6114d4565b6101f5611522565b610253611531565b61027d61159c565b61027d61048636600461483a565b6115a2565b61027d610499366004614922565b6115cd565b61027d6116b4565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105465780601f1061051b57610100808354040283529160200191610546565b820191906000526020600020905b81548152906001019060200180831161052957829003601f168201915b5050505050905090565b600061056461055d6116ba565b84846116be565b5060015b92915050565b6105793383836117aa565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b9906105b2908a90600401614fe9565b60206040518083038186803b1580156105ca57600080fd5b505afa1580156105de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610602919061481e565b90506001600160a01b0381166106335760405162461bcd60e51b815260040161062a9061553a565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe690610667908a908a908a908a908a90600401615150565b602060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b99190614d47565b6106d55760405162461bcd60e51b815260040161062a906154c5565b50630a85bd0160e11b9695505050505050565b60355490565b6106f6614376565b6000806000806000610706611e6a565b94509450945094509450604051806101a001604052806107246104ba565b81526020016107316106e8565b815260200161073e611f09565b815260200161074b611f86565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e39190810190614d63565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105798282609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b15801561088f57600080fd5b505afa1580156108a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108cb9190810190614be1565b516001600160401b03811180156108e157600080fd5b5060405190808252806020026020018201604052801561091b57816020015b6109086143e9565b8152602001906001900390816109005790505b506117aa565b600061092e848484612003565b61099e8461093a6116ba565b610999856040518060600160405280602881526020016159a5602891396001600160a01b038a166000908152603460205260408120906109786116ba565b6001600160a01b03168152602081019190915260400160002054919061214e565b6116be565b5060015b9392505050565b609b6020526000908152604090205481565b610a9f3382609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a0e57600080fd5b505afa158015610a22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4a9190810190614be1565b516001600160401b0381118015610a6057600080fd5b5060405190808252806020026020018201604052801561091b57816020015b610a876143e9565b815260200190600190039081610a7f579050506117aa565b50565b60385460ff1690565b6000610564610ab86116ba565b846109998560346000610ac96116ba565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906121e5565b609c546001600160a01b03163314610b235760405162461bcd60e51b815260040161062a90615341565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610b619083906152c3565b60405180910390a1610a9f61223d565b60006109a2338484610b816122a7565b6122ec565b600054610100900460ff1680610b9f5750610b9f61298b565b80610bad575060005460ff16155b610be85760405162461bcd60e51b815260040180806020018281038252602e815260200180615956602e913960400191505060405180910390fd5b600054610100900460ff16158015610c13576000805460ff1961ff0019909116610100171660011790555b610c1d838361299c565b610c25612a51565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610c86576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610ced5760405162461bcd60e51b815260040161062a9061553a565b6099546001600160a01b0316331480610d9c5750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4f57600080fd5b505afa158015610d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d87919061481e565b6001600160a01b0316336001600160a01b0316145b610db85760405162461bcd60e51b815260040161062a9061546b565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e059083903390615021565b60405180910390a150565b609a5481565b610e218383836117aa565b505050565b6000610e688484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612afa92505050565b949350505050565b600080610e7b611f09565b90506000610e99610e8b836112d6565b610e936106e8565b906121e5565b9050610ea58282613213565b9250505090565b60006001600160a01b0384163014610ed65760405162461bcd60e51b815260040161062a906154a7565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f07903390600401614fe9565b60206040518083038186803b158015610f1f57600080fd5b505afa158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f57919061481e565b90506001600160a01b03811615801590610ff25750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa557600080fd5b505afa158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdd919061481e565b6001600160a01b0316336001600160a01b0316145b61100e5760405162461bcd60e51b815260040161062a906155ce565b60008b8b600081811061101d57fe5b90506020020160208101906110329190614802565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161105d9190614fe9565b60206040518083038186803b15801561107557600080fd5b505afa158015611089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ad9190614ea6565b90506000826001600160a01b031663989dccf8308f8f60008181106110ce57fe5b90506020020160208101906110e39190614802565b8e8e60008181106110f057fe5b905060200201358d8d600081811061110457fe5b905060200201358b8b6040518763ffffffff1660e01b815260040161112e96959493929190615184565b60006040518083038186803b15801561114657600080fd5b505afa15801561115a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111829190810190614cba565b905060005b81518110156111e4576111da82828151811061119f57fe5b6020026020010151602001518383815181106111b757fe5b6020026020010151600001516001600160a01b031661324390919063ffffffff16565b9450600101611187565b508c8c60008181106111f257fe5b90506020020160208101906112079190614802565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016112329190614fe9565b60206040518083038186803b15801561124a57600080fd5b505afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112829190614ea6565b6112a88a8a600081811061129257fe5b90506020020135846121e590919063ffffffff16565b11156112c65760405162461bcd60e51b815260040161062a90615323565b5050509998505050505050505050565b6000806000806112e4611e6a565b9450505092509250600080611303876112fb6106e8565b878787613276565b909250905061131282826121e5565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105465780601f1061051b57610100808354040283529160200191610546565b600061056461138b6116ba565b8461099985604051806060016040528060258152602001615a5760259139603460006113b56116ba565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061214e565b60006114006113f3611f09565b6113fb6106e8565b613213565b905090565b60006105646114126116ba565b8484612003565b60005b81811015610e21576114b983838381811061143357fe5b905060200281019061144591906157e3565b611453906020810190614802565b84848481811061145f57fe5b905060200281019061147191906157e3565b61147f90602081019061579f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612afa92505050565b5060010161141c565b609d6020526000908152604090205481565b6001600160a01b0381166000908152609f6020908152604080832054609b909252822054829161150491906121e5565b905042811015611518576000915050610cb0565b6109a28142613358565b6099546001600160a01b031681565b60026065541415611577576040805162461bcd60e51b815260206004820152601f60248201526000805160206158cc833981519152604482015290519081900360640190fd5b60026065556115846133b5565b61158c61345a565b6115946134f7565b506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b906115fe903390600401614fe9565b60206040518083038186803b15801561161657600080fd5b505afa15801561162a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164e9190614d47565b61166a5760405162461bcd60e51b815260040161062a90615413565b61012c8210158015611683575061167f6122a7565b8211155b61169f5760405162461bcd60e51b815260040161062a90615576565b6116ab858585856122ec565b95945050505050565b609e5481565b3390565b6001600160a01b0383166117035760405162461bcd60e51b8152600401808060200182810382526024815260200180615a336024913960400191505060405180910390fd5b6001600160a01b0382166117485760405162461bcd60e51b815260040180806020018281038252602281526020018061590e6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600260655414156117f0576040805162461bcd60e51b815260206004820152601f60248201526000805160206158cc833981519152604482015290519081900360640190fd5b60026065556117fd6133b5565b61180561345a565b336000908152609b602052604090205442116118335760405162461bcd60e51b815260040161062a906155ec565b8161183d33610c96565b101561185b5760405162461bcd60e51b815260040161062a9061535f565b611863614413565b61186b6134f7565b8152609c546099546040516348cfc41b60e11b81526000927355f89d2391446a22efd03136edd74faa3042fc109263919f8836926118bc9289926001600160a01b0391821692911690600401615743565b60806040518083038186803b1580156118d457600080fd5b505af41580156118e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190c9190614dfc565b90506119166106e8565b6020830181905281516119299190613358565b60408301819052620186a011158061194357506040820151155b61195f5760405162461bcd60e51b815260040161062a90615627565b600061198e8360200151611988670de0b6b3a7640000856060015161372790919063ffffffff16565b90613780565b905061199e3383600001516137e4565b602082015115611a1d5760006119b2611f86565b90506119c2818460200151611405565b6119de5760405162461bcd60e51b815260040161062a90615558565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab818460200151604051611a139291906152aa565b60405180910390a1505b604082015115611b0f576099546040805163084c71a360e21b815290516000926001600160a01b031691632131c68c916004808301926020929190829003018186803b158015611a6c57600080fd5b505afa158015611a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa4919061481e565b9050611ab4818460400151611405565b611ad05760405162461bcd60e51b815260040161062a90615558565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab818460400151604051611b059291906152aa565b60405180910390a1505b6040830151611b2557670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611b6957600080fd5b505afa158015611b7d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ba59190810190614be1565b9050600081516001600160401b0381118015611bc057600080fd5b50604051908082528060200260200182016040528015611bfa57816020015b611be761443b565b815260200190600190039081611bdf5790505b5090506000805b8351811015611d3a576000806000611c45878581518110611c1e57fe5b6020026020010151600001518e8a8e8881518110611c3857fe5b60200260200101516138ce565b919450925090508115611cda576001600160a01b038316611c785760405162461bcd60e51b815260040161062a9061537d565b611cd863a9059cbb60e01b8e84604051602401611c969291906152aa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b03851690613243565b505b8080611ce65750600082115b15611d2f576040518060600160405280846001600160a01b03168152602001838152602001821515815250868681518110611d1d57fe5b60209081029190910101526001909401935b505050600101611c01565b508251600090611d4a9083613358565b9050808351038352611d75670de0b6b3a764000061198889600001518861372790919063ffffffff16565b60608801819052611d8d9066038d7ea4c680006121e5565b611da0611d98611f09565b895190613358565b1115611dbe5760405162461bcd60e51b815260040161062a90615645565b611dc66106e8565b876040015114611de85760405162461bcd60e51b815260040161062a90615489565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db1295308b89606001518c611e1a8f610c96565b60608d01518d51611e2a91613358565b611e326106e8565b8a42604051611e4999989796959493929190615201565b60405180910390a1611e5961223d565b505060016065555050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b158015611ec057600080fd5b505afa158015611ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef89190614f25565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b158015611f4e57600080fd5b505afa158015611f62573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114009190614ea6565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b158015611fcb57600080fd5b505afa158015611fdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611400919061481e565b6001600160a01b0383166120485760405162461bcd60e51b8152600401808060200182810382526025815260200180615a0e6025913960400191505060405180910390fd5b6001600160a01b03821661208d5760405162461bcd60e51b81526004018080602001828103825260238152602001806158a96023913960400191505060405180910390fd5b612098838383613da8565b6120d581604051806060016040528060268152602001615930602691396001600160a01b038616600090815260336020526040902054919061214e565b6001600160a01b03808516600090815260336020526040808220939093559084168152205461210490826121e5565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716926000805160206159cd83398151915292918290030190a3505050565b600081848411156121dd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121a257818101518382015260200161218a565b50505050905090810190601f1680156121cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156109a2576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561228d57600080fd5b505af11580156122a1573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b158015611f4e57600080fd5b600060026065541415612334576040805162461bcd60e51b815260206004820152601f60248201526000805160206158cc833981519152604482015290519081900360640190fd5b60026065556123416133b5565b61234961345a565b6000612353611f86565b9050806001600160a01b0316866001600160a01b03161480612378575060975460ff16155b80612387575061238786613e7b565b6123a35760405162461bcd60e51b815260040161062a9061560a565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d906123d3908890600401614fe9565b60206040518083038186803b1580156123eb57600080fd5b505afa1580156123ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124239190614d47565b61243f5760405162461bcd60e51b815260040161062a90615500565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b60405160240161246f91906152ce565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516124ad9190614fcd565b6000604051808303818686fa925050503d80600081146124e9576040519150601f19603f3d011682016040523d82523d6000602084013e6124ee565b606091505b509150915081158061251157508080602001905181019061250f9190614d47565b155b61252d5760405162461bcd60e51b815260040161062a90615430565b505061253761445b565b61253f6134f7565b81526040516125a5906323b872dd60e01b9061256390339030908a90602401614ffd565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b03881690613243565b506125b08686613efc565b602082015260007355f89d2391446a22efd03136edd74faa3042fc1063e3969ba36125d96106e8565b60208501518551609c546099546040516001600160e01b031960e088901b168152612617959493926001600160a01b03908116921690600401615762565b60606040518083038186803b15801561262f57600080fd5b505af4158015612643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126679190614da8565b90506126a561267589610c96565b82516001600160a01b038b166000908152609f6020908152604080832054609b9092529091205489919042613f7f565b6001600160a01b0389166000908152609f6020908152604080832093909355609b9052204290558051620186a011156126f05760405162461bcd60e51b815260040161062a90615627565b6126fe88826000015161402d565b6020810151156127545761271683826020015161402d565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb383826020015160405161274b9291906152aa565b60405180910390a15b60408101511561282a576099546040805163084c71a360e21b815290516000926001600160a01b031691632131c68c916004808301926020929190829003018186803b1580156127a357600080fd5b505afa1580156127b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127db919061481e565b90506127eb81836040015161402d565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb38183604001516040516128209291906152aa565b60405180910390a1505b600061283589610c96565b6020840151845191925060009161284b916121e5565b905060006128576106e8565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156128a757600080fd5b505afa1580156128bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128df9190614ea6565b6128ff670de0b6b3a76400006119886128f88686613213565b8790613727565b101561291d5760405162461bcd60e51b815260040161062a906153f5565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308c8c8c89602001518960000151898989426040516129669a9998979695949392919061503b565b60405180910390a161297661223d565b50509051600160655598975050505050505050565b60006129963061410d565b15905090565b600054610100900460ff16806129b557506129b561298b565b806129c3575060005460ff16155b6129fe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615956602e913960400191505060405180910390fd5b600054610100900460ff16158015612a29576000805460ff1961ff0019909116610100171660011790555b612a31614113565b612a3b83836141b3565b8015610e21576000805461ff0019169055505050565b600054610100900460ff1680612a6a5750612a6a61298b565b80612a78575060005460ff16155b612ab35760405162461bcd60e51b815260040180806020018281038252602e815260200180615956602e913960400191505060405180910390fd5b600054610100900460ff16158015612ade576000805460ff1961ff0019909116610100171660011790555b612ae661428b565b8015610a9f576000805461ff001916905550565b600060026065541415612b42576040805162461bcd60e51b815260206004820152601f60248201526000805160206158cc833981519152604482015290519081900360640190fd5b6002606555612b4f6133b5565b609954604051635989571960e01b81526001600160a01b0390911690635989571990612b7f903090600401614fe9565b60206040518083038186803b158015612b9757600080fd5b505afa158015612bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bcf9190614d47565b15612bec5760405162461bcd60e51b815260040161062a90615593565b6001600160a01b038316612c125760405162461bcd60e51b815260040161062a9061553a565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612c43908790600401614fe9565b60206040518083038186803b158015612c5b57600080fd5b505afa158015612c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c93919061481e565b905060008080806001600160a01b03851615612d3957609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d92612ce292909116908c908c90600401615091565b6040805180830381600087803b158015612cfb57600080fd5b505af1158015612d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d339190614e5a565b90925090505b61ffff821661300257609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90612d72908b90600401614fe9565b60206040518083038186803b158015612d8a57600080fd5b505afa158015612d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc2919061481e565b93506001600160a01b038416612ed6576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b158015612e1757600080fd5b505afa158015612e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4f919061481e565b60405162a950c360e81b81529091506001600160a01b0382169063a950c30090612e7e906000906004016152e3565b60206040518083038186803b158015612e9657600080fd5b505afa158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece919061481e565b945050612f72565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e690612f06908b90600401614fe9565b60206040518083038186803b158015612f1e57600080fd5b505afa158015612f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f569190614d47565b612f725760405162461bcd60e51b815260040161062a90615305565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d92612fab92909116908c908c90600401615091565b6040805180830381600087803b158015612fc457600080fd5b505af1158015612fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffc9190614e5a565b90925090505b60008261ffff16116130265760405162461bcd60e51b815260040161062a906153b9565b808061304a5750613035611f86565b6001600160a01b0316336001600160a01b0316145b8061306d5750613058614331565b6001600160a01b0316336001600160a01b0316145b6130895760405162461bcd60e51b815260040161062a9061544d565b61309c6001600160a01b03891688613243565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b038716916130e39190614fcd565b6000604051808303816000865af19150503d8060008114613120576040519150601f19603f3d011682016040523d82523d6000602084013e613125565b606091505b50915091508180156131465750808060200190518101906131469190614d47565b156131b457609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd29261318192909116908e908e90600401615091565b600060405180830381600087803b15801561319b57600080fd5b505af11580156131af573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d207306131de611f86565b86426040516131f094939291906150bd565b60405180910390a161320061223d565b5050600160655550939695505050505050565b6000811580613220575082155b1561322d57506000610568565b6109a28261198885670de0b6b3a7640000613727565b60008060008351602085016000875af190508015600181146132645761326f565b3d806000803e806000fd5b5092915050565b600080851580613284575086155b156132945750600090508061334e565b60006132ac876119888a670de0b6b3a7640000613727565b9050609a5481111561330f5760006132f26132cf86670de0b6b3a7640000613727565b6119888a6132ec8b6132ec609a548961335890919063ffffffff16565b90613727565b905061330b6133018a83613358565b611988838b613727565b9350505b609e541561334c57600061332e609e544261335890919063ffffffff16565b90506133486301e1338061198887818a6132ec8e88613727565b9250505b505b9550959350505050565b6000828211156133af576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b609960009054906101000a90046001600160a01b03166001600160a01b031663b187bd266040518163ffffffff1660e01b815260040160206040518083038186803b15801561340357600080fd5b505afa158015613417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343b9190614d47565b156134585760405162461bcd60e51b815260040161062a9061551d565b565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c079061348a903090600401614fe9565b60206040518083038186803b1580156134a257600080fd5b505afa1580156134b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134da9190614d47565b156134585760405162461bcd60e51b815260040161062a906154e3565b6000613501611f09565b9050600061350d6106e8565b9050600080600061351c611e6a565b94505050925092506000806135348787878787613276565b9092509050600061354583836121e5565b6099546040805163272b69b960e21b8152815193945060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561358b57600080fd5b505afa15801561359f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c39190614f02565b909250905060006135d8826119888686613727565b905060006135e68583613358565b905060006135f48d8d613213565b905080609a54101561360657609a8190555b6000871180613613575089155b8061361c57508b155b156136265742609e555b82156136b0576099546040805163084c71a360e21b815290516136b0926001600160a01b031691632131c68c916004808301926020929190829003018186803b15801561367257600080fd5b505afa158015613686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136aa919061481e565b8461402d565b81156136c7576136c76136c1611f86565b8361402d565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd306136f1611f86565b609a546040516137089392918b91899189916151cb565b60405180910390a161371861223d565b50505050505050505050505090565b60008261373657506000610568565b8282028284828161374357fe5b04146109a25760405162461bcd60e51b81526004018080602001828103825260218152602001806159846021913960400191505060405180910390fd5b60008082116137d3576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b8183816137dc57fe5b049392505050565b6001600160a01b0382166138295760405162461bcd60e51b81526004018080602001828103825260218152602001806159ed6021913960400191505060405180910390fd5b61383582600083613da8565b613872816040518060600160405280602281526020016158ec602291396001600160a01b038516600090815260336020526040902054919061214e565b6001600160a01b0383166000908152603360205260409020556035546138989082613358565b6035556040805182815290516000916001600160a01b038516916000805160206159cd8339815191529181900360200190a35050565b60008060006138db614475565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc9061390b908b90600401614fe9565b60206040518083038186803b15801561392357600080fd5b505afa158015613937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395b919061481e565b6001600160a01b0316606082018190526139875760405162461bcd60e51b815260040161062a9061553a565b613a19670de0b6b3a76400006119888884606001516001600160a01b031663d4fac45d308e6040518363ffffffff1660e01b81526004016139c9929190615021565b60206040518083038186803b1580156139e157600080fd5b505afa1580156139f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ec9190614ea6565b808252613a27908990613efc565b6020808301919091528501515160609015613b075785516001600160a01b038a8116911614613a685760405162461bcd60e51b815260040161062a9061539b565b6060820151602087015160405163056f626f60e01b81526001600160a01b039092169163056f626f91613aa59130918e918d918f91600401615115565b600060405180830381600087803b158015613abf57600080fd5b505af1158015613ad3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613afb9190810190614abf565b91965094509050613ba2565b81606001516001600160a01b0316636f8ae202308b8a8c6040518563ffffffff1660e01b8152600401613b3d94939291906150ea565b600060405180830381600087803b158015613b5757600080fd5b505af1158015613b6b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b939190810190614abf565b60016040860152919650945090505b80518015613d215760006001600160a01b03871615613c3a576040516370a0823160e01b81526001600160a01b038816906370a0823190613be7903090600401614fe9565b60206040518083038186803b158015613bff57600080fd5b505afa158015613c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c379190614ea6565b90505b60005b82811015613c7657613c6c848281518110613c5457fe5b6020026020010151602001518583815181106111b757fe5b9550600101613c3d565b506001600160a01b03871615613d1f576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613cb5903090600401614fe9565b60206040518083038186803b158015613ccd57600080fd5b505afa158015613ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d059190614ea6565b9050613d1b613d148284613358565b88906121e5565b9650505b505b82604001518015613d355750604087015115155b8015613d4957506001600160a01b03861615155b15613d9b57613d73612710611988896040015161271003866020015161372790919063ffffffff16565b613d7d8787613efc565b1015613d9b5760405162461bcd60e51b815260040161062a906153d7565b5050509450945094915050565b613db06133b5565b613db861345a565b6001600160a01b038316613dcb57610e21565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb599690613dfb908590600401614fe9565b60206040518083038186803b158015613e1357600080fd5b505afa158015613e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e4b9190614d47565b15613e5557610e21565b613e5e836114d4565b15610e215760405162461bcd60e51b815260040161062a906155b1565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b90613eac908590600401614fe9565b60206040518083038186803b158015613ec457600080fd5b505afa158015613ed8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190614d47565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba90613f2f90869086906004016152aa565b60206040518083038186803b158015613f4757600080fd5b505afa158015613f5b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a29190614ea6565b600080613f8c84866121e5565b90506000838210613fa657613fa18285613358565b613fa9565b60005b905088158015613fb7575087155b15613fc55760009250614021565b88613fd257869250614021565b871580613fde57508087105b15613feb57809250614021565b6000613fff82610e938c6119888c8e613727565b905087811161401b5780614014576001614016565b805b61401d565b875b9350505b50509695505050505050565b6001600160a01b038216614088576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61409460008383613da8565b6035546140a190826121e5565b6035556001600160a01b0382166000908152603360205260409020546140c790826121e5565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391926000805160206159cd8339815191529281900390910190a35050565b3b151590565b600054610100900460ff168061412c575061412c61298b565b8061413a575060005460ff16155b6141755760405162461bcd60e51b815260040180806020018281038252602e815260200180615956602e913960400191505060405180910390fd5b600054610100900460ff16158015612ae6576000805460ff1961ff0019909116610100171660011790558015610a9f576000805461ff001916905550565b600054610100900460ff16806141cc57506141cc61298b565b806141da575060005460ff16155b6142155760405162461bcd60e51b815260040180806020018281038252602e815260200180615956602e913960400191505060405180910390fd5b600054610100900460ff16158015614240576000805460ff1961ff0019909116610100171660011790555b82516142539060369060208601906144a8565b5081516142679060379060208501906144a8565b506038805460ff191660121790558015610e21576000805461ff0019169055505050565b600054610100900460ff16806142a457506142a461298b565b806142b2575060005460ff16155b6142ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180615956602e913960400191505060405180910390fd5b600054610100900460ff16158015614318576000805460ff1961ff0019909116610100171660011790555b60016065558015610a9f576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b158015611fcb57600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b604051806040016040528060008152602001600081525090565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826144de5760008555614524565b82601f106144f757805160ff1916838001178555614524565b82800160010185558215614524579182015b82811115614524578251825591602001919060010190614509565b50614530929150614534565b5090565b5b808211156145305760008155600101614535565b600061455c61455784615838565b6157f8565b905082815283838301111561457057600080fd5b828260208301376000602084830101529392505050565b600061459561455784615838565b90508281528383830111156145a957600080fd5b6109a2836020830184615859565b60008083601f8401126145c8578182fd5b5081356001600160401b038111156145de578182fd5b60208301915083602080830285010111156145f857600080fd5b9250929050565b600082601f83011261460f578081fd5b8135602061461f6145578361581b565b82815281810190858301855b858110156146ce5781358801606080601f19838d0301121561464b578889fd5b604080518281016001600160401b03828210818311171561466857fe5b908352848a01359061467982615885565b90825284830135908082111561468d578c8dfd5b508401603f81018e1361469e578b8cfd5b6146ae8e8b830135858401614549565b828b0152509290910135908201528452928401929084019060010161462b565b5090979650505050505050565b600082601f8301126146eb578081fd5b815160206146fb6145578361581b565b82815281810190858301855b858110156146ce5781518801604080601f19838d03011215614727578889fd5b80518181016001600160401b03828210818311171561474257fe5b908352838901519061475382615885565b908252838301519080821115614767578b8cfd5b508084019350508b603f84011261477c57898afd5b61478c8c89850151848601614587565b81890152865250509284019290840190600101614707565b60008083601f8401126147b5578182fd5b5081356001600160401b038111156147cb578182fd5b6020830191508360208285010111156145f857600080fd5b600082601f8301126147f3578081fd5b6109a283833560208501614549565b600060208284031215614813578081fd5b81356109a281615885565b60006020828403121561482f578081fd5b81516109a281615885565b6000806040838503121561484c578081fd5b823561485781615885565b9150602083013561486781615885565b809150509250929050565b600080600060608486031215614886578081fd5b833561489181615885565b925060208401356148a181615885565b929592945050506040919091013590565b6000806000806000608086880312156148c9578283fd5b85356148d481615885565b945060208601356148e481615885565b93506040860135925060608601356001600160401b03811115614905578182fd5b614911888289016147a4565b969995985093965092949392505050565b60008060008060808587031215614937578182fd5b843561494281615885565b9350602085013561495281615885565b93969395505050506040820135916060013590565b6000806000806080858703121561497c578182fd5b843561498781615885565b935060208501356149978161589a565b925060408501356001600160401b03808211156149b2578384fd5b6149be888389016147e3565b935060608701359150808211156149d3578283fd5b506149e0878288016147e3565b91505092959194509250565b600080600060408486031215614a00578081fd5b8335614a0b81615885565b925060208401356001600160401b03811115614a25578182fd5b614a31868287016147a4565b9497909650939450505050565b60008060408385031215614a50578182fd5b8235614a5b81615885565b946020939093013593505050565b600080600060608486031215614a7d578081fd5b8335614a8881615885565b92506020840135915060408401356001600160401b03811115614aa9578182fd5b614ab5868287016145ff565b9150509250925092565b600080600060608486031215614ad3578081fd5b8351614ade81615885565b6020850151604086015191945092506001600160401b03811115614b00578182fd5b614ab5868287016146db565b600080600080600080600080600060a08a8c031215614b29578687fd5b89356001600160401b0380821115614b3f578889fd5b614b4b8d838e016145b7565b909b50995060208c0135915080821115614b63578889fd5b614b6f8d838e016145b7565b909950975060408c0135915080821115614b87578586fd5b614b938d838e016145b7565b909750955060608c01359150614ba882615885565b90935060808b01359080821115614bbd578384fd5b50614bca8c828d016147a4565b915080935050809150509295985092959850929598565b60006020808385031215614bf3578182fd5b82516001600160401b0380821115614c09578384fd5b818501915085601f830112614c1c578384fd5b8151614c2a6145578261581b565b818152848101908486016040808502870188018b1015614c48578889fd5b8896505b84871015614cab5780828c031215614c62578889fd5b80518181018181108882111715614c7557fe5b82528251614c8281615885565b815282890151614c918161589a565b818a01528452600196909601959287019290810190614c4c565b50909998505050505050505050565b600060208284031215614ccb578081fd5b81516001600160401b03811115614ce0578182fd5b610e68848285016146db565b60008060208385031215614cfe578182fd5b82356001600160401b03811115614d13578283fd5b614d1f858286016145b7565b90969095509350505050565b600060208284031215614d3c578081fd5b81356109a28161589a565b600060208284031215614d58578081fd5b81516109a28161589a565b600060208284031215614d74578081fd5b81516001600160401b03811115614d89578182fd5b8201601f81018413614d99578182fd5b610e6884825160208401614587565b600060608284031215614db9578081fd5b604051606081018181106001600160401b0382111715614dd557fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060808284031215614e0d578081fd5b604051608081018181106001600160401b0382111715614e2957fe5b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b60008060408385031215614e6c578182fd5b825161ffff81168114614e7d578283fd5b60208401519092506148678161589a565b600060208284031215614e9f578081fd5b5035919050565b600060208284031215614eb7578081fd5b5051919050565b60008060408385031215614ed0578182fd5b8235915060208301356001600160401b03811115614eec578182fd5b614ef8858286016145ff565b9150509250929050565b60008060408385031215614f14578182fd5b505080516020909101519092909150565b600080600080600060a08688031215614f3c578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452614fb9816020860160208601615859565b601f01601f19169290920160200192915050565b60008251614fdf818460208701615859565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b038481168252831660208201526060604082018190526000906116ab90830184614fa1565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a06080820181905260009061131290830184614fa1565b6001600160a01b03868116825285166020820152604081018490526080606082018190526000906113129083018486614f77565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906151bf9083018486614f77565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b8181101561528b57865180518716895285810151868a0152840151151584890152968201969584019560010161525a565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b6000602082526109a26020830184614fa1565b6020808252600490820152633234191960e11b604082015260600190565b6020808252600490820152636468323760e01b604082015260600190565b6020808252600490820152636468333160e01b604082015260600190565b6020808252600490820152633234189960e11b604082015260600190565b6020808252600490820152636468313560e01b604082015260600190565b6020808252600490820152636468313960e01b604082015260600190565b6020808252600490820152636468323360e01b604082015260600190565b6020808252600490820152633234191b60e11b604082015260600190565b6020808252600490820152636468323560e01b604082015260600190565b60208082526003908201526264683560e81b604082015260600190565b60208082526003908201526264683960e81b604082015260600190565b602080825260049082015263191a0c8d60e21b604082015260600190565b6020808252600490820152630c8d064760e31b604082015260600190565b6020808252600490820152636468313760e01b604082015260600190565b6020808252600490820152636468323960e01b604082015260600190565b6020808252600490820152636468323160e01b604082015260600190565b60208082526003908201526232341960e91b604082015260600190565b6020808252600390820152620c8d0760eb1b604082015260600190565b60208082526003908201526264683160e81b604082015260600190565b6020808252600490820152630c8d062760e31b604082015260600190565b602080825260049082015263191a0c4d60e21b604082015260600190565b60208082526003908201526232341b60e91b604082015260600190565b6020808252600490820152630646832360e41b604082015260600190565b60208082526003908201526264683360e81b604082015260600190565b6020808252600490820152630646833360e41b604082015260600190565b6020808252600490820152636468313160e01b604082015260600190565b60208082526003908201526264683760e81b604082015260600190565b6020808252600490820152630646831360e41b604082015260600190565b6020808252600490820152633234189b60e11b604082015260600190565b60006020825282516101a08060208501526156826101c0850183614fa1565b9150602085015160408501526040850151606085015260608501516156aa6080860182614f64565b506080850151848303601f190160a08601526156c68382614fa1565b92505060a085015160c085015260c08501516156e560e0860182614f71565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b948552602085019390935260408401919091526001600160a01b03908116606084015216608082015260a00190565b60ff91909116815260200190565b6000808335601e198436030181126157b5578283fd5b8301803591506001600160401b038211156157ce578283fd5b6020019150368190038213156145f857600080fd5b60008235603e19833603018112614fdf578182fd5b6040518181016001600160401b038111828210171561581357fe5b604052919050565b60006001600160401b0382111561582e57fe5b5060209081020190565b60006001600160401b0382111561584b57fe5b50601f01601f191660200190565b60005b8381101561587457818101518382015260200161585c565b838111156122a15750506000910152565b6001600160a01b0381168114610a9f57600080fd5b8015158114610a9f57600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205708e89b68061c2c4caf272ca577225f96cb93f5c92e059969f8a29038f469aa64736f6c63430007060033