0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101c4578063a9059cbb146101cc578063dd62ed3e146101df578063f2fde38b1461020a57600080fd5b806370a0823114610189578063715018a6146101a95780638da5cb5b146101b357600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd1461012c578063313ce5671461013f57806349bd5a5e1461015e575b600080fd5b6100dc61021d565b6040516100e991906106f6565b60405180910390f35b610105610100366004610760565b6102ab565b60405190151581526020016100e9565b61011e60025481565b6040519081526020016100e9565b61010561013a36600461078a565b610318565b60055461014c9060ff1681565b60405160ff90911681526020016100e9565b600754610171906001600160a01b031681565b6040516001600160a01b0390911681526020016100e9565b61011e6101973660046107c6565b600a6020526000908152604090205481565b6101b1610398565b005b6000546001600160a01b0316610171565b6100dc610441565b6101056101da366004610760565b61044e565b61011e6101ed3660046107e8565b600160209081526000928352604080842090915290825290205481565b6101b16102183660046107c6565b610465565b6008805461022a9061081b565b80601f01602080910402602001604051908101604052809291908181526020018280546102569061081b565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b505050505081565b3360008181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103069086815260200190565b60405180910390a35060015b92915050565b600061032584848461057f565b506001600160a01b038416600090815260016020908152604080832033845290915290205482111561035657600080fd5b6001600160a01b03841660009081526001602090815260408083203384529091528120805484929061038990849061086b565b90915550600195945050505050565b6000546001600160a01b031633146103f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6009805461022a9061081b565b600061045b33848461057f565b5060019392505050565b6000546001600160a01b031633146104bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ee565b6001600160a01b0381166105245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ee565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600460205260408120548103610637576001600160a01b038416600090815260066020526040902054158015906105d357506007546001600160a01b03858116911614155b15610609576003546001600160a01b0385166000908152600460205260408120805490919061060390849061086b565b90915550505b6001600160a01b0384166000908152600a60205260408120805484929061063190849061086b565b90915550505b81600003610670576003546001600160a01b0384166000908152600660205260408120805490919061066a90849061087e565b90915550505b6001600160a01b0383166000908152600a60205260408120805484929061069890849061087e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e491815260200190565b60405180910390a35060019392505050565b600060208083528351808285015260005b8181101561072357858101830151858201604001528201610707565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461075b57600080fd5b919050565b6000806040838503121561077357600080fd5b61077c83610744565b946020939093013593505050565b60008060006060848603121561079f57600080fd5b6107a884610744565b92506107b660208501610744565b9150604084013590509250925092565b6000602082840312156107d857600080fd5b6107e182610744565b9392505050565b600080604083850312156107fb57600080fd5b61080483610744565b915061081260208401610744565b90509250929050565b600181811c9082168061082f57607f821691505b60208210810361084f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561031257610312610855565b808201808211156103125761031261085556fea2646970667358221220dbf9770d61ee2bf56e50e6109d8dc0d52626d03cef7471a22a595547acd8801764736f6c63430008130033
0x608060405260196003556005805460ff191660091790553480156200002357600080fd5b5060405162000e7338038062000e738339810160408190526200004691620002b9565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915260078152664472205065706560c81b6020820152600890620000b4908262000390565b5060408051808201909152600681526544525045504560d01b6020820152600990620000e1908262000390565b50600554620000f59060ff16600a62000571565b620001089066017e9d8602b40062000582565b6002819055336000908152600a602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa15801562000171573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001979190620002b9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020b9190620002b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027f9190620002b9565b600780546001600160a01b0319166001600160a01b039283161790556003549216600090815260046020526040902091909155506200059c565b600060208284031215620002cc57600080fd5b81516001600160a01b0381168114620002e457600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200031657607f821691505b6020821081036200033757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200038b57600081815260208120601f850160051c81016020861015620003665750805b601f850160051c820191505b81811015620003875782815560010162000372565b5050505b505050565b81516001600160401b03811115620003ac57620003ac620002eb565b620003c481620003bd845462000301565b846200033d565b602080601f831160018114620003fc5760008415620003e35750858301515b600019600386901b1c1916600185901b17855562000387565b600085815260208120601f198616915b828110156200042d578886015182559484019460019091019084016200040c565b50858210156200044c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004b35781600019048211156200049757620004976200045c565b80851615620004a557918102915b93841c939080029062000477565b509250929050565b600082620004cc575060016200056b565b81620004db575060006200056b565b8160018114620004f45760028114620004ff576200051f565b60019150506200056b565b60ff8411156200051357620005136200045c565b50506001821b6200056b565b5060208310610133831016604e8410600b841016171562000544575081810a6200056b565b62000550838362000472565b80600019048211156200056757620005676200045c565b0290505b92915050565b6000620002e460ff841683620004bb565b80820281158282048414176200056b576200056b6200045c565b6108c780620005ac6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101c4578063a9059cbb146101cc578063dd62ed3e146101df578063f2fde38b1461020a57600080fd5b806370a0823114610189578063715018a6146101a95780638da5cb5b146101b357600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd1461012c578063313ce5671461013f57806349bd5a5e1461015e575b600080fd5b6100dc61021d565b6040516100e991906106f6565b60405180910390f35b610105610100366004610760565b6102ab565b60405190151581526020016100e9565b61011e60025481565b6040519081526020016100e9565b61010561013a36600461078a565b610318565b60055461014c9060ff1681565b60405160ff90911681526020016100e9565b600754610171906001600160a01b031681565b6040516001600160a01b0390911681526020016100e9565b61011e6101973660046107c6565b600a6020526000908152604090205481565b6101b1610398565b005b6000546001600160a01b0316610171565b6100dc610441565b6101056101da366004610760565b61044e565b61011e6101ed3660046107e8565b600160209081526000928352604080842090915290825290205481565b6101b16102183660046107c6565b610465565b6008805461022a9061081b565b80601f01602080910402602001604051908101604052809291908181526020018280546102569061081b565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b505050505081565b3360008181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103069086815260200190565b60405180910390a35060015b92915050565b600061032584848461057f565b506001600160a01b038416600090815260016020908152604080832033845290915290205482111561035657600080fd5b6001600160a01b03841660009081526001602090815260408083203384529091528120805484929061038990849061086b565b90915550600195945050505050565b6000546001600160a01b031633146103f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6009805461022a9061081b565b600061045b33848461057f565b5060019392505050565b6000546001600160a01b031633146104bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ee565b6001600160a01b0381166105245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ee565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600460205260408120548103610637576001600160a01b038416600090815260066020526040902054158015906105d357506007546001600160a01b03858116911614155b15610609576003546001600160a01b0385166000908152600460205260408120805490919061060390849061086b565b90915550505b6001600160a01b0384166000908152600a60205260408120805484929061063190849061086b565b90915550505b81600003610670576003546001600160a01b0384166000908152600660205260408120805490919061066a90849061087e565b90915550505b6001600160a01b0383166000908152600a60205260408120805484929061069890849061087e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e491815260200190565b60405180910390a35060019392505050565b600060208083528351808285015260005b8181101561072357858101830151858201604001528201610707565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461075b57600080fd5b919050565b6000806040838503121561077357600080fd5b61077c83610744565b946020939093013593505050565b60008060006060848603121561079f57600080fd5b6107a884610744565b92506107b660208501610744565b9150604084013590509250925092565b6000602082840312156107d857600080fd5b6107e182610744565b9392505050565b600080604083850312156107fb57600080fd5b61080483610744565b915061081260208401610744565b90509250929050565b600181811c9082168061082f57607f821691505b60208210810361084f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561031257610312610855565b808201808211156103125761031261085556fea2646970667358221220dbf9770d61ee2bf56e50e6109d8dc0d52626d03cef7471a22a595547acd8801764736f6c6343000813003300000000000000000000000072a4476eb9a7069823385c2792c9c8bb52795bc7