0x60a06040526000805460ff60a01b1916600160a01b17905562539c1c600155600a60025534801561002f57600080fd5b506040516111f73803806111f783398101604081905261004e91610153565b6100573361007a565b6001600160601b0319606082901b166080526100743360016100ca565b50610181565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146101285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600060208284031215610164578081fd5b81516001600160a01b038116811461017a578182fd5b9392505050565b60805160601c61103c6101bb6000396000818161026d01528181610362015281816104be015281816108260152610931015261103c6000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063a4230bd5116100b2578063cbeadf0711610081578063e92e2f1211610066578063e92e2f121461028f578063f2fde38b14610298578063f3cb5e14146102ab57600080fd5b8063cbeadf071461025f578063e0e204f01461026857600080fd5b8063a4230bd514610213578063a694fc3a14610226578063bce8567e14610239578063bd61f0a61461024c57600080fd5b80634da6a55611610109578063715018a6116100ee578063715018a6146101de5780637fa787ba146101e65780638da5cb5b146101ee57600080fd5b80634da6a556146101945780634df9d6ba146101cb57600080fd5b80631cfff51b1461013b5780632bb1d284146101645780633ccfd60b14610179578063490ae21014610181575b600080fd5b60005461014f90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b610177610172366004610e71565b6102be565b005b610177610302565b61017761018f366004610f2f565b610569565b6101bd6101a2366004610e71565b6001600160a01b031660009081526003602052604090205490565b60405190815260200161015b565b6101bd6101d9366004610e71565b6105c8565b6101776105fa565b610177610660565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161015b565b610177610221366004610e94565b610712565b610177610234366004610f2f565b610797565b610177610247366004610ecc565b610a63565b61017761025a366004610f04565b610abd565b6101bd60025481565b6101fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101bd60015481565b6101776102a6366004610e71565b610bd5565b6101776102b9366004610e94565b610cb7565b3360009081526007602052604090205460ff1615156001146102df57600080fd5b6102e881610d03565b6001600160a01b0316600090815260056020526040812055565b33600081815260036020526040812054909161031d906105c8565b6103279190610f5f565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156103a457600080fd5b505afa1580156103b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc9190610f47565b10156104555760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e742062616c616e636520696e207374616b696e672060448201527f6164647265737320746f2077697468647261770000000000000000000000000060648201526084015b60405180910390fd5b336000818152600360209081526040808320839055600480835281842084905560059092528083209290925590517fa9059cbb00000000000000000000000000000000000000000000000000000000815290810191909152602481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90604401602060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a9190610ee8565b5060405133907ff45a04d08a70caa7eb4b747571305559ad9fdf4a093afd41506b35c8a306fa9490600090a250565b6000546001600160a01b031633146105c35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044c565b600255565b6001600160a01b0381166000908152600460205260408120546105ea83610d48565b6105f49190610f5f565b92915050565b6000546001600160a01b031633146106545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044c565b61065e6000610e09565b565b6000546001600160a01b031633146106ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044c565b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610707576040519150601f19603f3d011682016040523d82523d6000602084013e61070c565b606091505b50505050565b6000546001600160a01b0316331461076c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600054600160a01b900460ff166107f05760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e672069732063757272656e746c792064697361626c6564000000604482015260640161044c565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063dd62ed3e9060440160206040518083038186803b15801561087057600080fd5b505afa158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190610f47565b10156108f65760405162461bcd60e51b815260206004820152601f60248201527f496e73756666696369656e7420616c6c6f77616e636520746f207374616b6500604482015260640161044c565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd90606401602060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190610ee8565b506109bf33610d03565b3360009081526006602052604081205460ff166109f4576103e8600254836109e79190610f97565b6109f19190610f77565b90505b6000610a008284610fb6565b33600090815260036020526040812080549293508392909190610a24908490610f5f565b909155505060405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505050565b3360009081526007602052604090205460ff161515600114610a8457600080fd5b60008054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610b175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044c565b816001600160a01b031663a9059cbb610b386000546001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610b9857600080fd5b505af1158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd09190610ee8565b505050565b6000546001600160a01b03163314610c2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044c565b6001600160a01b038116610cab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161044c565b610cb481610e09565b50565b3360009081526007602052604090205460ff161515600114610cd857600080fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000610d0e82610d48565b90508015610d32576001600160a01b03821660009081526004602052604090208190555b5050336000908152600560205260409020429055565b6001600160a01b038116600090815260056020526040812054610d6d57506000919050565b6001600160a01b038216600090815260056020526040902054421015610d9557506000919050565b6001600160a01b038216600090815260056020526040812054610db89042610fb6565b6001546001600160a01b03851660009081526003602052604081205492935091660311cdad160000918491610ded9190610f97565b610df79190610f97565b610e019190610f77565b949350505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610e82578081fd5b8135610e8d81610fe3565b9392505050565b60008060408385031215610ea6578081fd5b8235610eb181610fe3565b91506020830135610ec181610ff8565b809150509250929050565b600060208284031215610edd578081fd5b8135610e8d81610ff8565b600060208284031215610ef9578081fd5b8151610e8d81610ff8565b60008060408385031215610f16578182fd5b8235610f2181610fe3565b946020939093013593505050565b600060208284031215610f40578081fd5b5035919050565b600060208284031215610f58578081fd5b5051919050565b60008219821115610f7257610f72610fcd565b500190565b600082610f9257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610fb157610fb1610fcd565b500290565b600082821015610fc857610fc8610fcd565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610cb457600080fd5b8015158114610cb457600080fdfea2646970667358221220660050de068c495de9c7785fe8348736fef5f46d38ab399f97533af07ca26c3064736f6c63430008040033000000000000000000000000d9a7dda2a52267d7aaa9b668abccf89a4accc2f6