0 txs
0 calls
constructor
constructor()
functions
parameters
viewfunction parameters() view returns (address dataStorage, address factory, address token0, address token1)
deploy
nonpayablefunction deploy(address dataStorage, address _factory, address token0, address token1) returns (address pool)
setFactory
nonpayablefunction setFactory(address _factory)
events
Factory
event Factory(address indexed factory)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50600580546001600160a01b03191633179055615c2d806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635bb4780814610046578063890357301461006e578063fd82b73a146100aa575b600080fd5b61006c6004803603602081101561005c57600080fd5b50356001600160a01b0316610104565b005b61007661019a565b604080516001600160a01b039586168152938516602085015291841683830152909216606082015290519081900360800190f35b6100e8600480360360808110156100c057600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166101be565b604080516001600160a01b039092168252519081900360200190f35b6005546001600160a01b0316331461011b57600080fd5b6001600160a01b03811661012e57600080fd5b6004546001600160a01b03161561014457600080fd5b6040516001600160a01b038216907f194d5292f3fd797c05e95926ce4b1d4d7f7f10c7dd0c467e55a42d82006bbc6990600090a2600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001546002546003546001600160a01b039384169392831692918216911684565b6004546000906001600160a01b031633146101d857600080fd5b604080516080810182526001600160a01b0380881680835287821660208085018290528884168587018190529388166060958601819052600080546001600160a01b03199081169095179055600180548516909317909255600280548416851790556003805490931682179092558451808301939093528285015283518083038501815291909201928390528051910120906102739061029d565b8190604051809103906000f5905080158015610293573d6000803e3d6000fd5b5095945050505050565b615976806102ab8339019056fe6101006040523480156200001257600080fd5b5033806001600160a01b031663890357306040518163ffffffff1660e01b815260040160806040518083038186803b1580156200004e57600080fd5b505afa15801562000063573d6000803e3d6000fd5b505050506040513d60808110156200007a57600080fd5b5080516020820151604083015160609384015180851b6001600160601b031990811660e05282861b811660c05283861b811660a0529484901b9094166080526002805461ffff60b81b1916601960ba1b1761ffff60c81b1916601960ca1b1790556004805462ffffff60c01b1916600f60c21b1790556001600160a01b0392831694509082169290821691166157a6620001d060003980610a7d5280610bbb5280610eec528061117b528061139a528061162652806116d4528061170e528061287a5280612985528061399a525080610a245280610b1d5280610be15280610e9a52806110b25280611357528061165c528061169e52806128455280613844525080610ca15280610fb052806118ee5280611a1e528061293f5280612a755280613a09525080610db552806117bd5280611dca5280612cb5528061361b5280613c5152806143af528061447d52506157a66000f3fe608060405234801561001057600080fd5b506004361061015f5760003560e01c80630dfe168114610164578063128acb081461018857806317e25b3c146102355780631a68650214610256578063289fe9b01461027a57806329047dfa1461029f578063490e6cbc146102a75780634f1eb3d814610331578063514ea4bf146103b15780636378ae441461041657806370cf754a14610430578063713346941461043857806374eceae6146104d55780637c0112b7146105515780637c1fe0c814610579578063920c34e51461059f5780639d3a5241146105fa578063a34123a71461078b578063aafe29c0146107c5578063c45a015514610897578063c677e3e01461089f578063d0c93a7c146108bf578063d21220a7146108de578063e76c01e4146108e6578063ecdecf421461094a578063f085a61014610952578063f30dba9314610972578063f637731d146109f4578063facb0eb114610a1a575b600080fd5b61016c610a22565b604080516001600160a01b039092168252519081900360200190f35b61021c600480360360a081101561019e57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a081016080820135600160201b8111156101de57600080fd5b8201836020820111156101f057600080fd5b803590602001918460018302840111600160201b8311171561021157600080fd5b509092509050610a46565b6040805192835260208301919091528051918290030190f35b61023d610c84565b6040805163ffffffff9092168252519081900360200190f35b61025e610c90565b604080516001600160801b039092168252519081900360200190f35b61029d6004803603602081101561029057600080fd5b503563ffffffff16610c9f565b005b61016c610db3565b61029d600480360360808110156102bd57600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156102f357600080fd5b82018360208201111561030557600080fd5b803590602001918460018302840111600160201b8311171561032657600080fd5b509092509050610dd7565b610382600480360360a081101561034757600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b036060820135811691608001351661124f565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6103ce600480360360208110156103c757600080fd5b503561144d565b604080516001600160801b03978816815263ffffffff90961660208701528581019490945260608501929092528416608084015290921660a082015290519081900360c00190f35b61041e611496565b60408051918252519081900360200190f35b61025e61149c565b61021c600480360360c081101561044e57600080fd5b6001600160a01b0382358116926020810135821692604082013515159260608301359260808101359091169181019060c0810160a0820135600160201b81111561049757600080fd5b8201836020820111156104a957600080fd5b803590602001918460018302840111600160201b831117156104ca57600080fd5b5090925090506114ae565b6104f2600480360360208110156104eb57600080fd5b50356117b0565b60408051971515885263ffffffff909616602088015260069490940b868601526001600160a01b0390921660608601526001600160581b0316608085015260020b60a08401526001600160901b031660c0830152519081900360e00190f35b61029d6004803603604081101561056757600080fd5b5060ff81358116916020013516611881565b61029d6004803603602081101561058f57600080fd5b50356001600160a01b0316611a1c565b6105c9600480360360408110156105b557600080fd5b508035600290810b9160200135900b611b0b565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6106686004803603602081101561061057600080fd5b810190602081018135600160201b81111561062a57600080fd5b82018360208201111561063c57600080fd5b803590602001918460208302840111600160201b8311171561065d57600080fd5b509092509050611dc2565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b838110156106b457818101518382015260200161069c565b50505050905001858103845288818151815260200191508051906020019060200280838360005b838110156106f35781810151838201526020016106db565b50505050905001858103835287818151815260200191508051906020019060200280838360005b8381101561073257818101518382015260200161071a565b50505050905001858103825286818151815260200191508051906020019060200280838360005b83811015610771578181015183820152602001610759565b505050509050019850505050505050505060405180910390f35b61021c600480360360608110156107a157600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612127565b610870600480360360c08110156107db57600080fd5b6001600160a01b0382358116926020810135909116916040820135600290810b92606081013590910b916001600160801b03608083013516919081019060c0810160a0820135600160201b81111561083257600080fd5b82018360208201111561084457600080fd5b803590602001918460018302840111600160201b8311171561086557600080fd5b509092509050612367565b6040805193845260208401929092526001600160801b031682820152519081900360600190f35b61016c61293d565b61041e600480360360208110156108b557600080fd5b503560010b612961565b6108c7612973565b6040805160029290920b8252519081900360200190f35b61016c612983565b6108ee6129a7565b604080516001600160a01b03909916895260029790970b602089015261ffff95861688880152938516606088015291909316608086015260ff92831660a086015290911660c0840152151560e083015251908190036101000190f35b61041e612a02565b61029d6004803603602081101561096857600080fd5b503560020b612a08565b6109926004803603602081101561098857600080fd5b503560020b612bed565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b61029d60048036036020811015610a0a57600080fd5b50356001600160a01b0316612c57565b61016c612dca565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600080600080610a5a8b8b8b612de0565b949a509298509096509450925090508a15610b0f576000851215610aa657610aa67f00000000000000000000000000000000000000000000000000000000000000008d876000036136f2565b6000610ab0613840565b9050610abe87878b8b6138e0565b610ac6613840565b610ad08289613980565b1115610b09576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50610bab565b6000861215610b4657610b467f00000000000000000000000000000000000000000000000000000000000000008d886000036136f2565b6000610b50613996565b9050610b5e87878b8b6138e0565b610b66613996565b610b708288613980565b1115610ba9576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b8015610c0757610c078b610bdf577f0000000000000000000000000000000000000000000000000000000000000000610c01565b7f00000000000000000000000000000000000000000000000000000000000000005b82613a05565b60408051878152602081018790526001600160a01b03868116828401526001600160801b0385166060830152600286900b60808301529151918e1691339160008051602061577a833981519152919081900360a00190a35050600280546001600160f81b0316600160f81b17905550919890975095505050505050565b60045463ffffffff1681565b6003546001600160801b031681565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf857600080fd5b505afa158015610d0c573d6000803e3d6000fd5b505050506040513d6020811015610d2257600080fd5b50516001600160a01b03163314610d3857600080fd5b6201518063ffffffff821611801590610d5c575060045463ffffffff828116911614155b610d6557600080fd5b6004805463ffffffff831663ffffffff19909116811790915560408051918252517fb5e51602371b0e74f991b6e965cd7d32b4b14c7e6ede6d1298037650a0e1405f9181900360200190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b600254600160f81b900460ff16610e1b576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b031690556003546001600160801b031680610e6c576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b6064600080610e79613840565b90508715610ec057610e93888461ffff16620f4240613a9e565b9150610ec07f00000000000000000000000000000000000000000000000000000000000000008a8a6136f2565b600080610ecb613996565b90508815610f1257610ee5898661ffff16620f4240613a9e565b9150610f127f00000000000000000000000000000000000000000000000000000000000000008c8b6136f2565b336001600160a01b031663a60b0d3c85848b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015610f9457600080fd5b505af1158015610fa8573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663430bf08a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561100757600080fd5b505afa15801561101b573d6000803e3d6000fd5b505050506040513d602081101561103157600080fd5b50519050600061103f613840565b90508061104c8688613980565b1115611084576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b84900380156110fe57600254600160e81b900460ff16600081156110d857506103e860ff82168302046110d87f000000000000000000000000000000000000000000000000000000000000000085836136f2565b6110f2818403600160801b8c6001600160801b0316613b13565b60008054909101905550505b6000611108613996565b9050806111158587613980565b111561114d576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b83900380156111c757600254600160f01b900460ff16600081156111a157506103e860ff82168302046111a17f000000000000000000000000000000000000000000000000000000000000000086836136f2565b6111bb818403600160801b8d6001600160801b0316613b13565b60018054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600280546001600160f81b0316600160f81b179055505050505050505050505050565b6002546000908190600160f81b900460ff16611298576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b0316905560006112b4338888613ba9565b60038101549091506001600160801b0380821691600160801b9004811690871682106112e057866112e2565b815b9450806001600160801b0316866001600160801b0316116113035785611305565b805b93506001600160801b0385851716156113c9576003830180546001600160801b0319168684036001600160801b03908116919091178116600160801b87850383160217909155851615611386576113867f00000000000000000000000000000000000000000000000000000000000000008b876001600160801b03166136f2565b6001600160801b038416156113c9576113c97f00000000000000000000000000000000000000000000000000000000000000008b866001600160801b03166136f2565b604080516001600160a01b038c1681526001600160801b038088166020830152861681830152905160028a810b92908c900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a45050600280546001600160f81b0316600160f81b1790555090969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b038084169463ffffffff600160801b9586900416949092808316929190041686565b60005481565b6d09745258e83de0d0f4e400fce79990565b6002546000908190600160f81b900460ff166114f7576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b03169055861561157a576000611516613840565b905061152587600087876138e0565b600061153982611533613840565b90613bcd565b97508713611574576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b506115de565b6000611584613996565b905061159360008887876138e0565b60006115a182611533613996565b975087136115dc576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b600280546001600160f81b0316600160f81b17905560008080806116038b8b8b612de0565b949a509298509096509450925090508a1561169057600085121561164f5761164f7f00000000000000000000000000000000000000000000000000000000000000008d876000036136f2565b8986121561168b5761168b7f00000000000000000000000000000000000000000000000000000000000000008e6116868d8a613bdd565b6136f2565b6116fe565b60008612156116c7576116c77f00000000000000000000000000000000000000000000000000000000000000008d886000036136f2565b898512156116fe576116fe7f00000000000000000000000000000000000000000000000000000000000000008e6116868d89613bdd565b8015611732576117328b610bdf577f0000000000000000000000000000000000000000000000000000000000000000610c01565b60408051878152602081018790526001600160a01b03868116828401526001600160801b0385166060830152600286900b60808301529151918e1691339160008051602061577a833981519152919081900360a00190a35050600280546001600160f81b0316600160f81b1790555091999098509650505050505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166374eceae6896040518263ffffffff1660e01b81526004018082815260200191505060e06040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d60e081101561184957600080fd5b508051602082015160408301516060840151608085015160a086015160c090960151949e939d50919b50995097509195509350915050565b600254600160f81b900460ff166118c5576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b0316905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b15801561193457600080fd5b505afa158015611948573d6000803e3d6000fd5b505050506040513d602081101561195e57600080fd5b50516001600160a01b0316331461197457600080fd5b60fa60ff83161180159061198c575060fa60ff821611155b61199557600080fd5b6002805460ff60f01b1916600160f01b60ff8481169182029290921760ff60e81b1916600160e81b9286169283021790925560408051918252602082019290925281517f9e22b964b08e25c3aaa72102bb0071c089258fb82d51271a8ddf5c24921356ee929181900390910190a15050600280546001600160f81b0316600160f81b179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638a2ade586040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7557600080fd5b505afa158015611a89573d6000803e3d6000fd5b505050506040513d6020811015611a9f57600080fd5b50516001600160a01b03163314611ab557600080fd5b60048054600160201b600160c01b031916600160201b6001600160a01b038416908102919091179091556040517f915c5369e6580733735d1c2e30ca20dcaa395697a041033c9f35f80f53525e8490600090a250565b600080808484620d89e9600282900b12611b52576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b8160020b8160020b13611b92576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e819600283900b13611bd4576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b611bdc6156aa565b600288810b900b6000908152600560209081526040918290206003810154600160d81b810463ffffffff1693850193909352600160381b83046001600160a01b031691840191909152600682810b810b900b835290600160f81b900460ff16611c4457600080fd5b50611c4d6156aa565b600288810b900b6000908152600560209081526040918290206003810154600160d81b810463ffffffff1693850193909352600160381b83046001600160a01b031691840191909152600682810b810b900b835290600160f81b900460ff16611cb557600080fd5b5060028054600160a01b8104820b91600160d81b90910461ffff16908b810b9083900b1215611d0e5782600001518460000151038360200151856020015103846040015186604001510398509850985050505050611db9565b8960020b8260020b1215611d8d576000611d26613bf3565b9050600080611d4e8360008787600360009054906101000a90046001600160801b0316613bf7565b5050915091508560000151876000015183030386602001518860200151830303876040015189604001518603039b509b509b5050505050505050611db9565b836000015183600001510384602001518460200151038560400151856040015103985098509850505050505b50509250925092565b6060806060807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fd31e988611dff613bf3565b6002805460035460405160e086901b6001600160e01b031916815263ffffffff851660048201908152600160a01b8404850b9485900b6044830152600160d81b90930461ffff16606482018190526001600160801b039092166084820181905260a06024830190815260a483018e90528e958e9590949390919060c401876020880280828437600081840152601f19601f82011690508083019250505097505050505050505060006040518083038186803b158015611ebd57600080fd5b505afa158015611ed1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526080811015611efa57600080fd5b8101908080516040519392919084600160201b821115611f1957600080fd5b908301906020820185811115611f2e57600080fd5b82518660208202830111600160201b82111715611f4a57600080fd5b82525081516020918201928201910280838360005b83811015611f77578181015183820152602001611f5f565b5050505090500160405260200180516040519392919084600160201b821115611f9f57600080fd5b908301906020820185811115611fb457600080fd5b82518660208202830111600160201b82111715611fd057600080fd5b82525081516020918201928201910280838360005b83811015611ffd578181015183820152602001611fe5565b5050505090500160405260200180516040519392919084600160201b82111561202557600080fd5b90830190602082018581111561203a57600080fd5b82518660208202830111600160201b8211171561205657600080fd5b82525081516020918201928201910280838360005b8381101561208357818101518382015260200161206b565b5050505090500160405260200180516040519392919084600160201b8211156120ab57600080fd5b9083019060208201858111156120c057600080fd5b82518660208202830111600160201b821117156120dc57600080fd5b82525081516020918201928201910280838360005b838110156121095781810151838201526020016120f1565b50505050905001604052505050935093509350935092959194509250565b6002546000908190600160f81b900460ff16612170576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b0316815585908590620d89e99082900b126121c3576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b8160020b8160020b13612203576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e819600283900b13612245576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b600080600061226a338b8b6122628c6001600160801b0316613ce7565b600003613cfd565b9250925092508160000396508060000395508587176000146122eb57600383015461229e906001600160801b031688613fbc565b60038401546122bd90600160801b90046001600160801b031688613fbc565b6003850180546001600160801b03938416928416600160801b029316929092176001600160801b0319161790555b604080516001600160801b038a16815260208101899052808201889052905160028b810b92908d900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a45050600280546001600160f81b0316600160f81b179055509296919550909350505050565b60025460009081908190600160f81b900460ff166123b2576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b0316815588908890620d89e99082900b12612405576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b8160020b8160020b13612445576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e819600283900b13612487576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b6000886001600160801b0316116124ca576040805162461bcd60e51b8152602060048201526002602482015261125360f21b604482015290519081900360640190fd5b600454600160c01b9004600290810b9081810b908b900b816124e857fe5b078160020b8c60020b816124f857fe5b071760020b15612544576040805162461bcd60e51b81526020600482015260126024820152711d1a58dac81a5cc81b9bdd081cdc1858d95960721b604482015290519081900360640190fd5b5060008061257c8c8c61255f8d6001600160801b0316613ce7565b60028054600160a01b810490910b906001600160a01b0316613fd8565b50909750955060009150819050861561259a57612597613840565b91505b85156125ab576125a8613996565b90505b336001600160a01b0316633dd657c588888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561262d57600080fd5b505af1158015612641573d6000803e3d6000fd5b50505050600087111561269857600082612659613840565b0392508211612698576040805162461bcd60e51b815260206004808301919091526024820152634949414d60e01b604482015290519081900360640190fd5b85156126e8576000816126a9613996565b03915081116126e8576040805162461bcd60e51b815260206004808301919091526024820152634949414d60e01b604482015290519081900360640190fd5b8994508682101561270a576127078a6001600160801b03168389613b13565b94505b8581101561274a5760006127288b6001600160801b03168389613b13565b9050856001600160801b0316816001600160801b03161015612748578095505b505b6000856001600160801b031611612791576040805162461bcd60e51b8152602060048083019190915260248201526324a4a61960e11b604482015290519081900360640190fd5b6000806127b18f8f8f6127ac8b6001600160801b0316613ce7565b613cfd565b9250925050838299508911156127f6576040805162461bcd60e51b815260206004820152600560248201526424a4a0a69960d91b604482015290519081900360640190fd5b82819850881115612836576040805162461bcd60e51b815260206004820152600560248201526424a4a0a69960d91b604482015290519081900360640190fd5b50508682111561286d5761286d7f00000000000000000000000000000000000000000000000000000000000000008f8985036136f2565b858111156128a2576128a27f00000000000000000000000000000000000000000000000000000000000000008f8884036136f2565b8a60020b8c60020b8e6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde33898c8c60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a45050600280546001600160f81b0316600160f81b17905550929a919950975095505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60066020526000908152604090205481565b600454600160c01b900460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b600280546001600160a01b03811691600160a01b8204900b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b8104821691600160f81b9091041688565b60015481565b600254600160f81b900460ff16612a4c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b600280546001600160f81b0316905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b158015612abb57600080fd5b505afa158015612acf573d6000803e3d6000fd5b505050506040513d6020811015612ae557600080fd5b50516001600160a01b03163314612afb57600080fd5b60008160020b138015612b1457506101f4600282900b13155b8015612b325750600454600282810b600160c01b909204810b900b14155b612b7c576040805162461bcd60e51b8152602060048201526016602482015275496e76616c6964206e65775469636b53706163696e6760501b604482015290519081900360640190fd5b60048054600283900b62ffffff8116600160c01b0262ffffff60c01b199092169190911790915560408051918252517f01413b1d5d4c359e9a0daa7909ecda165f6e8c51fe2ff529d74b22a5a7c026459181900360200190a150600280546001600160f81b0316600160f81b179055565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b90600160381b81046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6002546001600160a01b031615612c9a576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612ca582614070565b90506000612cb1613bf3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663475fb80c82846040518363ffffffff1660e01b8152600401808363ffffffff1681526020018260020b815260200192505050600060405180830381600087803b158015612d2a57600080fd5b505af1158015612d3e573d6000803e3d6000fd5b50506002805485820b62ffffff8116600160a01b0262ffffff60a01b196001600160f81b036001600160a01b038b166001600160a01b0319909516851716600160f81b17161790925560408051918252602082019290925281517f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c959450908190039091019150a1505050565b600454600160201b90046001600160a01b031681565b6000806000806000806000612df36156ca565b600280546001600160a01b0381169750600160a01b9004900b94508a612e2657600254600160c81b900461ffff16612e35565b600254600160b81b900461ffff165b61ffff90811661016083015260028054600160d81b81049092166101a08401526001600160f81b038216905560ff600160e81b8204811691600160f01b8104821691600160f81b9091041680612eb8576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b8c612eef576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b60008d1361014085015260a084018d90526003546001600160801b03600160801b8204811660208701521696508d15612f9757886001600160a01b03168c6001600160a01b0316108015612f5057506401000276a36001600160a01b038d16115b612f87576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b60005460e0850152828452613017565b886001600160a01b03168c6001600160a01b0316118015612fd4575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038d16105b61300b576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b60015460e08501528184525b600288810b900b61018085015261302c613bf3565b600454909550600160201b90046001600160a01b03161561314257600060048054906101000a90046001600160a01b03166001600160a01b0316637f376059876040518263ffffffff1660e01b8152600401808263ffffffff168152602001915050602060405180830381600087803b1580156130a857600080fd5b505af11580156130bc573d6000803e3d6000fd5b505050506040513d60208110156130d257600080fd5b5051905060008160028111156130e457fe5b14156131025760048054600160201b600160c01b0319169055613140565b600181600281111561311057fe5b1415613123576001610120860152613140565b600281600281111561313157fe5b14156131405760026101208601525b505b600061315f856101a00151878761018001518b896020015161435b565b9050846101a0015161ffff168161ffff16146131c15761ffff81166101a0860152600060208601528e156131a957613199868a838b61442f565b5061ffff166101608601526131c1565b6131b5868a838b61442f565b61ffff16610160870152505b505050506131cd61573b565b6001600160a01b03871681526131e56006878e614571565b15156040830152600290810b900b602082018190526132039061465a565b6001600160a01b0390811660608301819052613241918e918a918e161182151514613232578360600151613234565b8c5b888f876101600151614974565b60c085015260a084015260808301526101408301519097501561329a576132718160c00151826080015101614b38565b8b039a506132906132858260a00151614b38565b60c084015190613bdd565b60c08301526132d2565b6132a78160a00151614b38565b8b019a506132cc6132c18260c00151836080015101614b38565b60c084015190614b4e565b60c08301525b81511561330e57815160c08201516000916103e8916132f091614b64565b816132f757fe5b60c084018051929091049182900390529490940193505b6001600160801b03851615613345576133398160c00151600160801b876001600160801b0316613b13565b60e08301805190910190525b80606001516001600160a01b0316876001600160a01b0316141561350c578060400151156134ed5781608001516133c95761338e836000846101800151856101a0015189613bf7565b50506001600160a01b03166060840152600690810b900b6040830152600160808301528b6133be576000546133c2565b6001545b6101008301525b600082610120015160028111156133dc57fe5b146134645760048054906101000a90046001600160a01b03166001600160a01b03166301342b1982602001518e6040518363ffffffff1660e01b8152600401808360020b8152602001821515815260200192505050600060405180830381600087803b15801561344b57600080fd5b505af115801561345f573d6000803e3d6000fd5b505050505b60008c156134a95761349f82602001518460e0015185610100015186606001518760400151896005614b88909695949392919063ffffffff16565b60000390506134df565b6134dc82602001518461010001518560e0015186606001518760400151896005614b88909695949392919063ffffffff16565b90505b6134e98682614c3c565b9550505b8b6134fc578060200151613505565b60018160200151035b9550613530565b80516001600160a01b038881169116146135305761352987614070565b955061355d565b8a158061354e5750896001600160a01b0316876001600160a01b0316145b156135585761355d565b6131cd565b81610140015115158c15151461357e578160c001518b8360a001510361358b565b8a8260a00151038260c001515b6101a08401516002805461ffff60d81b1916600160d81b61ffff909316929092029190911762ffffff60a01b1916600160a01b62ffffff8b840b1602176001600160a01b0319166001600160a01b038b81169190911790915560408051631b7297f760e11b81526001600160801b038a16600482015260248101859052604481018490529051939c50919a5087927f0000000000000000000000000000000000000000000000000000000000000000909116916336e52fee916064808301926020929190829003018186803b15801561366357600080fd5b505afa158015613677573d6000803e3d6000fd5b505050506040513d602081101561368d57600080fd5b50516020840151600380546001600160801b03948516929093018416600160801b0293909216929092176001600160801b0319169190911790558b156136da5760e08201516000556136e3565b60e08201516001555b50505093975093979195509350565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b6020831061376e5780518252601f19909201916020918201910161374f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146137d0576040519150601f19603f3d011682016040523d82523d6000602084013e6137d5565b606091505b5091509150818015613803575080511580613803575080806020019051602081101561380057600080fd5b50515b613839576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156138af57600080fd5b505afa1580156138c3573d6000803e3d6000fd5b505050506040513d60208110156138d957600080fd5b5051905090565b336001600160a01b0316632c8958f6858585856040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561396257600080fd5b505af1158015613976573d6000803e3d6000fd5b5050505050505050565b8082018281101561399057600080fd5b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156138af57600080fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663430bf08a6040518163ffffffff1660e01b815260040160206040518083038186803b158015613a6057600080fd5b505afa158015613a74573d6000803e3d6000fd5b505050506040513d6020811015613a8a57600080fd5b50519050613a998382846136f2565b505050565b6000831580613ab957505082820282848281613ab657fe5b04145b15613ada5760008211613acb57600080fd5b81810490829006151501613b0c565b613ae5848484613b13565b905060008280613af157fe5b8486091115613b0c576000198110613b0857600080fd5b6001015b9392505050565b60008383028160001985870982811083820303915050808411613b3557600080fd5b80613b4557508290049050613b0c565b8385870960008581038616958690049560026003880281188089028203028089028203028089028203028089028203028089028203028089029091030291819003819004600101858411909403939093029190930391909104170290509392505050565b62ffffff9081169116601892831b1790911b17600090815260076020526040902090565b8082038281111561399057600080fd5b8082038281131560008312151461399057600080fd5b4290565b604080516314c5407960e01b815263ffffffff808816600483015286166024820152600285900b604482015261ffff841660648201526001600160801b038316608482015290516000918291829182916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916314c540799160a4808301926080929190829003018186803b158015613c9757600080fd5b505afa158015613cab573d6000803e3d6000fd5b505050506040513d6080811015613cc157600080fd5b50805160208201516040830151606090930151919c909b50919950975095505050505050565b80600f81900b8114613cf857600080fd5b919050565b60408051606081018252600280546001600160a01b0381168352600160a01b8104820b90910b6020830152600160d81b900461ffff169181019190915260009081908190613d4c888888613ba9565b60008054600154929650919080600f89900b15613e13576000613d6d613bf3565b9050600080613d9d8360008a602001518b60400151600360009054906101000a90046001600160801b0316613bf7565b505091509150613dcc8e89602001518e8a8a86888a60006005614cf2909998979695949392919063ffffffff16565b15613de05760019450613de060068f614e8c565b6020880151613dfb906005908f908f8b8b87898b6001614cf2565b15613e0f5760019350613e0f60068e614e8c565b5050505b60208501516000908190613e2f906005908f908f908a8a614eb8565b91509150613e3f8a8c8484614f5a565b8a600f0b600014613fab5760008b600f0b1215613eba578315613e885760028d810b810b6000908152600560205260408120818155600181018290559182018190556003909101555b8215613eba5760028c810b810b6000908152600560205260408120818155600181018290559182018190556003909101555b6000613ed18e8e8e8b602001518c60000151613fd8565b919b5099509050600f81900b15613fa95760035460408901516001600160801b0390911690600090613f2490613f05613bf3565b60208d01516003548690600160801b90046001600160801b031661435b565b90508061ffff168a6040015161ffff1614613f7c57613f50613f44613bf3565b8b60200151838561442f565b50506002805461ffff60d81b1916600160d81b61ffff841602179055600380546001600160801b031690555b613f86828f614c3c565b600380546001600160801b0319166001600160801b039290921691909117905550505b505b505050505050509450945094915050565b8082016001600160801b03808416908216101561399057600080fd5b60008060008760020b8560020b121561400d57614006613ff78961465a565b6140008961465a565b88615138565b9250614065565b8660020b8560020b121561404757614028846140008961465a565b925061403d6140368961465a565b858861517d565b9150859050614065565b6140626140538961465a565b61405c8961465a565b8861517d565b91505b955095509592505050565b60006401000276a36001600160a01b038316108015906140ac575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b6140e1576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b600160201b600160c01b03602083901b166001600160801b03811160071b81811c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c9790881196179094179092171790911717176080811061417357607f810383901c915061417d565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c6001603f1b161760c19b909b1c6001603e1b169a909a1760c29990991c6001603d1b169890981760c39790971c6001603c1b169690961760c49590951c6001603b1b169490941760c59390931c6001603a1b169290921760c69190911c600160391b161760c79190911c600160381b161760c89190911c600160371b161760c99190911c600160361b161760ca9190911c600160351b161760cb9190911c600160341b161760cc9190911c600160331b161760cd9190911c600160321b1617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b1461434c57886001600160a01b03166143308261465a565b6001600160a01b031611156143455781614347565b805b61434e565b815b9998505050505050505050565b60408051630eea437960e11b815261ffff8716600482015263ffffffff86166024820152600285900b60448201526001600160801b0380851660648301528316608482015290516000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631dd486f29160a48082019260209290919082900301818787803b1580156143f757600080fd5b505af115801561440b573d6000803e3d6000fd5b505050506040513d602081101561442157600080fd5b505190505b95945050505050565b6040805163a80b96a160e01b815263ffffffff86166004820152600285900b602482015261ffff841660448201526001600160801b0383166064820152815160009283926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263a80b96a192608480840193919291829003018186803b1580156144c157600080fd5b505afa1580156144d5573d6000803e3d6000fd5b505050506040513d60408110156144eb57600080fd5b5080516020918201516002805461ffff60c81b1916600160c81b61ffff8085169182029290921761ffff60b81b1916600160b81b92861692830217909255604080519182529481019190915283519295509093507f8a89de70856bccec096661388f305b9a75f5f65cb0d8a0e1e803c39dabedb57f92908290030190a194509492505050565b60008082156145f157600884901c600181810b900b60009081526020879052604090205460ff868116918282039091161b80156145d2576145b1816151ad565b60ff0360ff16870396506145c4876151f0565b600194509450505050614652565b8160ff16870396506145e3876151f0565b600094509450505050614652565b6001938401600881901c80860b90950b60009081526020879052604090205490949060ff861690811c801561463e5761462e818260000316615225565b60ff16870196506145c4876151f0565b8160ff0360ff16870196506145e3876151f0565b935093915050565b6000600282810b60171d90818418829003900b620d89e88111156146a9576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b6000600182166146bd57600160801b6146cf565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316905060028216156146f9576ffff97272373d413259a46990580e213a0260801c5b6004821615614718576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615614737576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615614756576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615614775576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615614794576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156147b3576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156147d3576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156147f3576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614813576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614833576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615614853576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615614873576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615614893576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156148b3576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156148d4576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156148f4576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614913576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614930576b048a170391f7dc42444e8fa20260801c5b60008560020b131561494b57806000198161494757fe5b0490505b600160201b81061561495e576001614961565b60005b60ff16602082901c019350505050919050565b6000806000806157778a61498a5761533961498e565b6153485b905060008712614a7a5760006149b6888861ffff16620f42400362ffffff16620f4240613b13565b90506149c78a8c8b8563ffffffff16565b94508481106149f4578995506149ed8561ffff891662ffffff620f424082900316613a9e565b9250614a53565b614a008b8a838f615357565b9550856001600160a01b03168a6001600160a01b031614614a3657614a2a868c8b8563ffffffff16565b94508488039250614a53565b614a508561ffff891662ffffff620f424082900316613a9e565b92505b614a72868c8b8f614a6657615367614a6a565b6153765b63ffffffff16565b935050614b2a565b6157778b614a8a57615367614a8e565b6153765b9050614a9f8a8c8b8463ffffffff16565b9350876000039750838810614ab657899550614afb565b614ac28b8a8a8f615385565b9550856001600160a01b03168a6001600160a01b031614614aef57614aec868c8b8463ffffffff16565b93505b87841115614afb578793505b614b0a868c8b8563ffffffff16565b9450614b268561ffff891662ffffff620f424082900316613a9e565b9250505b509650965096509692505050565b6000600160ff1b8210614b4a57600080fd5b5090565b8181018281121560008312151461399057600080fd5b6000821580614b7f57505081810281838281614b7c57fe5b04145b61399057600080fd5b600286810b810b60009081526020899052604090206003810180546001600160a01b03600160381b63ffffffff600160d81b808504821689039091160263ffffffff60d81b199093169290921782810482168903909116909102600160381b600160d81b031990911617600681810b8703900b66ffffffffffffff1666ffffffffffffff199091161790559081018054860390556001810180548703905554600160801b9004600f0b979650505050505050565b60008082600f0b1215614ca157826001600160801b03168260000384039150816001600160801b031610614c9c576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b613990565b826001600160801b03168284019150816001600160801b03161015613990576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b600289810b900b600090815260208b9052604081208054600160801b8104600f0b906001600160801b031683614d28828d614c3c565b90506d09745258e83de0d0f4e400fce79a6001600160801b03821610614d7a576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b85614d9d57614d98614d93600f85810b908f900b614b4e565b613ce7565b614db1565b614db1614d93600f85810b908f900b613bdd565b84546001600160801b03838116600f9390930b8116600160801b02918116919091176001600160801b03191682178655901595508216614e7a57841594508c60020b8e60020b13614e6257600184018b9055600284018a9055600384018054600160381b600160d81b031916600160381b6001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003840180546001600160f81b0316600160f81b1790555b505050509a9950505050505050505050565b600881901c600190810b810b60009081526020939093526040909220805460ff9092169290921b189055565b600285810b810b60009081526020889052604080822087840b80850b84529183209293849391929088900b1215614f32578860020b8760020b12614f0d57816001015486039350816002015485039250614f1c565b81600101549350816002015492505b6001810154600282015494039390920391614f4d565b81600101548160010154039350816002015481600201540392505b5050965096945050505050565b83546001600160801b03811690600160801b900463ffffffff16600f85900b614fc5576000826001600160801b031611614fc0576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b61507e565b600085600f0b12156150045760045463ffffffff168015615002578063ffffffff1682614ff0613bf3565b0363ffffffff16101561500257600080fd5b505b60006150108387614c3c565b9050806000826001600160801b03161161502b576000615044565b600087600f0b1361503c5782615044565b615044613bf3565b88546001600160801b039092166001600160801b031963ffffffff909216600160801b0263ffffffff60801b199093169290921716178755505b6001860154600287015460008683146150b557600189018790556150b28388036001600160801b038716600160801b613b13565b90505b60008287146150e25760028a018790556150df8388036001600160801b038816600160801b613b13565b90505b6001600160801b03828217161561512c5760038a0180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b50505050505050505050565b60008082600f0b12156151655761515d6151588585856000036000615395565b614b38565b600003615175565b6151756151588585856001615395565b949350505050565b60008082600f0b121561519d5761515d6151588585856000036000615424565b6151756151588585856001615424565b600181811c909117600281901c17600481901c17600881901c17601081901c17602081901c17604081901c17608081901c179081901c9003600061399082615225565b80620d89e719600282900b121561520c5750620d89e719613cf8565b620d89e8600282900b1315613cf85750620d89e8919050565b7f55555555555555555555555555555555555555555555555555555555555555558116156001600160801b0382161560071b176001600160401b03600160801b03600160c01b0382161560061b177bffffffff00000000ffffffff00000000ffffffff00000000ffffffff82161560051b177dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff82161560041b177eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff82161560031b177f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f82161560021b177f3333333333333333333333333333333333333333333333333333333333333333919091161560011b1790565b60006151758385846001615424565b60006151758484846001615395565b6000614426858585856001615495565b60006151758385846000615395565b60006151758484846000615424565b6000614426858585856000615495565b60006001600160a01b03858503811690851681106153b257600080fd5b600160601b600160e01b03606085901b16836153f357866001600160a01b03166153e68383896001600160a01b0316613b13565b816153ed57fe5b04615419565b61541961540a8383896001600160a01b0316613a9e565b886001600160a01b0316615689565b979650505050505050565b6000846001600160a01b0316846001600160a01b0316101561544557600080fd5b6001600160a01b0385850316826154735761546e81856001600160801b0316600160601b613b13565b61548b565b61548b81856001600160801b0316600160601b613a9e565b9695505050505050565b600080866001600160a01b0316116154ac57600080fd5b6000856001600160801b0316116154c257600080fd5b81151583151514156155b457836154da575084614426565b600160601b600160e01b03606086901b168215615568576001600160a01b0387168581029086828161550857fe5b041415615539578181018281106155375761552d838a6001600160a01b031683613a9e565b9350505050614426565b505b61555f8261555a888b6001600160a01b0316868161555357fe5b0490613980565b615689565b92505050614426565b6001600160a01b0387168581029086828161557f57fe5b041461558a57600080fd5b80821161559657600080fd5b61555f6155af838a6001600160a01b0316848603613a9e565b615694565b811561561b576156146155af6001600160a01b038611156155ec576155e786600160601b896001600160801b0316613b13565b615604565b6001600160801b038716606087901b8161560257fe5b045b6001600160a01b03891690613980565b9050614426565b60006001600160a01b038511156156495761564485600160601b886001600160801b0316613a9e565b615660565b615660606086901b6001600160801b038816615689565b905080876001600160a01b03161161567757600080fd5b6001600160a01b038716039050614426565b808204910615150190565b806001600160a01b0381168114613cf857600080fd5b604080516060810182526000808252602082018190529181019190915290565b604080516101c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906101208201908152600060208201819052604082018190526060820181905260809091015290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565bfefec42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67a164736f6c6343000706000aa164736f6c6343000706000a