0x60806040526003600255348015610014575f80fd5b505f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610076573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061009a91906100bf565b600180546001600160a01b0319166001600160a01b03929092169190911790556100ec565b5f602082840312156100cf575f80fd5b81516001600160a01b03811681146100e5575f80fd5b9392505050565b610bae806100f95f395ff3fe608060405260043610610054575f3560e01c80631bc7aa69146100585780634c07191b1461006d578063735de9f71461008c578063b297e4a2146100c7578063c45a0155146100f3578063fb3bdb4114610112575b5f80fd5b61006b61006636600461080d565b610125565b005b348015610078575f80fd5b5061006b610087366004610868565b600255565b348015610097575f80fd5b505f546100aa906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d2575f80fd5b506100e66100e136600461087f565b61021e565b6040516100be91906108b4565b3480156100fe575f80fd5b506001546100aa906001600160a01b031681565b61006b6101203660046108f7565b610597565b5f34116101795760405162461bcd60e51b815260206004820152601c60248201527f4e6f204554482073656e742077697468207472616e73616374696f6e0000000060448201526064015b60405180910390fd5b5f6101868551858561021e565b90505f5b8551811015610216578581815181106101a5576101a5610954565b60200260200101516001600160a01b03166108fc848484815181106101cc576101cc610954565b60200260200101516101de919061097c565b6040518115909202915f818181858888f19350505050158015610203573d5f803e3d5ffd5b508061020e81610995565b91505061018a565b505050505050565b5f8054604080516315ab88c960e31b81529051606093926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610267573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028b91906109ad565b60015460405163e6a4390560e01b81526001600160a01b03878116600483015280841660248301529293505f929091169063e6a4390590604401602060405180830381865afa1580156102e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030491906109ad565b90506001600160a01b0381166103525760405162461bcd60e51b815260206004820152601360248201527214185a5c88191bd95cc81b9bdd08195e1a5cdd606a1b6044820152606401610170565b5f8190505f80826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610394573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b891906109cf565b50915091505f836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041e91906109ad565b90505f80876001600160a01b0316836001600160a01b03160361044557508390508261044b565b50829050835b5f8c67ffffffffffffffff8111156104655761046561071d565b60405190808252806020026020018201604052801561048e578160200160208202803683370190505b5090505f5b8d81101561058657836104a68d85610a0d565b6104b08587610a20565b6104ba9190610a37565b6104c49190610a0d565b8282815181106104d6576104d6610954565b6020026020010181815250506103e86002548383815181106104fa576104fa610954565b602002602001015161050c9190610a20565b6105169190610a37565b82828151811061052857610528610954565b6020026020010181815161053c919061097c565b905250815182908290811061055357610553610954565b602002602001015184610566919061097c565b93506105728c84610a0d565b92508061057e81610995565b915050610493565b509c9b505050505050505050505050565b5f80546040516307c0329d60e21b81523492916001600160a01b031690631f00ca74906105ca9089908990600401610a98565b5f60405180830381865afa1580156105e4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261060b9190810190610ab8565b90505f80825f8151811061062157610621610954565b6020026020010151841061067757825f8151811061064157610641610954565b60200260200101519150825f8151811061065d5761065d610954565b6020026020010151846106709190610a0d565b905061067b565b8391505b5f805460405163b6f9de9560e01b81526001600160a01b039091169163b6f9de959185916106b1918c908c908c90600401610b44565b5f604051808303818588803b1580156106c8575f80fd5b505af11580156106da573d5f803e3d5ffd5b50505050505f81111561071357604051339082156108fc029083905f818181858888f19350505050158015610711573d5f803e3d5ffd5b505b5050505050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561075a5761075a61071d565b604052919050565b5f67ffffffffffffffff82111561077b5761077b61071d565b5060051b60200190565b6001600160a01b0381168114610799575f80fd5b50565b5f82601f8301126107ab575f80fd5b813560206107c06107bb83610762565b610731565b82815260059290921b840181019181810190868411156107de575f80fd5b8286015b848110156108025780356107f581610785565b83529183019183016107e2565b509695505050505050565b5f805f8060808587031215610820575f80fd5b843567ffffffffffffffff811115610836575f80fd5b6108428782880161079c565b945050602085013561085381610785565b93969395505050506040820135916060013590565b5f60208284031215610878575f80fd5b5035919050565b5f805f60608486031215610891575f80fd5b8335925060208401356108a381610785565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b818110156108eb578351835292840192918401916001016108cf565b50909695505050505050565b5f805f806080858703121561090a575f80fd5b84359350602085013567ffffffffffffffff811115610927575f80fd5b6109338782880161079c565b935050604085013561094481610785565b9396929550929360600135925050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561098f5761098f610968565b92915050565b5f600182016109a6576109a6610968565b5060010190565b5f602082840312156109bd575f80fd5b81516109c881610785565b9392505050565b5f805f606084860312156109e1575f80fd5b8351925060208401519150604084015163ffffffff81168114610a02575f80fd5b809150509250925092565b8181038181111561098f5761098f610968565b808202811582820484141761098f5761098f610968565b5f82610a5157634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b83811015610a8d5781516001600160a01b031687529582019590820190600101610a68565b509495945050505050565b828152604060208201525f610ab06040830184610a56565b949350505050565b5f6020808385031215610ac9575f80fd5b825167ffffffffffffffff811115610adf575f80fd5b8301601f81018513610aef575f80fd5b8051610afd6107bb82610762565b81815260059190911b82018301908381019087831115610b1b575f80fd5b928401925b82841015610b3957835182529284019290840190610b20565b979650505050505050565b848152608060208201525f610b5c6080830186610a56565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122089e67fc42bc61a9868457a1b871f10a09b418365bd3ebc25336cbcb1a2bcdb5264736f6c63430008140033