0 txs
46.9k 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 sender) 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)
depositFor
nonpayablefunction depositFor(address _recipient, 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)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, uint256 _slippageTolerance)
withdrawTo
nonpayablefunction withdrawTo(address _recipient, uint256 _fundTokenAmount)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, uint256 _slippageTolerance)
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 manager, uint256 entryFeeAmount)
ExitFeeMinted
event ExitFeeMinted(address manager, 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
0x608060405234801561001057600080fd5b50615f7c80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102095760003560e01c80637714f39d116101215780637714f39d146103b657806377806392146103be5780637ae7cfb5146103d15780637ff9b596146103e4578063920f5c84146103ec57806394138e97146103ff57806395d89b4114610412578063a457c2d71461041a578063a77134e41461042d578063a9059cbb14610435578063a971a91314610448578063aee883341461045b578063b3db428b1461046e578063b8ea2b6e14610481578063c45a015514610494578063cc3c6df61461049c578063d8270dce146104a4578063dd62ed3e146104ac578063de6eb133146104bf578063df8164cf146104d2578063df8ff12f146104e5578063e4262edd146104ed57610209565b806302d05d3f1461020e57806306fdde031461022c578063095ea7b3146102415780630acc7f2514610261578063150b7a021461027657806318160ddd146102965780631c5918d2146102ab5780631e50a4a6146102c0578063205c2878146102c857806323b872dd146102db57806329d16ee8146102ee5780632e1a7d4d14610301578063313ce5671461031457806339509351146103295780633babaad51461033c57806347e7ef241461034f5780635426f81d1461036257806359b5e75e1461037557806370a082311461037d5780637481de6614610390578063750226de146103a3575b600080fd5b610216610500565b60405161022391906152e0565b60405180910390f35b610234610514565b60405161022391906155e9565b61025461024f366004614d92565b6105aa565b60405161022391906155ba565b61027461026f366004615194565b6105c8565b005b610289610284366004614c06565b6105da565b60405161022391906155c5565b61029e610745565b6040516102239190615c53565b6102b361074b565b6040516102239190615b7c565b61021661088a565b6102746102d6366004614d92565b610899565b6102546102e9366004614bc6565b610981565b61029e6102fc366004614b56565b610a09565b61027461030f366004615164565b610a1b565b61031c610b05565b6040516102239190615c5c565b610254610337366004614d92565b610b0e565b61027461034a3660046150b3565b610b5c565b61029e61035d366004614d92565b610be2565b610274610370366004614cbb565b610bf7565b610254610cfe565b61029e61038b366004614b56565b610d07565b61029e61039e366004614b56565b610d26565b6102746103b1366004614b56565b610d38565b61029e610e81565b6102746103cc366004614dbd565b610e87565b6102546103df366004614d40565b610e9a565b61029e610ee4565b6102546103fa366004614e94565b610f20565b61029e61040d366004615164565b611325565b61023461136c565b610254610428366004614d92565b6113cd565b61029e611435565b610254610443366004614d92565b611454565b610274610456366004615074565b611468565b61029e610469366004614b56565b61152c565b61029e61047c366004614bc6565b61153e565b61029e61048f366004614b56565b61154e565b61021661159c565b6102746115ab565b61029e61173e565b61029e6104ba366004614b8e565b611744565b61029e6104cd366004614c76565b61176f565b6102746104e03660046151d8565b611856565b61029e61193b565b6102746104fb366004614e60565b611941565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b820191906000526020600020905b81548152906001019060200180831161058357829003601f168201915b5050505050905090565b60006105be6105b7611a26565b8484611a2a565b5060015b92915050565b6105d6338361271084611b16565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b99061060f908a906004016152e0565b60206040518083038186803b15801561062757600080fd5b505afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190614b72565b90506001600160a01b0381166106905760405162461bcd60e51b815260040161068790615b20565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe6906106c4908a908a908a908a908a906004016154f0565b602060405180830381600087803b1580156106de57600080fd5b505af11580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071691906150cf565b6107325760405162461bcd60e51b8152600401610687906156ae565b50630a85bd0160e11b9695505050505050565b60355490565b6107536146eb565b600080600080600061076361222f565b94509450945094509450604051806101a00160405280610781610514565b815260200161078e610745565b815260200161079b6122ce565b81526020016107a861234b565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080457600080fd5b505afa158015610818573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261084091908101906150eb565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105d68282612710609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092b9190810190614f69565b516001600160401b038111801561094157600080fd5b5060405190808252806020026020018201604052801561097b57816020015b61096861475e565b8152602001906001900390816109605790505b50611b16565b600061098e8484846123c8565b6109fe8461099a611a26565b6109f985604051806060016040528060288152602001615e70602891396001600160a01b038a166000908152603460205260408120906109d8611a26565b6001600160a01b031681526020810191909152604001600020549190612513565b611a2a565b5060015b9392505050565b609b6020526000908152604090205481565b610b023382612710609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aad9190810190614f69565b516001600160401b0381118015610ac357600080fd5b5060405190808252806020026020018201604052801561097b57816020015b610aea61475e565b815260200190600190039081610ae257905050611b16565b50565b60385460ff1690565b60006105be610b1b611a26565b846109f98560346000610b2c611a26565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906125aa565b610b6461234b565b6001600160a01b0316336001600160a01b031614610b945760405162461bcd60e51b8152600401610687906157e0565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610bd29083906155ba565b60405180910390a1610b02612602565b6000610a02338484610bf261266c565b6126b1565b600054610100900460ff1680610c105750610c10612d24565b80610c1e575060005460ff16155b610c595760405162461bcd60e51b815260040180806020018281038252602e815260200180615e21602e913960400191505060405180910390fd5b600054610100900460ff16158015610c84576000805460ff1961ff0019909116610100171660011790555b610c8e8383612d35565b610c96612dea565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610cf7576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610d5e5760405162461bcd60e51b815260040161068790615890565b6099546001600160a01b0316331480610e0d5750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc057600080fd5b505afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190614b72565b6001600160a01b0316336001600160a01b0316145b610e295760405162461bcd60e51b81526004016106879061572e565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e769083903390615318565b60405180910390a150565b609a5481565b610e95838361271084611b16565b505050565b6000610edc8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9392505050565b949350505050565b600080610eef6122ce565b90506000610f0d610eff83611325565b610f07610745565b906125aa565b9050610f1982826135a1565b9250505090565b60006001600160a01b0384163014610f4a5760405162461bcd60e51b815260040161068790615832565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f7b9033906004016152e0565b60206040518083038186803b158015610f9357600080fd5b505afa158015610fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcb9190614b72565b90506001600160a01b038116158015906110665750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561101957600080fd5b505afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110519190614b72565b6001600160a01b0316336001600160a01b0316145b6110825760405162461bcd60e51b815260040161068790615b4e565b60008b8b600081811061109157fe5b90506020020160208101906110a69190614b56565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016110d191906152e0565b60206040518083038186803b1580156110e957600080fd5b505afa1580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611121919061517c565b90506000826001600160a01b031663989dccf8308f8f600081811061114257fe5b90506020020160208101906111579190614b56565b8e8e600081811061116457fe5b905060200201358d8d600081811061117857fe5b905060200201358b8b6040518763ffffffff1660e01b81526004016111a296959493929190615524565b60006040518083038186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111f69190810190615042565b905060005b81518110156112585761124e82828151811061121357fe5b60200260200101516020015183838151811061122b57fe5b6020026020010151600001516001600160a01b03166135d190919063ffffffff16565b94506001016111fb565b508c8c600081811061126657fe5b905060200201602081019061127b9190614b56565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016112a691906152e0565b60206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f6919061517c565b8211156113155760405162461bcd60e51b8152600401610687906159cf565b5050509998505050505050505050565b60008060008061133361222f565b94505050925092506000806113528761134a610745565b878787613604565b909250905061136182826125aa565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b60006105be6113da611a26565b846109f985604051806060016040528060258152602001615f226025913960346000611404611a26565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612513565b600061144f6114426122ce565b61144a610745565b6135a1565b905090565b60006105be611461611a26565b84846123c8565b60005b81811015610e955761150883838381811061148257fe5b90506020028101906114949190615cae565b6114a2906020810190614b56565b8484848181106114ae57fe5b90506020028101906114c09190615cae565b6114ce906020810190615c6a565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9392505050565b6115245760405162461bcd60e51b81526004016106879061592f565b60010161146b565b609d6020526000908152604090205481565b6000610edc848484610bf261266c565b6001600160a01b0381166000908152609f6020908152604080832054609b909252822054829161157e91906125aa565b905042811015611592576000915050610d21565b610a0281426136e6565b6099546001600160a01b031681565b600260655414156115f1576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d97833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561163b57600080fd5b505afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167391906150cf565b156116905760405162461bcd60e51b815260040161068790615a80565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906116c09030906004016152e0565b60206040518083038186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906150cf565b1561172d5760405162461bcd60e51b815260040161068790615ad1565b611735613743565b50506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b906117a09033906004016152e0565b60206040518083038186803b1580156117b857600080fd5b505afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906150cf565b61180c5760405162461bcd60e51b815260040161068790615909565b61012c8210158015611825575061182161266c565b8211155b6118415760405162461bcd60e51b815260040161068790615952565b61184d858585856126b1565b95945050505050565b6105d6338383609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e69190810190614f69565b516001600160401b03811180156118fc57600080fd5b5060405190808252806020026020018201604052801561097b57816020015b61192361475e565b81526020019060019003908161191b57905050611b16565b609e5481565b610e95838383609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119d19190810190614f69565b516001600160401b03811180156119e757600080fd5b5060405190808252806020026020018201604052801561097b57816020015b611a0e61475e565b815260200190600190039081611a0657905050611b16565b3390565b6001600160a01b038316611a6f5760405162461bcd60e51b8152600401808060200182810382526024815260200180615efe6024913960400191505060405180910390fd5b6001600160a01b038216611ab45760405162461bcd60e51b8152600401808060200182810382526022815260200180615dd96022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60026065541415611b5c576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d97833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015611ba657600080fd5b505afa158015611bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bde91906150cf565b15611bfb5760405162461bcd60e51b815260040161068790615a80565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611c2b9030906004016152e0565b60206040518083038186803b158015611c4357600080fd5b505afa158015611c57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7b91906150cf565b15611c985760405162461bcd60e51b815260040161068790615ad1565b336000908152609b60205260409020544211611cc65760405162461bcd60e51b815260040161068790615a25565b82611cd033610d07565b1015611cee5760405162461bcd60e51b815260040161068790615806565b612710821115611d105760405162461bcd60e51b8152600401610687906159a4565b611d18614788565b611d2a84611d24610745565b906136e6565b808252620186a0111580611d3d57508051155b611d595760405162461bcd60e51b8152600401610687906155fc565b611d61613743565b60408301526020820152600080611d7661222f565b945094505050506000821115611e27576000611d9c82611d9689866139de565b90613a37565b9050611da887826136e6565b8451909750611db790826125aa565b84526000611dc361234b565b9050611dcf8183611454565b611deb5760405162461bcd60e51b8152600401610687906158b9565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab8183604051611e1c9291906155a1565b60405180910390a150505b50506000611e48611e36610745565b611d9687670de0b6b3a76400006139de565b9050611e543386613a9b565b611e5c610745565b611e6d57670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611eb157600080fd5b505afa158015611ec5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611eed9190810190614f69565b9050600081516001600160401b0381118015611f0857600080fd5b50604051908082528060200260200182016040528015611f4257816020015b611f2f6147a9565b815260200190600190039081611f275790505b5090506000805b8351811015612083576000806000611f8e878581518110611f6657fe5b6020026020010151600001518e8a8e8e8981518110611f8157fe5b6020026020010151613b85565b919450925090508115612023576001600160a01b038316611fc15760405162461bcd60e51b8152600401610687906156d4565b61202163a9059cbb60e01b8e84604051602401611fdf9291906155a1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038516906135d1565b505b808061202f5750600082115b15612078576040518060600160405280846001600160a01b0316815260200183815260200182151581525086868151811061206657fe5b60209081029190910101526001909401935b505050600101611f49565b50825160009061209390836136e6565b905080835103835260006120c0670de0b6b3a7640000611d968960200151896139de90919063ffffffff16565b90506120d38166038d7ea4c680006125aa565b609c54604080516335fd4a6360e11b8152905161215e926001600160a01b031691636bfa94c69160048083019260209291908290030181600087803b15801561211b57600080fd5b505af115801561212f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612153919061517c565b60208a0151906136e6565b111561217c5760405162461bcd60e51b8152600401610687906158e1565b612184610745565b60408801518851612194916125aa565b146121b15760405162461bcd60e51b815260040161068790615867565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db12953033838d6121df33610d07565b60208d01516121ee90886136e6565b6121f6610745565b8b4260405161220d99989796959493929190615332565b60405180910390a161221d612602565b50506001606555505050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b15801561228557600080fd5b505afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd919061521c565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b15801561231357600080fd5b505afa158015612327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144f919061517c565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561239057600080fd5b505afa1580156123a4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144f9190614b72565b6001600160a01b03831661240d5760405162461bcd60e51b8152600401808060200182810382526025815260200180615ed96025913960400191505060405180910390fd5b6001600160a01b0382166124525760405162461bcd60e51b8152600401808060200182810382526023815260200180615d746023913960400191505060405180910390fd5b61245d83838361411d565b61249a81604051806060016040528060268152602001615dfb602691396001600160a01b0386166000908152603360205260409020549190612513565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546124c990826125aa565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615e9883398151915292918290030190a3505050565b600081848411156125a25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561256757818101518382015260200161254f565b50505050905090810190601f1680156125945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610a02576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561265257600080fd5b505af1158015612666573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b15801561231357600080fd5b6000600260655414156126f9576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d97833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561274357600080fd5b505afa158015612757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277b91906150cf565b156127985760405162461bcd60e51b815260040161068790615a80565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906127c89030906004016152e0565b60206040518083038186803b1580156127e057600080fd5b505afa1580156127f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281891906150cf565b156128355760405162461bcd60e51b815260040161068790615ad1565b600061283f61234b565b9050806001600160a01b0316866001600160a01b03161480612864575060975460ff16155b806128735750612873866141f0565b61288f5760405162461bcd60e51b8152600401610687906157ba565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d906128bf9088906004016152e0565b60206040518083038186803b1580156128d757600080fd5b505afa1580156128eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290f91906150cf565b61292b5760405162461bcd60e51b8152600401610687906159f6565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b60405160240161295b91906155c5565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161299991906152c4565b6000604051808303818686fa925050503d80600081146129d5576040519150601f19603f3d011682016040523d82523d6000602084013e6129da565b606091505b50915091508115806129fd5750808060200190518101906129fb91906150cf565b155b612a195760405162461bcd60e51b815260040161068790615682565b50506000612a25613743565b5090506000612a32610745565b9050612a966323b872dd60e01b333089604051602401612a54939291906152f4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038916906135d1565b506000612aa38888614271565b90508115612ac057612ab983611d9683856139de565b9450612ac4565b8094505b600080612acf61222f565b945050935050506000821115612b42576000612aef82611d968a866139de565b9050612afb88826136e6565b9750612b0787826142f4565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb38782604051612b389291906155a1565b60405180910390a1505b620186a0871015612b655760405162461bcd60e51b815260040161068790615651565b612b6f8b886142f4565b5050612bac612b7d8a610d07565b6001600160a01b038b166000908152609f6020908152604080832054609b9092529091205488918a91426143d4565b6001600160a01b038a166000908152609f6020908152604080832093909355609b9052908120429055612bde8a610d07565b90506000612bec85846125aa565b90506000612bf8610745565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612c4857600080fd5b505afa158015612c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c80919061517c565b612ca0670de0b6b3a7640000611d96612c9986866135a1565b87906139de565b1015612cbe5760405162461bcd60e51b815260040161068790615af6565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308d8d8d888d89898942604051612cff9a999897969594939291906153db565b60405180910390a150612d10612602565b505060016065555092979650505050505050565b6000612d2f30614482565b15905090565b600054610100900460ff1680612d4e5750612d4e612d24565b80612d5c575060005460ff16155b612d975760405162461bcd60e51b815260040180806020018281038252602e815260200180615e21602e913960400191505060405180910390fd5b600054610100900460ff16158015612dc2576000805460ff1961ff0019909116610100171660011790555b612dca614488565b612dd48383614528565b8015610e95576000805461ff0019169055505050565b600054610100900460ff1680612e035750612e03612d24565b80612e11575060005460ff16155b612e4c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615e21602e913960400191505060405180910390fd5b600054610100900460ff16158015612e77576000805460ff1961ff0019909116610100171660011790555b612e7f614600565b8015610b02576000805461ff001916905550565b600060026065541415612edb576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d97833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612f2557600080fd5b505afa158015612f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5d91906150cf565b15612f7a5760405162461bcd60e51b815260040161068790615a80565b6001600160a01b038316612fa05760405162461bcd60e51b815260040161068790615890565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612fd19087906004016152e0565b60206040518083038186803b158015612fe957600080fd5b505afa158015612ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130219190614b72565b905060008080806001600160a01b038516156130c757609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d9261307092909116908c908c90600401615431565b6040805180830381600087803b15801561308957600080fd5b505af115801561309d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c19190615130565b90925090505b61ffff821661339057609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613100908b906004016152e0565b60206040518083038186803b15801561311857600080fd5b505afa15801561312c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131509190614b72565b93506001600160a01b038416613264576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b1580156131a557600080fd5b505afa1580156131b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131dd9190614b72565b60405162a950c360e81b81529091506001600160a01b0382169063a950c3009061320c906000906004016155da565b60206040518083038186803b15801561322457600080fd5b505afa158015613238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325c9190614b72565b945050613300565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e690613294908b906004016152e0565b60206040518083038186803b1580156132ac57600080fd5b505afa1580156132c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e491906150cf565b6133005760405162461bcd60e51b81526004016106879061597c565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d9261333992909116908c908c90600401615431565b6040805180830381600087803b15801561335257600080fd5b505af1158015613366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338a9190615130565b90925090505b60008261ffff16116133b45760405162461bcd60e51b815260040161068790615701565b80806133d857506133c361234b565b6001600160a01b0316336001600160a01b0316145b806133fb57506133e66146a6565b6001600160a01b0316336001600160a01b0316145b6134175760405162461bcd60e51b815260040161068790615784565b61342a6001600160a01b038916886135d1565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b0387169161347191906152c4565b6000604051808303816000865af19150503d80600081146134ae576040519150601f19603f3d011682016040523d82523d6000602084013e6134b3565b606091505b50915091508180156134d45750808060200190518101906134d491906150cf565b1561354257609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd29261350f92909116908e908e90600401615431565b600060405180830381600087803b15801561352957600080fd5b505af115801561353d573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d2073061356c61234b565b864260405161357e949392919061545d565b60405180910390a161358e612602565b5050600160655550939695505050505050565b60008115806135ae575082155b156135bb575060006105c2565b610a0282611d9685670de0b6b3a76400006139de565b60008060008351602085016000875af190508015600181146135f2576135fd565b3d806000803e806000fd5b5092915050565b600080851580613612575086155b15613622575060009050806136dc565b600061363a87611d968a670de0b6b3a76400006139de565b9050609a5481111561369d57600061368061365d86670de0b6b3a76400006139de565b611d968a61367a8b61367a609a54896136e690919063ffffffff16565b906139de565b905061369961368f8a836136e6565b611d96838b6139de565b9350505b609e54156136da5760006136bc609e54426136e690919063ffffffff16565b90506136d66301e13380611d9687818a61367a8e886139de565b9250505b505b9550959350505050565b60008282111561373d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080609c60009054906101000a90046001600160a01b03166001600160a01b0316636bfa94c66040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561379657600080fd5b505af11580156137aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ce919061517c565b915060006137da610745565b905060008060006137e961222f565b94505050925092506000806138018887878787613604565b909250905061381082826125aa565b6099546040805163272b69b960e21b81528151939a5060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561385657600080fd5b505afa15801561386a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388e91906151f9565b909250905060006138a382611d968c866139de565b905060006138b18b836136e6565b905060006138bf8d8c6135a1565b905080609a5410156138d157609a8190555b85156138dc5742609e555b8215613966576099546040805163084c71a360e21b81529051613966926001600160a01b031691632131c68c916004808301926020929190829003018186803b15801561392857600080fd5b505afa15801561393c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139609190614b72565b846142f4565b811561397d5761397d61397761234b565b836142f4565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd306139a761234b565b8e8686609a546040516139bf9695949392919061556b565b60405180910390a16139cf612602565b50505050505050505050509091565b6000826139ed575060006105c2565b828202828482816139fa57fe5b0414610a025760405162461bcd60e51b8152600401808060200182810382526021815260200180615e4f6021913960400191505060405180910390fd5b6000808211613a8a576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b818381613a9357fe5b049392505050565b6001600160a01b038216613ae05760405162461bcd60e51b8152600401808060200182810382526021815260200180615eb86021913960400191505060405180910390fd5b613aec8260008361411d565b613b2981604051806060016040528060228152602001615db7602291396001600160a01b0385166000908152603360205260409020549190612513565b6001600160a01b038316600090815260336020526040902055603554613b4f90826136e6565b6035556040805182815290516000916001600160a01b03851691600080516020615e988339815191529181900360200190a35050565b6000806000613b926147c9565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613bc2908c906004016152e0565b60206040518083038186803b158015613bda57600080fd5b505afa158015613bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c129190614b72565b6001600160a01b031660608201819052613c3e5760405162461bcd60e51b815260040161068790615aaa565b613cd0670de0b6b3a7640000611d968984606001516001600160a01b031663d4fac45d308f6040518363ffffffff1660e01b8152600401613c80929190615318565b60206040518083038186803b158015613c9857600080fd5b505afa158015613cac573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061367a919061517c565b808252613cde908a90614271565b6020808301919091528501515160609015613dbd5785516001600160a01b038b8116911614613d1f5760405162461bcd60e51b815260040161068790615625565b81606001516001600160a01b031663056f626f308c8b8d8b602001516040518663ffffffff1660e01b8152600401613d5b9594939291906154b5565b600060405180830381600087803b158015613d7557600080fd5b505af1158015613d89573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613db19190810190614e13565b91965094509050613e58565b81606001516001600160a01b0316636f8ae202308c8b8d6040518563ffffffff1660e01b8152600401613df3949392919061548a565b600060405180830381600087803b158015613e0d57600080fd5b505af1158015613e21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e499190810190614e13565b60016040860152919650945090505b80518015613fd75760006001600160a01b03871615613ef0576040516370a0823160e01b81526001600160a01b038816906370a0823190613e9d9030906004016152e0565b60206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061517c565b90505b60005b82811015613f2c57613f22848281518110613f0a57fe5b60200260200101516020015185838151811061122b57fe5b9550600101613ef3565b506001600160a01b03871615613fd5576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613f6b9030906004016152e0565b60206040518083038186803b158015613f8357600080fd5b505afa158015613f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fbb919061517c565b9050613fd1613fca82846136e6565b88906125aa565b9650505b505b606083015160408051600481526024810182526020810180516001600160e01b0316631f32d1a360e11b179052905160009283926001600160a01b039091169161402191906152c4565b6000604051808303816000865af19150503d806000811461405e576040519150601f19603f3d011682016040523d82523d6000602084013e614063565b606091505b5091509150846040015180156140765750815b801561409157508080602001905181019061409191906150cf565b80156140a557506001600160a01b03881615155b1561410d5760008960400151116140bc57896140c2565b88604001515b99506140e5612710611d968c6127100388602001516139de90919063ffffffff16565b6140ef8989614271565b101561410d5760405162461bcd60e51b815260040161068790615a50565b5050505050955095509592505050565b614128838383610e95565b6001600160a01b03831661413b57610e95565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb59969061416b9085906004016152e0565b60206040518083038186803b15801561418357600080fd5b505afa158015614197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141bb91906150cf565b1515600114156141ca57610e95565b6141d38361154e565b15610e955760405162461bcd60e51b81526004016106879061575b565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b906142219085906004016152e0565b60206040518083038186803b15801561423957600080fd5b505afa15801561424d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c291906150cf565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba906142a490869086906004016155a1565b60206040518083038186803b1580156142bc57600080fd5b505afa1580156142d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a02919061517c565b6001600160a01b03821661434f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61435b6000838361411d565b60355461436890826125aa565b6035556001600160a01b03821660009081526033602052604090205461438e90826125aa565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615e988339815191529281900390910190a35050565b6000806143e184866125aa565b905060008382106143fb576143f682856136e6565b6143fe565b60005b90508815801561440c575087155b1561441a5760009250614476565b8861442757869250614476565b87158061443357508087105b1561444057809250614476565b600061445482610f078c611d968c8e6139de565b9050878111614470578061446957600161446b565b805b614472565b875b9350505b50509695505050505050565b3b151590565b600054610100900460ff16806144a157506144a1612d24565b806144af575060005460ff16155b6144ea5760405162461bcd60e51b815260040180806020018281038252602e815260200180615e21602e913960400191505060405180910390fd5b600054610100900460ff16158015612e7f576000805460ff1961ff0019909116610100171660011790558015610b02576000805461ff001916905550565b600054610100900460ff16806145415750614541612d24565b8061454f575060005460ff16155b61458a5760405162461bcd60e51b815260040180806020018281038252602e815260200180615e21602e913960400191505060405180910390fd5b600054610100900460ff161580156145b5576000805460ff1961ff0019909116610100171660011790555b82516145c89060369060208601906147fc565b5081516145dc9060379060208501906147fc565b506038805460ff191660121790558015610e95576000805461ff0019169055505050565b600054610100900460ff16806146195750614619612d24565b80614627575060005460ff16155b6146625760405162461bcd60e51b815260040180806020018281038252602e815260200180615e21602e913960400191505060405180910390fd5b600054610100900460ff1615801561468d576000805460ff1961ff0019909116610100171660011790555b60016065558015610b02576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561239057600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826148325760008555614878565b82601f1061484b57805160ff1916838001178555614878565b82800160010185558215614878579182015b8281111561487857825182559160200191906001019061485d565b50614884929150614888565b5090565b5b808211156148845760008155600101614889565b60006148b06148ab84615d03565b615cc3565b90508281528383830111156148c457600080fd5b828260208301376000602084830101529392505050565b60006148e96148ab84615d03565b90508281528383830111156148fd57600080fd5b610a02836020830184615d24565b60008083601f84011261491c578182fd5b5081356001600160401b03811115614932578182fd5b602083019150836020808302850101111561494c57600080fd5b9250929050565b600082601f830112614963578081fd5b813560206149736148ab83615ce6565b82815281810190858301855b85811015614a225781358801606080601f19838d0301121561499f578889fd5b604080518281016001600160401b0382821081831117156149bc57fe5b908352848a0135906149cd82615d50565b9082528483013590808211156149e1578c8dfd5b508401603f81018e136149f2578b8cfd5b614a028e8b83013585840161489d565b828b0152509290910135908201528452928401929084019060010161497f565b5090979650505050505050565b600082601f830112614a3f578081fd5b81516020614a4f6148ab83615ce6565b82815281810190858301855b85811015614a225781518801604080601f19838d03011215614a7b578889fd5b80518181016001600160401b038282108183111715614a9657fe5b9083528389015190614aa782615d50565b908252838301519080821115614abb578b8cfd5b508084019350508b603f840112614ad057898afd5b614ae08c898501518486016148db565b81890152865250509284019290840190600101614a5b565b60008083601f840112614b09578182fd5b5081356001600160401b03811115614b1f578182fd5b60208301915083602082850101111561494c57600080fd5b600082601f830112614b47578081fd5b610a028383356020850161489d565b600060208284031215614b67578081fd5b8135610a0281615d50565b600060208284031215614b83578081fd5b8151610a0281615d50565b60008060408385031215614ba0578081fd5b8235614bab81615d50565b91506020830135614bbb81615d50565b809150509250929050565b600080600060608486031215614bda578081fd5b8335614be581615d50565b92506020840135614bf581615d50565b929592945050506040919091013590565b600080600080600060808688031215614c1d578283fd5b8535614c2881615d50565b94506020860135614c3881615d50565b93506040860135925060608601356001600160401b03811115614c59578182fd5b614c6588828901614af8565b969995985093965092949392505050565b60008060008060808587031215614c8b578182fd5b8435614c9681615d50565b93506020850135614ca681615d50565b93969395505050506040820135916060013590565b60008060008060808587031215614cd0578182fd5b8435614cdb81615d50565b93506020850135614ceb81615d65565b925060408501356001600160401b0380821115614d06578384fd5b614d1288838901614b37565b93506060870135915080821115614d27578283fd5b50614d3487828801614b37565b91505092959194509250565b600080600060408486031215614d54578081fd5b8335614d5f81615d50565b925060208401356001600160401b03811115614d79578182fd5b614d8586828701614af8565b9497909650939450505050565b60008060408385031215614da4578182fd5b8235614daf81615d50565b946020939093013593505050565b600080600060608486031215614dd1578081fd5b8335614ddc81615d50565b92506020840135915060408401356001600160401b03811115614dfd578182fd5b614e0986828701614953565b9150509250925092565b600080600060608486031215614e27578081fd5b8351614e3281615d50565b6020850151604086015191945092506001600160401b03811115614e54578182fd5b614e0986828701614a2f565b600080600060608486031215614e74578081fd5b8335614e7f81615d50565b95602085013595506040909401359392505050565b600080600080600080600080600060a08a8c031215614eb1578687fd5b89356001600160401b0380821115614ec7578889fd5b614ed38d838e0161490b565b909b50995060208c0135915080821115614eeb578889fd5b614ef78d838e0161490b565b909950975060408c0135915080821115614f0f578586fd5b614f1b8d838e0161490b565b909750955060608c01359150614f3082615d50565b90935060808b01359080821115614f45578384fd5b50614f528c828d01614af8565b915080935050809150509295985092959850929598565b60006020808385031215614f7b578182fd5b82516001600160401b0380821115614f91578384fd5b818501915085601f830112614fa4578384fd5b8151614fb26148ab82615ce6565b818152848101908486016040808502870188018b1015614fd0578889fd5b8896505b848710156150335780828c031215614fea578889fd5b80518181018181108882111715614ffd57fe5b8252825161500a81615d50565b81528289015161501981615d65565b818a01528452600196909601959287019290810190614fd4565b50909998505050505050505050565b600060208284031215615053578081fd5b81516001600160401b03811115615068578182fd5b610edc84828501614a2f565b60008060208385031215615086578182fd5b82356001600160401b0381111561509b578283fd5b6150a78582860161490b565b90969095509350505050565b6000602082840312156150c4578081fd5b8135610a0281615d65565b6000602082840312156150e0578081fd5b8151610a0281615d65565b6000602082840312156150fc578081fd5b81516001600160401b03811115615111578182fd5b8201601f81018413615121578182fd5b610edc848251602084016148db565b60008060408385031215615142578182fd5b825161ffff81168114615153578283fd5b6020840151909250614bbb81615d65565b600060208284031215615175578081fd5b5035919050565b60006020828403121561518d578081fd5b5051919050565b600080604083850312156151a6578182fd5b8235915060208301356001600160401b038111156151c2578182fd5b6151ce85828601614953565b9150509250929050565b600080604083850312156151ea578182fd5b50508035926020909101359150565b6000806040838503121561520b578182fd5b505080516020909101519092909150565b600080600080600060a08688031215615233578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526152b0816020860160208601615d24565b601f01601f19169290920160200192915050565b600082516152d6818460208701615d24565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b818110156153bc57865180518716895285810151868a0152840151151584890152968201969584019560010161538b565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b0384811682528316602082015260606040820181905260009061184d90830184615298565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a06080820181905260009061136190830184615298565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090611361908301848661526e565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905260009061555f908301848661526e565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b600060208252610a026020830184615298565b6020808252600f908201526e18995b1bddc81d1a1c995cda1bdb19608a1b604082015260600190565b602080825260129082015271696e76616c6964206173736574206461746160701b604082015260600190565b6020808252601790820152761a5b9d985b1a59081b1a5c5d5a591a5d1e535a5b9d1959604a1b604082015260600190565b6020808252601290820152711391951cc81b9bdd081cdd5c1c1bdc9d195960721b604082015260600190565b6020808252600c908201526b1b9bdd081d995c9a599a595960a21b604082015260600190565b6020808252601390820152721b995959081dda5d1a191c985dc8185cdcd95d606a1b604082015260600190565b60208082526013908201527234b73b30b634b2103a3930b739b0b1ba34b7b760691b604082015260600190565b6020808252601390820152726f6e6c79206f776e65722c20666163746f727960681b604082015260600190565b6020808252600f908201526e636f6f6c646f776e2061637469766560881b604082015260600190565b6020808252601c908201527b6f6e6c79206d616e616765722c207472616465722c207075626c696360201b604082015260600190565b6020808252600c908201526b6f6e6c79206d656d6265727360a01b604082015260600190565b6020808252600c908201526b37b7363c9036b0b730b3b2b960a11b604082015260600190565b6020808252601290820152716e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601b908201527a37b7363c903837b7b610333630b9b4103637b0b71037b934b3b4b760291b604082015260600190565b6020808252600f908201526e0e6eae0e0d8f240dad2e6dac2e8c6d608b1b604082015260600190565b6020808252600f908201526e696e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d195e1a5d1199594819985a5b195960921b604082015260600190565b6020808252600e908201526d0ecc2d8eaca40dad2e6dac2e8c6d60931b604082015260600190565b6020808252600c908201526b1bdb9b1e48185b1b1bddd95960a21b604082015260600190565b6020808252600990820152681d1e0819985a5b195960ba1b604082015260600190565b60208082526010908201526f34b73b30b634b21031b7b7b63237bbb760811b604082015260600190565b6020808252600e908201526d185cdcd95d08191a5cd8589b195960921b604082015260600190565b602080825260119082015270696e76616c696420746f6c6572616e636560781b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252601590820152741a5b9d985b1a590819195c1bdcda5d08185cdcd95d605a1b604082015260600190565b60208082526011908201527031b0b7103bb4ba34323930bb9039b7b7b760791b604082015260600190565b6020808252601690820152756869676820776974686472617720736c69707061676560501b604082015260600190565b60208082526010908201526f18dbdb9d1c9858dd1cc81c185d5cd95960821b604082015260600190565b6020808252600d908201526c1a5b9d985b1a590819dd585c99609a1b604082015260600190565b6020808252600b908201526a1c1bdbdb081c185d5cd95960aa1b604082015260600190565b60208082526010908201526f1b995959081b5a5b8819195c1bdcda5d60821b604082015260600190565b6020808252601490820152736f6e6c792067756172646564206164647265737360601b604082015260600190565b6020808252601490820152731a5b9d985b1a59081b195b991a5b99c81c1bdbdb60621b604082015260600190565b60006020825282516101a0806020850152615b9b6101c0850183615298565b915060208501516040850152604085015160608501526060850151615bc3608086018261525b565b506080850151848303601f190160a0860152615bdf8382615298565b92505060a085015160c085015260c0850151615bfe60e0860182615268565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b60ff91909116815260200190565b6000808335601e19843603018112615c80578283fd5b8301803591506001600160401b03821115615c99578283fd5b60200191503681900382131561494c57600080fd5b60008235603e198336030181126152d6578182fd5b6040518181016001600160401b0381118282101715615cde57fe5b604052919050565b60006001600160401b03821115615cf957fe5b5060209081020190565b60006001600160401b03821115615d1657fe5b50601f01601f191660200190565b60005b83811015615d3f578181015183820152602001615d27565b838111156126665750506000910152565b6001600160a01b0381168114610b0257600080fd5b8015158114610b0257600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204874f55262108e1343998b3e8a088d6b3ce6d559ec9eab2bb743be3a29e4b55764736f6c63430007060033