0x6080604052600480546001600160a81b03191673839a3bbbc1dfd12cd9a97c914622b2691335cc7d1790555f600555348015610039575f80fd5b506100433361006e565b600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556100bd565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ea6806100ca5f395ff3fe608060405260043610610134575f3560e01c80639b19251a116100a8578063ca60ede21161006d578063ca60ede21461033f578063d923d21e1461035e578063e2ac70ca1461037d578063e8ddf15a146103b6578063f2fde38b146103ca578063fa259444146103e9575f80fd5b80639b19251a146102955780639d76ea58146102c3578063ac30bfdd146102e2578063b5adce3f14610301578063c0b3f09614610320575f80fd5b806327c8f835116100f957806327c8f835146101ff578063412753581461021457806349bd5a5e1461023357806362150418146102525780638da5cb5b146102715780639aea43241461028d575f80fd5b806303358f111461013f5780630d392cd9146101555780630d45de84146101745780631694505e146101a957806323b872dd146101e0575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506101536103fe565b005b348015610160575f80fd5b5061015361016f366004610bec565b610436565b34801561017f575f80fd5b5060045461019490600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156101b4575f80fd5b506002546101c8906001600160a01b031681565b6040516001600160a01b0390911681526020016101a0565b3480156101eb575f80fd5b506101946101fa366004610c23565b610489565b34801561020a575f80fd5b506101c861dead81565b34801561021f575f80fd5b506004546101c8906001600160a01b031681565b34801561023e575f80fd5b506001546101c8906001600160a01b031681565b34801561025d575f80fd5b5061015361026c366004610c61565b61058e565b34801561027c575f80fd5b505f546001600160a01b03166101c8565b6101536106bb565b3480156102a0575f80fd5b506101946102af366004610c61565b60066020525f908152604090205460ff1681565b3480156102ce575f80fd5b506003546101c8906001600160a01b031681565b3480156102ed575f80fd5b506101536102fc366004610c7c565b61082b565b34801561030c575f80fd5b5061015361031b366004610c93565b610859565b34801561032b575f80fd5b5061015361033a366004610c61565b6108f6565b34801561034a575f80fd5b50610153610359366004610d12565b610941565b348015610369575f80fd5b50610153610378366004610c61565b610988565b348015610388575f80fd5b506103a8610397366004610c61565b60076020525f908152604090205481565b6040519081526020016101a0565b3480156103c1575f80fd5b50610194610a4f565b3480156103d5575f80fd5b506101536103e4366004610c61565b610ae2565b3480156103f4575f80fd5b506103a860055481565b5f546001600160a01b031633146104305760405162461bcd60e51b815260040161042790610d2d565b60405180910390fd5b43600555565b5f546001600160a01b0316331461045f5760405162461bcd60e51b815260040161042790610d2d565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6001545f906001600160a01b03908116908516036104e2576001600160a01b0383165f9081526007602052604081205490036104da576001600160a01b0383165f9081526007602052604090204390555b506001610587565b600454600160a01b900460ff161580156104fa575060015b610502575f80fd5b6001600160a01b0384165f9081526006602052604090205460ff161561052a57506001610587565b6001600160a01b0384165f90815260076020526040902054600554106105845760405162461bcd60e51b815260206004820152600f60248201526e1c1c9950da1958dac819985a5b1959608a1b6044820152606401610427565b505f5b9392505050565b5f546001600160a01b031633146105b75760405162461bcd60e51b815260040161042790610d2d565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156105fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061f9190610d62565b905080156106b757816001600160a01b031663a9059cbb6106475f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610691573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b59190610d79565b505b5050565b6004546001600160a01b0316336001600160a01b0316146106da575f80fd5b6040805160028082526060820183525f926020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610741573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107659190610d94565b815f8151811061077757610777610daf565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106107a8576107a8610daf565b6001600160a01b0392831660209182029290920101526002541663b6f9de95345f84306107d742610258610dd7565b6040518663ffffffff1660e01b81526004016107f69493929190610df0565b5f604051808303818588803b15801561080d575f80fd5b505af115801561081f573d5f803e3d5ffd5b50504360055550505050565b5f546001600160a01b031633146108545760405162461bcd60e51b815260040161042790610d2d565b600555565b5f546001600160a01b031633146108825760405162461bcd60e51b815260040161042790610d2d565b5f5b828110156108f0578160065f8686858181106108a2576108a2610daf565b90506020020160208101906108b79190610c61565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806108e881610e58565b915050610884565b50505050565b5f546001600160a01b0316331461091f5760405162461bcd60e51b815260040161042790610d2d565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461096a5760405162461bcd60e51b815260040161042790610d2d565b60048054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146109b15760405162461bcd60e51b815260040161042790610d2d565b600380546001600160a01b0319166001600160a01b038316908117909155604080516324dead2f60e11b815290516349bd5a5e916004808201926020929091908290030181865afa158015610a08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2c9190610d94565b600180546001600160a01b0319166001600160a01b039290921691909117905550565b5f80546001600160a01b03163314610a795760405162461bcd60e51b815260040161042790610d2d565b475f610a8c5f546001600160a01b031690565b6001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610ad3576040519150601f19603f3d011682016040523d82523d5f602084013e610ad8565b606091505b5090935050505090565b5f546001600160a01b03163314610b0b5760405162461bcd60e51b815260040161042790610d2d565b6001600160a01b038116610b705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610427565b610b7981610b7c565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610b79575f80fd5b8015158114610b79575f80fd5b5f8060408385031215610bfd575f80fd5b8235610c0881610bcb565b91506020830135610c1881610bdf565b809150509250929050565b5f805f60608486031215610c35575f80fd5b8335610c4081610bcb565b92506020840135610c5081610bcb565b929592945050506040919091013590565b5f60208284031215610c71575f80fd5b813561058781610bcb565b5f60208284031215610c8c575f80fd5b5035919050565b5f805f60408486031215610ca5575f80fd5b833567ffffffffffffffff80821115610cbc575f80fd5b818601915086601f830112610ccf575f80fd5b813581811115610cdd575f80fd5b8760208260051b8501011115610cf1575f80fd5b60209283019550935050840135610d0781610bdf565b809150509250925092565b5f60208284031215610d22575f80fd5b813561058781610bdf565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610d72575f80fd5b5051919050565b5f60208284031215610d89575f80fd5b815161058781610bdf565b5f60208284031215610da4575f80fd5b815161058781610bcb565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610dea57610dea610dc3565b92915050565b5f60808201868352602060808185015281875180845260a08601915082890193505f5b81811015610e385784516001600160a01b031683529383019391830191600101610e13565b50506001600160a01b039690961660408501525050506060015292915050565b5f60018201610e6957610e69610dc3565b506001019056fea26469706673582212206fc1c816e55fc29bdbdbb4d264fd40e12690de0472f162bae407d5f4a5a9543464736f6c63430008140033