0 txs
1 call
constructor
No constructor.
functions
getBorrowedAmount
viewfunction getBorrowedAmount(string _poolId) view returns (uint256)
getMinDepositLimit
viewfunction getMinDepositLimit() view returns (uint256)
getPaymentToken
viewfunction getPaymentToken() view returns (address)
getRequestByIndex
viewfunction getRequestByIndex(uint256 _reqIndex) view returns (tuple)
getRequests
viewfunction getRequests() view returns (tuple[])
getRequestsLength
viewfunction getRequestsLength() view returns (uint256)
getRequestStatus
viewfunction getRequestStatus(string _roleId) view returns (tuple)
getTokenBalance
viewfunction getTokenBalance(string _roleId, address _token) view returns (uint256)
getVaultBalance
viewfunction getVaultBalance(string _roleId) view returns (uint256)
paused
viewfunction paused() view returns (bool)
adjustVaultBalance
nonpayablefunction adjustVaultBalance(string _id, uint256 _amount, uint8 _account, uint8 _type)
deposit
nonpayablefunction deposit(string _roleId, address _token, uint256 _amount) returns (string)
initializePaymentToken
nonpayablefunction initializePaymentToken(address _token)
invest
nonpayablefunction invest(string _roleId, string _poolId, uint256 _amount)
pause
nonpayablefunction pause()
pay
nonpayablefunction pay(string _roleId, string _poolId, tuple[] _paymentInfo)
processReceiveInvestmentRequest
nonpayablefunction processReceiveInvestmentRequest(uint256 _reqIndex, bool _isApproved)
processWithdrawRequest
nonpayablefunction processWithdrawRequest(uint256 _reqIndex, bool _isApproved)
receiveInvestmentRequest
nonpayablefunction receiveInvestmentRequest(string _roleId, string _poolId, uint256 _amount) returns (bool _isWithdrawn)
setMinDepositLimit
nonpayablefunction setMinDepositLimit(uint256 _limit)
unpause
nonpayablefunction unpause()
withdrawRequest
nonpayablefunction withdrawRequest(string _roleId, address _token, uint256 _amount) returns (bool _isWithdrawn)
events
Adjust
event Adjust(string indexed id, uint256 amount, uint8 account, uint8 paymentType)
Deposit
event Deposit(string indexed roleId, uint256 amount)
DepositStableCoin
event DepositStableCoin(string indexed roleId, address token, uint256 amount)
Invest
event Invest(string indexed roleId, string poolId, uint256 amount)
Paused
event Paused(address account)
Pay
event Pay(string indexed roleId, string poolId, (uint256 amount, uint8 paymentType)[] paymentInfo)
Receive
event Receive(string indexed roleId, string poolId, uint256 amount)
ReceiveRequest
event ReceiveRequest(string roleId, string poolId, uint256 amount)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(string indexed roleId, uint256 amount)
WithdrawRequest
event WithdrawRequest(string roleId, address token, uint256 amount)
WithdrawStableCoin
event WithdrawStableCoin(string indexed roleId, address token, uint256 amount)
errors
AccessDenied
error AccessDenied(address executor, uint256 deniedForRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
InvalidAmount
error InvalidAmount(uint256 amount)
InvalidPaymentType
error InvalidPaymentType(uint8 paymentType)
InvalidPoolToken
error InvalidPoolToken(address poolToken)
InvalidRequestIndex
error InvalidRequestIndex(uint256 index)
InvalidRoleOrPoolId
error InvalidRoleOrPoolId(string roleId, string poolId)
NotContractOwner
error NotContractOwner(address _user, address _contractOwner)
NotCreditPoolCall
error NotCreditPoolCall()
NotLender
error NotLender(address _user, address _lender)
NotPoolManager
error NotPoolManager(address _user, address _poolManager)
NotVaultCall
error NotVaultCall()
NotVerifiedLender
error NotVerifiedLender(string _id)
NotVerifiedPoolManager
error NotVerifiedPoolManager(string _id)
PaymentTokenIsInitialized
error PaymentTokenIsInitialized(address token)
PendingRequestExist
error PendingRequestExist(string roleId)
PoolIsExpired
error PoolIsExpired(string _id)
PoolIsNotActive
error PoolIsNotActive(string _id)
creation bytecode
0x608060405234801561001057600080fd5b506158c580620000216000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063613af3b6116100b85780638c2f23d51161007c5780638c2f23d5146102a9578063a30b574d146102bc578063c8cf4722146102cf578063d41c3a65146102d7578063d5ab5da4146102f7578063fd9d30011461030a57600080fd5b8063613af3b61461025157806364b1894f146102645780636d052b371461026c5780638456cb591461028c5780638813ce121461029457600080fd5b8063375ee8791161010a578063375ee879146101ca5780633cdb9762146101dd5780633f4ba83a146101fe57806350a072e814610206578063583e9318146102365780635c975abb1461024957600080fd5b80630bb0488c146101475780630fa51d591461016f5780631319dada14610184578063209d7fbe146101975780632a48ac9a146101aa575b600080fd5b61015a610155366004614d79565b61031d565b60405190151581526020015b60405180910390f35b61018261017d366004614dd4565b610440565b005b610182610192366004614e9c565b6104ab565b6101826101a5366004614f1d565b610512565b6101bd6101b8366004614d79565b610616565b6040516101669190614fa5565b61015a6101d8366004614e9c565b6106f7565b6101f06101eb366004614fb8565b6107ae565b604051908152602001610166565b6101826107c5565b61021961021436600461500b565b610803565b604080518251151581526020928301519281019290925201610166565b6101f061024436600461500b565b61082a565b61015a610836565b61018261025f36600461504c565b610845565b6101f0610851565b61027f61027a36600461504c565b61085b565b60405161016691906150ed565b61018261086c565b61029c6108a4565b6040516101669190615100565b6101826102b7366004614f1d565b6108ae565b6101f06102ca36600461500b565b610925565b6101f0610966565b6102df610970565b6040516001600160a01b039091168152602001610166565b610182610305366004615162565b61097a565b61018261031836600461518c565b610983565b600061032b858585856109db565b905080156103fa5761033b610f2e565b6001600160a01b0316836001600160a01b031614156103a45784846040516103649291906151ff565b604051908190038120838252907ffd950f75bf83187106ca979032c87af4e8bedbeff7455cba6df787f978267f29906020015b60405180910390a2610438565b84846040516103b49291906151ff565b604080519182900382206001600160a01b038616835260208301859052917f7f15fda45e04816297fec46ce866a1b9727841d0c1b2116734c5d1f46df57a949101610397565b7f45ac2e277b1429b04900969cb8cf7bbcd1e6ae7421c9cba26f94aec47a53bf6d8585858560405161042f9493929190615238565b60405180910390a15b949350505050565b61044e868686868686610f4c565b858560405161045e9291906151ff565b60405180910390207f89b804fdb2517baab420d19f54b08453f2b02b7ff35727c6d80b31a0452560518585858560405161049b949392919061527c565b60405180910390a2505050505050565b6104b88585858585611570565b84846040516104c89291906151ff565b60405180910390207f4d45e909e41c8404add34dd9e72c617b77e51307411b75ccf78d11fbc87b05e3848484604051610503939291906152e8565b60405180910390a25050505050565b801561060857600061052383611aa7565b905060006105348260000151611c68565b905061053e610f2e565b6001600160a01b0316816001600160a01b031614156105a9578151604051610566919061530c565b60405190819003812060808401518252907ffd950f75bf83187106ca979032c87af4e8bedbeff7455cba6df787f978267f299060200160405180910390a2610605565b81516040516105b8919061530c565b6040805191829003822060808501516001600160a01b03851684526020840152917f7f15fda45e04816297fec46ce866a1b9727841d0c1b2116734c5d1f46df57a94910160405180910390a25b50505b6106128282611ccb565b5050565b6060610620610f2e565b6001600160a01b0316836001600160a01b031614156106885784846040516106499291906151ff565b604051908190038120838252907f135290006f1871309577d248cf00619459a79b4a735638108a2bb080319c90d69060200160405180910390a26106e2565b84846040516106989291906151ff565b604080519182900382206001600160a01b038616835260208301859052917fd25d57ee2434a07ebcdf0695bfb37a3fe0005bd16f881de1defa4b6f4bbd2f46910160405180910390a25b6106ee858585856121f4565b95945050505050565b60006107068686868686612523565b9050801561076657858560405161071e9291906151ff565b60405180910390207fcce287a3a6a0a142fcbc825cdaa1295fae558e4dbd02501398a7dcca687c0eeb858585604051610759939291906152e8565b60405180910390a26106ee565b7f25c11f9a53d21f6f03aff7ff3ff79bd33785820df74d9959f80945d11829d178868686868660405161079d959493929190615328565b60405180910390a195945050505050565b60006107bb848484612b49565b90505b9392505050565b6107cd612b88565b6040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60408051808201909152600080825260208201526108218383612bb3565b90505b92915050565b60006108218383612c1b565b6000610840612c54565b905090565b61084e81612c73565b50565b6000610840612c8f565b610863614b82565b61082482611aa7565b610874612ca4565b6040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016107f9565b6060610840612cd5565b801561091b5760006108bf83611aa7565b80516040519192506108d09161530c565b60405180910390207fcce287a3a6a0a142fcbc825cdaa1295fae558e4dbd02501398a7dcca687c0eeb82602001518360800151604051610911929190615362565b60405180910390a2505b6106128282612eb6565b600061082183838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131d492505050565b600061084061320a565b6000610840610f2e565b61084e8161321f565b6109908585858585613294565b84846040516109a09291906151ff565b60405180910390207f01cadbba93969cc67accfd005cd397055a9f0c0130e4c99d7cbb895aa9d4002084848460405161050393929190615384565b60006109e561367a565b6109ef85856136a2565b610a2e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375392505050565b6000610a386137c5565b90506000610a47878787612b49565b9050831580610a5557508084115b15610a7b57604051633728b83d60e01b8152600481018590526024015b60405180910390fd5b60058201805460ff60a01b1916600160a01b1790556040805163313ce56760e01b81529051600091620f4240916001600160a01b0389169163313ce567916004808301926020929190829003018186803b158015610ad857600080fd5b505afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1091906153ae565b610b1b90600a6154cb565b60008051602061581083398151915254610b3e91906001600160401b03166154da565b610b4891906154f9565b9050808511158015610b955750610b5f88886137e9565b60008051602061581083398151915254600160801b90046001600160401b0316610b89919061551b565b6001600160401b031642115b15610d54576000610c1089898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610bdb915050565b6040519080825280601f01601f191660200182016040528015610c05576020820181803683370190505b50600330338b613850565b9050610c5389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250613a92915050565b60058401546001600160a01b0388811691161415610ca85785846000018a8a604051610c809291906151ff565b90815260200160405180910390206000828254610c9d919061555c565b90915550610cf59050565b610ceb89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b92508a9150613b039050565b610cf58188613b98565b610d3689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250429250613c16915050565b610d4a6001600160a01b0388163388613c95565b6001945050610f16565b826002018888604051610d689291906151ff565b9081526040519081900360200190205460ff1615610d9d57878760405163fdd9458b60e01b8152600401610a72929190615573565b6003830180546040805160c06020601f8d01819004028201810190925260a081018b815292939290918291908d908d908190850183828082843760009201829052509385525050604080518381526020818101909252930192919050508152336020820152604001600181526020908101899052825460018101845560009384529281902082518051939460040290910192610e3c9284920190614bcb565b506020828101518051610e559260018501920190614bcb565b506040820151600280830180546001600160a01b039093166001600160a01b031984168117825560608601519391926001600160a81b03199092161790600160a01b908490811115610ea957610ea9615065565b0217905550608082015181600301555050610ec5898989613cf8565b604080518082018252600181526020810183905290516002860190610eed908c908c906151ff565b908152604051602091819003820190208251815460ff1916901515178155910151600190910155505b5050600501805460ff60a01b19169055949350505050565b600080610f396137c5565b600501546001600160a01b031692915050565b610f5461367a565b610f6086868686613d79565b610f6a8686613dff565b610fa986868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ebd92505050565b610fe884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f4192505050565b6000610ff26137c5565b60058101805460ff60a01b1916600160a01b179055604080516020601f8801819004810282018101909252868152919250600091829161104d91908990899081908401838280828437600092019190915250613fb392505050565b905060005b848110156115015785858281811061106c5761106c615587565b90506040020160000135600014156110b35785858281811061109057611090615587565b60408051633728b83d60e01b815291029290920135600483015250602401610a72565b60008686838181106110c7576110c7615587565b90506040020160200160208101906110df919061559d565b60088111156110f0576110f0615065565b14806111365750600286868381811061110b5761110b615587565b9050604002016020016020810190611123919061559d565b600881111561113457611134615065565b145b8061117b5750600386868381811061115057611150615587565b9050604002016020016020810190611168919061559d565b600881111561117957611179615065565b145b156111c45785858281811061119257611192615587565b90506040020160200160208101906111aa919061559d565b6040516328792a6760e21b8152600401610a7291906155b8565b606060048787848181106111da576111da615587565b90506040020160200160208101906111f2919061559d565b600881111561120357611203615065565b1415611394576112c78b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c9081908401838280828437600092019190915250507fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f54600492503391506001600160a01b03168c8c898181106112b8576112b8615587565b90506040020160000135613850565b905061132b336112fe7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f546001600160a01b031690565b89898681811061131057611310615587565b6001600160a01b038916949392604090910201359050613fd6565b888860405161133b9291906151ff565b60405180910390207ff5d5772e8d5a2486b0137a29cd27e659543889db24000b47d9aff7b430e4ccee88888581811061137657611376615587565b604080519102929092013582525060200160405180910390a261146c565b6114428b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152508c92508b915087905081811061141657611416615587565b905060400201602001602081019061142e919061559d565b33308c8c898181106112b8576112b8615587565b905086868381811061145657611456615587565b61146992604090910201359050856155c6565b93505b6114ad8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614014915050565b6114ee89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614044915050565b50806114f9816155de565b915050611052565b506115176001600160a01b038216333085613fd6565b61155887878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250614062915050565b5050600501805460ff60a01b19169055505050505050565b61157861367a565b61158285856136a2565b6115c185858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375392505050565b61160083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f4192505050565b61163f83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506140d392505050565b60006116496137c5565b90506000611696878761169188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613fb392505050565b612b49565b90508215806116a457508083115b8061171957506116e985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061413992505050565b8260010186866040516116fd9291906151ff565b9081526020016040518091039020548461171791906155c6565b115b1561173a57604051633728b83d60e01b815260048101849052602401610a72565b81600201878760405161174e9291906151ff565b9081526040519081900360200190205460ff161561178357868660405163fdd9458b60e01b8152600401610a72929190615573565b60058201805460ff60a01b1916600160a01b179055604080516020601f890181900481028201810190925287815260009161181191908a908a908190840183828082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920182905250925033915030905089613850565b905061185488888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250613a92915050565b61189586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614044915050565b61190886868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8e018190048102820181019092528c815292508c91508b908190840183828082843760009201919091525061417692505050565b6005830154604080516020601f89018190048102820181019092528781526001600160a01b0390921691611956918990899081908401838280828437600092019190915250613fb392505050565b6001600160a01b031614156119a2578383600001898960405161197a9291906151ff565b90815260200160405180910390206000828254611997919061555c565b90915550611a1f9050565b611a1f88888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a8152611a19935091508a908a9081908401838280828437600092019190915250613fb392505050565b86613b03565b60058301805460ff60a01b1916905560405184908490611a4290899089906151ff565b90815260200160405180910390206000828254611a5f91906155c6565b9250508190555083836001018787604051611a7b9291906151ff565b90815260200160405180910390206000828254611a9891906155c6565b90915550505050505050505050565b611aaf614b82565b6000611ab96137c5565b9050806003018381548110611ad057611ad0615587565b90600052602060002090600402016040518060a0016040529081600082018054611af9906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611b25906155f9565b8015611b725780601f10611b4757610100808354040283529160200191611b72565b820191906000526020600020905b815481529060010190602001808311611b5557829003601f168201915b50505050508152602001600182018054611b8b906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611bb7906155f9565b8015611c045780601f10611bd957610100808354040283529160200191611c04565b820191906000526020600020905b815481529060010190602001808311611be757829003601f168201915b50505091835250506002828101546001600160a01b0381166020840152604090920191600160a01b900460ff1690811115611c4157611c41615065565b6002811115611c5257611c52615065565b8152602001600382015481525050915050919050565b604051600090600080516020615850833981519152907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623990611cab90859061530c565b908152604051908190036020019020546001600160a01b03169392505050565b611cd361438a565b6000611cdd6137c5565b90506001816003018481548110611cf657611cf6615587565b906000526020600020906004020160020160149054906101000a900460ff166002811115611d2657611d26615065565b14611d475760405163119c477760e11b815260048101849052602401610a72565b6000816003018481548110611d5e57611d5e615587565b90600052602060002090600402016040518060a0016040529081600082018054611d87906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611db3906155f9565b8015611e005780601f10611dd557610100808354040283529160200191611e00565b820191906000526020600020905b815481529060010190602001808311611de357829003601f168201915b50505050508152602001600182018054611e19906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611e45906155f9565b8015611e925780601f10611e6757610100808354040283529160200191611e92565b820191906000526020600020905b815481529060010190602001808311611e7557829003601f168201915b50505091835250506002828101546001600160a01b0381166020840152604090920191600160a01b900460ff1690811115611ecf57611ecf615065565b6002811115611ee057611ee0615065565b815260200160038201548152505090508215612000578051611f0190613753565b60058201805460ff60a01b1916600160a01b1790558051602082015160408301516080840151600093611f3c93909290916003913091613850565b9050611f4c826000015182613a92565b6000611f5b8360000151611c68565b60058501549091506001600160a01b0380831691161415611fb357608083015183516040518691611f8b9161530c565b90815260200160405180910390206000828254611fa8919061555c565b90915550611fd09050565b611fc68360000151828560800151613b03565b611fd08282613b98565b60058401805460ff60a01b1916905560408301516080840151611ffd916001600160a01b03841691613c95565b50505b60038201546000906120149060019061555c565b90508085146121595782600301818154811061203257612032615587565b906000526020600020906004020183600301868154811061205557612055615587565b90600052602060002090600402016000820181600001908054612077906155f9565b612082929190614c4f565b506001820181600101908054612097906155f9565b6120a2929190614c4f565b506002828101805483830180546001600160a01b031981166001600160a01b039093169283178255925460ff600160a01b91829004169491936001600160a81b031916909217919084908111156120fb576120fb615065565b021790555060038201548160030155905050848360020184600301838154811061212757612127615587565b906000526020600020906004020160000160405161214591906156a3565b908152604051908190036020019020600101555b8260030180548061216c5761216c6156af565b6000828152602081206000199092019160048302019061218c8282614cca565b61219a600183016000614cca565b50600281810180546001600160a81b0319169055600060039092019190915591558251604051918501916121ce919061530c565b908152604051908190036020019020805460ff1916815560006001909101555050505050565b60606121fe61367a565b61220885856136a2565b61224785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375392505050565b60006122516137c5565b90506000620f4240856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561229257600080fd5b505afa1580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca91906153ae565b6122d590600a6154cb565b6122dd612c8f565b6122e791906154da565b6122f191906154f9565b90508315806122ff57508084105b1561232057604051633728b83d60e01b815260048101859052602401610a72565b6001600160a01b03851660009081527f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e5376237602052604090205460ff16612383576040516308f778a960e11b81526001600160a01b0386166004820152602401610a72565b6123986001600160a01b038616333087613fd6565b60058201805460ff60a01b1916600160a01b179055604080516020601f890181900481028201810190925287815260009161242391908a908a9081908401838280828437600092018290525092506123ee915050565b6040519080825280601f01601f191660200182016040528015612418576020820181803683370190505b50600233308a613850565b905061246688888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250613a92915050565b60058301546001600160a01b03878116911614156124bb57848360000189896040516124939291906151ff565b908152602001604051809103902060008282546124b091906155c6565b909155506125089050565b6124fe88888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508991506143be9050565b6125088187613b98565b6005909201805460ff60a01b19169055509050949350505050565b600061252d61367a565b61253986868686613d79565b6125438686613dff565b61258286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ebd92505050565b6125c184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f4192505050565b60006125cb6137c5565b90508215806125f9575060405181906125e790879087906151ff565b90815260200160405180910390205483115b1561261a57604051633728b83d60e01b815260048101849052602401610a72565b60058101805460ff60a01b1916600160a01b179055604080516020601f8701819004810282018101909252858152600091620f424091612674918990899081908401838280828437600092019190915250613fb392505050565b6001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156126ac57600080fd5b505afa1580156126c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e491906153ae565b6126ef90600a6154cb565b600080516020615810833981519152546127199190600160401b90046001600160401b03166154da565b61272391906154f9565b9050808411158015612770575061273a86866137e9565b60008051602061581083398151915254600160c01b90046001600160401b0316612764919061551b565b6001600160401b031642115b156129515760006127f189898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600392503091503390508a613850565b905061283489898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614014915050565b61287587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614044915050565b8483600001888860405161288a9291906151ff565b908152602001604051809103902060008282546128a7919061555c565b9250508190555060006128ef88888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613fb392505050565b905061293288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250429250613c16915050565b6129466001600160a01b0382163388613c95565b600194505050612b31565b8160020188886040516129659291906151ff565b9081526040519081900360200190205460ff161561299a57878760405163fdd9458b60e01b8152600401610a72929190615573565b6003820180546040805160c06020601f8d01819004028201810190925260a081018b815292939290918291908d908d9081908501838280828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250336020820152604001600281526020908101889052825460018101845560009384529281902082518051939460040290910192612a5e9284920190614bcb565b506020828101518051612a779260018501920190614bcb565b506040820151600280830180546001600160a01b039093166001600160a01b031984168117825560608601519391926001600160a81b03199092161790600160a01b908490811115612acb57612acb615065565b0217905550608082015181600301555050604051806040016040528060011515815260200182815250836002018a8a604051612b089291906151ff565b908152604051602091819003820190208251815460ff1916901515178155910151600190910155505b50600501805460ff60a01b1916905595945050505050565b6000612b53610f2e565b6001600160a01b0316826001600160a01b03161415612b7d57612b768484612c1b565b90506107be565b612b76848484614448565b612b906144be565b612b986144e3565b6000612ba26137c5565b600501805460ff60a81b1916905550565b60408051808201909152600080825260208201526000612bd16137c5565b9050806002018484604051612be79291906151ff565b908152604080519182900360209081018320838301909252815460ff16151583526001909101549082015291505092915050565b600080612c266137c5565b9050806000018484604051612c3c9291906151ff565b90815260200160405180910390205491505092915050565b600080612c5f6137c5565b60050154600160a81b900460ff1692915050565b612c7b614519565b6000612c856137c5565b6004019190915550565b600080612c9a6137c5565b6004015492915050565b612cac61367a565b612cb46144e3565b6000612cbe6137c5565b600501805460ff60a81b1916600160a81b17905550565b60606000612ce16137c5565b6003810180546040805160208084028201810190925282815293945060009084015b82821015612eac57838290600052602060002090600402016040518060a0016040529081600082018054612d36906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054612d62906155f9565b8015612daf5780601f10612d8457610100808354040283529160200191612daf565b820191906000526020600020905b815481529060010190602001808311612d9257829003601f168201915b50505050508152602001600182018054612dc8906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054612df4906155f9565b8015612e415780601f10612e1657610100808354040283529160200191612e41565b820191906000526020600020905b815481529060010190602001808311612e2457829003601f168201915b50505091835250506002828101546001600160a01b0381166020840152604090920191600160a01b900460ff1690811115612e7e57612e7e615065565b6002811115612e8f57612e8f615065565b815260200160038201548152505081526020019060010190612d03565b5050505091505090565b612ebe61438a565b6000612ec86137c5565b90506002816003018481548110612ee157612ee1615587565b906000526020600020906004020160020160149054906101000a900460ff166002811115612f1157612f11615065565b14612f325760405163119c477760e11b815260048101849052602401610a72565b6000816003018481548110612f4957612f49615587565b90600052602060002090600402016040518060a0016040529081600082018054612f72906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054612f9e906155f9565b8015612feb5780601f10612fc057610100808354040283529160200191612feb565b820191906000526020600020905b815481529060010190602001808311612fce57829003601f168201915b50505050508152602001600182018054613004906155f9565b80601f0160208091040260200160405190810160405280929190818152602001828054613030906155f9565b801561307d5780601f106130525761010080835404028352916020019161307d565b820191906000526020600020905b81548152906001019060200180831161306057829003601f168201915b50505091835250506002828101546001600160a01b0381166020840152604090920191600160a01b900460ff16908111156130ba576130ba615065565b60028111156130cb576130cb615065565b8152602001600382015481525050905082156120005780516130ec90613ebd565b6130f98160200151613f41565b60058201805460ff60a01b1916600160a01b179055805160208201516040830151608084015160009361313493909290916003913091613850565b9050613144826000015182614014565b613152826020015182614044565b60058301805460ff60a01b191690556080820151602083015160405185916131799161530c565b90815260200160405180910390206000828254613196919061555c565b9250508190555060006131ac8360200151613fb3565b9050611ffd83604001518460800151836001600160a01b0316613c959092919063ffffffff16565b6000806131df6137c5565b905080600101836040516131f3919061530c565b908152602001604051809103902054915050919050565b6000806132156137c5565b6003015492915050565b61322761454d565b60006132316137c5565b60058101549091506001600160a01b031615613271576005810154604051635d14500560e11b81526001600160a01b039091166004820152602401610a72565b60050180546001600160a01b0319166001600160a01b0392909216919091179055565b61329c61454d565b60006132a66137c5565b9050836132c957604051633728b83d60e01b815260048101859052602401610a72565b6000808460018111156132de576132de615065565b146132f75760408051600081526020810190915261332e565b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b90506000600185600181111561334657613346615065565b1461335f57604080516000815260208101909152613396565b87878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b905060028460088111156133ac576133ac615065565b14156135045760058301805460ff60a01b1916600160a01b17905560006133d783838733308c613850565b905060008660018111156133ed576133ed615065565b14156134715761343489898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250613a92915050565b86846000018a8a6040516134499291906151ff565b9081526020016040518091039020600082825461346691906155c6565b909155506134f39050565b6134b289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614044915050565b6134f389898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250614062915050565b5060058301805460ff60a01b191690555b600384600881111561351857613518615065565b14156136705760058301805460ff60a01b1916600160a01b179055600061354383838730338c613850565b9050600086600181111561355957613559615065565b14156135dd576135a089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250613a92915050565b86846000018a8a6040516135b59291906151ff565b908152602001604051809103902060008282546135d2919061555c565b9091555061365f9050565b61361e89898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250614044915050565b61365f89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b92506145d1915050565b5060058301805460ff60a01b191690555b5050505050505050565b613682612c54565b156136a05760405163d93c066560e01b815260040160405180910390fd5b565b6040516000805160206158708339815191529081906136c490859085906151ff565b90815260405160209181900391909101902060040154600160401b90046001600160a01b0316331461374e57338160000184846040516137059291906151ff565b90815260405190819003602001812060049081015463431a218160e01b83526001600160a01b0393841691830191909152600160401b9004919091166024820152604401610a72565b505050565b60405160008051602061587083398151915290600190829061377690859061530c565b9081526040519081900360200190206004015460ff600160e01b9091041660028111156137a5576137a5615065565b146106125781604051631ceb9aef60e11b8152600401610a729190614fa5565b7f4a32ce924f804bdf08bc1a3c9c69468426f280a65f8e6569bbd3f5264d029f3b90565b604051600090600080516020615850833981519152907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623c9061382e90869086906151ff565b908152604051908190036020019020546001600160401b031691505092915050565b606061385a614638565b7f71d52ebb9ac155230065ae22a514090a20ade1b645f597db5871e81cee897a5a80547f71d52ebb9ac155230065ae22a514090a20ade1b645f597db5871e81cee897a599160006138aa836155de565b919050555060006138be8260010154614671565b90506040518060e001604052808a81526020018981526020018860088111156138e9576138e9615065565b8152602001426001600160401b03168152602001876001600160a01b03168152602001866001600160a01b03168152602001858152508260000182604051613931919061530c565b9081526020016040518091039020600082015181600001908051906020019061395b929190614bcb565b5060208281015180516139749260018501920190614bcb565b50604082015160028201805460ff1916600183600881111561399857613998615065565b021790555060608201516002820180546080850151610100600160e81b03199091166101006001600160401b03909416939093027fffffff0000000000000000000000000000000000000000ffffffffffffffffff169290921769010000000000000000006001600160a01b039384160217905560a08301516003830180546001600160a01b0319169190921617905560c0909101516004909101556040517ff5f755b288783fd6adcb89397f6e63cc7e17e0a6651dbf933ca72d770dcc286b908390613a6690849061530c565b908152604051908190036020018120613a7e9161573c565b60405180910390a198975050505050505050565b613a9a614638565b60006000805160206158708339815191525b905060008160000184604051613ac2919061530c565b908152604051602091819003820190206006810180546001810182556000918252908390208651929450613afc9391019190860190614bcb565b5050505050565b613b0b614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623890613b4d90879061530c565b90815260200160405180910390206000856001600160a01b03166001600160a01b031681526020019081526020016000206000828254613b8d919061555c565b909155505050505050565b613ba0614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623a90613be290869061530c565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055505050565b613c1e614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623c90613c6090869061530c565b90815260405190819003602001902080546001600160401b039290921667ffffffffffffffff19909216919091179055505050565b6040516001600160a01b03831660248201526044810182905261374e90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261470d565b613d00614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623990613d4490879087906151ff565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550505050565b604051600080516020615830833981519152908190613d9b90859085906151ff565b9081526020016040518091039020600101604051613db991906156a3565b60405180910390208585604051613dd19291906151ff565b604051809103902014613afc578484848460405163183765dd60e01b8152600401610a7294939291906157cb565b6040517f24a3626dce27e7c20e331e27c9031507667b4bc549f65c02cd04434c8f767e7f908190613e3390859085906151ff565b90815260405160209181900391909101902060040154600160401b90046001600160a01b0316331461374e5733816000018484604051613e749291906151ff565b90815260405190819003602001812060049081015463daf5b02760e01b83526001600160a01b0393841691830191909152600160401b9004919091166024820152604401610a72565b6040517f24a3626dce27e7c20e331e27c9031507667b4bc549f65c02cd04434c8f767e7f906001908290613ef290859061530c565b9081526040519081900360200190206004015460ff600160e01b909104166002811115613f2157613f21615065565b1461061257816040516321c7d42560e21b8152600401610a729190614fa5565b604051600080516020615830833981519152906001908290613f6490859061530c565b9081526040519081900360200190206004015460ff600160b81b909104166002811115613f9357613f93615065565b146106125781604051632d54594b60e21b8152600401610a729190614fa5565b604051600090600080516020615850833981519152908190611cab90859061530c565b6040516001600160a01b038085166024830152831660448201526064810182905261400e9085906323b872dd60e01b90608401613cc1565b50505050565b61401c614638565b60007f24a3626dce27e7c20e331e27c9031507667b4bc549f65c02cd04434c8f767e7f613aac565b61404c614638565b6000600080516020615830833981519152613aac565b61406a614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623b906140ac90869061530c565b908152602001604051809103902060008282546140c991906155c6565b9091555050505050565b6040516000805160206158308339815191529081906140f390849061530c565b908152604051908190036020019020600401546001600160401b03600160401b90910416421115610612578160405163c6f0822b60e01b8152600401610a729190614fa5565b60405160009060008051602061583083398151915290819061415c90859061530c565b908152602001604051809103902060030154915050919050565b61417e614638565b6040516000805160206158308339815191529060019082906141a190869061530c565b9081526040519081900360200190206004015460ff600160b81b9091041660028111156141d0576141d0615065565b146141f05782604051632d54594b60e21b8152600401610a729190614fa5565b8060010182604051614202919061530c565b90815260200160405180910390208360405161421e919061530c565b9081526040519081900360200190205460ff1661374e5760008160000184604051614249919061530c565b9081526040519081900360200190206005015490506000614269846147e2565b60028401805460ff191660011790559050614284848661481f565b60028301805460ff1916905560405183906142a090879061530c565b90815260405160209181900382019020600501805460018101825560009182529082902086516142d893919092019190870190614bcb565b5060405180606001604052806001151581526020018361ffff1681526020018261ffff168152508360010185604051614311919061530c565b90815260200160405180910390208660405161432d919061530c565b90815260408051602092819003830190208351815493850151949092015162ffffff1990931691151562ffff0019169190911761010061ffff948516021764ffff0000001916630100000093909216929092021790555050505050565b61439662200000614884565b6136a05760405163273a0cef60e11b8152336004820152622000006024820152604401610a72565b6143c6614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e53762389061440890879061530c565b90815260200160405180910390206000856001600160a01b03166001600160a01b031681526020019081526020016000206000828254613b8d91906155c6565b604051600090600080516020615850833981519152907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e53762389061448d90879087906151ff565b908152604080519182900360209081019092206001600160a01b038616600090815292529020549150509392505050565b6144c6612c54565b6136a057604051638dfc202b60e01b815260040160405180910390fd5b6144f06301000000614884565b6136a05760405163273a0cef60e11b815233600482015263010000006024820152604401610a72565b61452562080000614884565b6136a05760405163273a0cef60e11b8152336004820152620800006024820152604401610a72565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c600301546001600160a01b031633146136a0577fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f54604051600162bed83560e01b031981523360048201526001600160a01b039091166024820152604401610a72565b6145d9614638565b6040516000805160206158508339815191529082907f01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623b9061461b90869061530c565b908152602001604051809103902060008282546140c9919061555c565b60006146426137c5565b6005810154909150600160a01b900460ff1661084e57604051636f2fe0f960e11b815260040160405180910390fd5b6060600061467e83614890565b60010190506000816001600160401b0381111561469d5761469d615546565b6040519080825280601f01601f1916602001820160405280156146c7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461470057614705565b6146d1565b509392505050565b6000614762826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149689092919063ffffffff16565b905080516000148061478357508080602001905181019061478391906157f2565b61374e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a72565b60405160009060008051602061587083398151915290819061480590859061530c565b908152604051908190036020019020600501549392505050565b614827614977565b60405160008051602061587083398151915290600090829061484a90869061530c565b908152604051602091819003820190206005810180546001810182556000918252908390208651929450613afc9391019190860190614bcb565b600061082433836149c9565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106148cf5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106148fb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061491957662386f26fc10000830492506010015b6305f5e1008310614931576305f5e100830492506008015b612710831061494557612710830492506004015b60648310614957576064830492506002015b600a83106108245760010192915050565b60606107bb8484600085614a0c565b7f42ba2d744921557199e1e66146037e9a49bb6a325abe1905dd02b7e0643911d4546000805160206158308339815191529060ff1661084e576040516312289f1f60e21b815260040160405180910390fd5b6001600160a01b03821660009081527f380f3025f3784a5c14da8ad84ed05355503e90fe04bca1279878973492d270c06020819052604082205483168314610438565b606082471015614a6d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a72565b600080866001600160a01b03168587604051614a89919061530c565b60006040518083038185875af1925050503d8060008114614ac6576040519150601f19603f3d011682016040523d82523d6000602084013e614acb565b606091505b5091509150614adc87838387614ae7565b979650505050505050565b60608315614b53578251614b4c576001600160a01b0385163b614b4c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a72565b5081610438565b6104388383815115614b685781518083602001fd5b8060405162461bcd60e51b8152600401610a729190614fa5565b6040518060a00160405280606081526020016060815260200160006001600160a01b0316815260200160006002811115614bbe57614bbe615065565b8152602001600081525090565b828054614bd7906155f9565b90600052602060002090601f016020900481019282614bf95760008555614c3f565b82601f10614c1257805160ff1916838001178555614c3f565b82800160010185558215614c3f579182015b82811115614c3f578251825591602001919060010190614c24565b50614c4b929150614d00565b5090565b828054614c5b906155f9565b90600052602060002090601f016020900481019282614c7d5760008555614c3f565b82601f10614c8e5780548555614c3f565b82800160010185558215614c3f57600052602060002091601f016020900482015b82811115614c3f578254825591600101919060010190614caf565b508054614cd6906155f9565b6000825580601f10614ce6575050565b601f01602090049060005260206000209081019061084e91905b5b80821115614c4b5760008155600101614d01565b60008083601f840112614d2757600080fd5b5081356001600160401b03811115614d3e57600080fd5b602083019150836020828501011115614d5657600080fd5b9250929050565b80356001600160a01b0381168114614d7457600080fd5b919050565b60008060008060608587031215614d8f57600080fd5b84356001600160401b03811115614da557600080fd5b614db187828801614d15565b9095509350614dc4905060208601614d5d565b9396929550929360400135925050565b60008060008060008060608789031215614ded57600080fd5b86356001600160401b0380821115614e0457600080fd5b614e108a838b01614d15565b90985096506020890135915080821115614e2957600080fd5b614e358a838b01614d15565b90965094506040890135915080821115614e4e57600080fd5b818901915089601f830112614e6257600080fd5b813581811115614e7157600080fd5b8a60208260061b8501011115614e8657600080fd5b6020830194508093505050509295509295509295565b600080600080600060608688031215614eb457600080fd5b85356001600160401b0380821115614ecb57600080fd5b614ed789838a01614d15565b90975095506020880135915080821115614ef057600080fd5b50614efd88828901614d15565b96999598509660400135949350505050565b801515811461084e57600080fd5b60008060408385031215614f3057600080fd5b823591506020830135614f4281614f0f565b809150509250929050565b60005b83811015614f68578181015183820152602001614f50565b8381111561400e5750506000910152565b60008151808452614f91816020860160208601614f4d565b601f01601f19169290920160200192915050565b6020815260006108216020830184614f79565b600080600060408486031215614fcd57600080fd5b83356001600160401b03811115614fe357600080fd5b614fef86828701614d15565b9094509250615002905060208501614d5d565b90509250925092565b6000806020838503121561501e57600080fd5b82356001600160401b0381111561503457600080fd5b61504085828601614d15565b90969095509350505050565b60006020828403121561505e57600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6000815160a0845261509060a0850182614f79565b9050602083015184820360208601526150a98282614f79565b6040858101516001600160a01b03169087015260608501519092509050600381106150d6576150d6615065565b606085015260809283015192909301919091525090565b602081526000610821602083018461507b565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561515557603f1988860301845261514385835161507b565b94509285019290850190600101615127565b5092979650505050505050565b60006020828403121561517457600080fd5b61082182614d5d565b803560098110614d7457600080fd5b6000806000806000608086880312156151a457600080fd5b85356001600160401b038111156151ba57600080fd5b6151c688828901614d15565b909650945050602086013592506040860135600281106151e557600080fd5b91506151f36060870161517d565b90509295509295909350565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061524c60608301868861520f565b6001600160a01b03949094166020830152506040015292915050565b6009811061527857615278615065565b9052565b60006040808352615290818401878961520f565b8381036020858101919091528582528691810160005b878110156152da57833582526152bd83850161517d565b6152c984840182615268565b5092840192908401906001016152a6565b509998505050505050505050565b6040815260006152fc60408301858761520f565b9050826020830152949350505050565b6000825161531e818460208701614f4d565b9190910192915050565b60608152600061533c60608301878961520f565b828103602084015261534f81868861520f565b9150508260408301529695505050505050565b6040815260006153756040830185614f79565b90508260208301529392505050565b838152606081016002841061539b5761539b615065565b8360208301526104386040830184615268565b6000602082840312156153c057600080fd5b815160ff811681146107be57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115615422578160001904821115615408576154086153d1565b8085161561541557918102915b93841c93908002906153ec565b509250929050565b60008261543957506001610824565b8161544657506000610824565b816001811461545c576002811461546657615482565b6001915050610824565b60ff841115615477576154776153d1565b50506001821b610824565b5060208310610133831016604e8410600b84101617156154a5575081810a610824565b6154af83836153e7565b80600019048211156154c3576154c36153d1565b029392505050565b600061082160ff84168361542a565b60008160001904831182151516156154f4576154f46153d1565b500290565b60008261551657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160401b0380831681851680830382111561553d5761553d6153d1565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b60008282101561556e5761556e6153d1565b500390565b6020815260006107bb60208301848661520f565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156155af57600080fd5b6108218261517d565b602081016108248284615268565b600082198211156155d9576155d96153d1565b500190565b60006000198214156155f2576155f26153d1565b5060010190565b600181811c9082168061560d57607f821691505b6020821081141561562e57634e487b7160e01b600052602260045260246000fd5b50919050565b60008154615641816155f9565b60018281168015615659576001811461566a57615699565b60ff19841687528287019450615699565b8560005260208060002060005b858110156156905781548a820152908401908201615677565b50505082870194505b5050505092915050565b60006108218284615634565b634e487b7160e01b600052603160045260246000fd5b600081546156d2816155f9565b8085526020600183811680156156ef576001811461570357615731565b60ff19851688840152604088019550615731565b866000528260002060005b858110156157295781548a820186015290830190840161570e565b890184019650505b505050505092915050565b6020815260e0602082015260006157576101008301846156c5565b828103601f1901604084015261577081600186016156c5565b905060028401546157876060850160ff8316615268565b6001600160401b03600882901c16608085015260481c6001600160a01b0390811660a085015260038501541660c084015260049093015460e0909201919091525090565b6040815260006157df60408301868861520f565b8281036020840152614adc81858761520f565b60006020828403121561580457600080fd5b81516107be81614f0f56fe01f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e537623d42ba2d744921557199e1e66146037e9a49bb6a325abe1905dd02b7e0643911d201f5b24ee5030cbe968309ae87f44d9b507f44b87a26a192f4c45c46e53762365d045e9fab7bf4f58bc82f6a81c08cc40ff2cdc78d04257ef8906f92a3b0b56ba2646970667358221220e5b14f49380f30c711086dfa3d1dea3b1409e0720a339c85b56fd7e3dcc3008564736f6c63430008090033