608060405260116006553480156200001657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000666009600a62000245565b6200007590620f42406200025d565b336000908152600160208190526040822092909255600390620000a06000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620000d03390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200010a6009600a62000245565b6200011990620f42406200025d565b60405190815260200160405180910390a36200027f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001875781600019048211156200016b576200016b62000130565b808516156200017957918102915b93841c93908002906200014b565b509250929050565b600082620001a0575060016200023f565b81620001af575060006200023f565b8160018114620001c85760028114620001d357620001f3565b60019150506200023f565b60ff841115620001e757620001e762000130565b50506001821b6200023f565b5060208310610133831016604e8410600b841016171562000218575081810a6200023f565b62000224838362000146565b80600019048211156200023b576200023b62000130565b0290505b92915050565b60006200025660ff8416836200018f565b9392505050565b60008160001904831182151516156200027a576200027a62000130565b500290565b61101d806200028f6000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102e6578063abb8105214610306578063afbecb761461033f578063dd62ed3e1461035f57600080fd5b806370a0823114610250578063715018a6146102865780638da5cb5b1461029b57806395d89b41146102b957600080fd5b806323b872dd116100c657806323b872dd146101bb578063313ce567146101db5780634dcec7bb146101f757806356a060a21461022f57600080fd5b806306fdde0314610103578063095ea7b314610146578063113717b71461017657806318160ddd1461019857600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b50604080518082019091526008815267426c75655065706560c01b60208201525b60405161013d9190610c45565b60405180910390f35b34801561015257600080fd5b50610166610161366004610cb6565b6103a5565b604051901515815260200161013d565b34801561018257600080fd5b50610196610191366004610cf0565b6103bc565b005b3480156101a457600080fd5b506101ad61048b565b60405190815260200161013d565b3480156101c757600080fd5b506101666101d6366004610d23565b6104ab565b3480156101e757600080fd5b506040516009815260200161013d565b34801561020357600080fd5b50600754610217906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b34801561023b57600080fd5b5060075461016690600160a01b900460ff1681565b34801561025c57600080fd5b506101ad61026b366004610d5f565b6001600160a01b031660009081526001602052604090205490565b34801561029257600080fd5b50610196610514565b3480156102a757600080fd5b506000546001600160a01b0316610217565b3480156102c557600080fd5b506040805180820190915260048152634245504560e01b6020820152610130565b3480156102f257600080fd5b50610166610301366004610cb6565b610588565b34801561031257600080fd5b50610166610321366004610d5f565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561034b57600080fd5b5061019661035a366004610d7a565b610595565b34801561036b57600080fd5b506101ad61037a366004610da4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103b23384846105ea565b5060015b92915050565b6000546001600160a01b031633146103ef5760405162461bcd60e51b81526004016103e690610dc0565b60405180910390fd5b8161045b5760405162461bcd60e51b815260206004820152603660248201527f5472616465207374617475732073686f756c64206265206f70656e207768696c604482015275329030b23234b733903830b4b91030b2323932b9b99760511b60648201526084016103e6565b60078054921515600160a01b026001600160a81b03199093166001600160a01b0390921691909117919091179055565b60006104996009600a610eef565b6104a690620f4240610efe565b905090565b60006104b884848461070e565b61050a843361050585604051806060016040528060288152602001610fc0602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610a8f565b6105ea565b5060019392505050565b6000546001600160a01b0316331461053e5760405162461bcd60e51b81526004016103e690610dc0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006103b233848461070e565b6000546001600160a01b031633146105bf5760405162461bcd60e51b81526004016103e690610dc0565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b03831661064c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e6565b6001600160a01b0382166106ad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166107745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e6565b6001600160a01b0383166107d65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e6565b600082116108385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e6565b600080546001600160a01b0386811691161480159061086557506000546001600160a01b03858116911614155b15610a6e57600754600160a01b900460ff1661088057600080fd5b6001600160a01b03851660009081526003602052604090205460ff161580156108c257506001600160a01b03841660009081526003602052604090205460ff16155b1561099d576001600160a01b03851660009081526004602052604090205460ff1615801561090957506001600160a01b03841660009081526004602052604090205460ff16155b61091257600080fd5b6007546000906001600160a01b039081169087160361092f575060015b8015610953576064610942856000610efe565b61094c9190610f1d565b9150610997565b60016000526005602052600080516020610fa08339815191525460ff161561097d57839150610997565b606461098a856000610efe565b6109949190610f1d565b91505b50610a6e565b6007546001600160a01b0390811690861603610a6e57600080516020610fa0833981519152546001600160a01b03851660009081526003602052604090205460ff9182169116610a095760016000526005602052600080516020610fa08339815191525460ff16610a34565b600160008190526005602052600080516020610fa083398151915254610a349160ff90911690610f3f565b60016000526005602052600080516020610fa0833981519152805460ff191660ff9283169081179091559082161015610a6c57600a92505b505b610a888585858460065487610a839190610f64565b610ac9565b5050505050565b60008184841115610ab35760405162461bcd60e51b81526004016103e69190610c45565b506000610ac08486610f70565b95945050505050565b6001600160a01b038516600090815260016020526040902054610aec9084610b9d565b6001600160a01b038616600090815260016020526040902055610b3b81610b35610b168686610b9d565b6001600160a01b03881660009081526001602052604090205490610be6565b90610be6565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610b858686610b9d565b60405190815260200160405180910390a35050505050565b6000610bdf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a8f565b9392505050565b600080610bf38385610f87565b905083811015610bdf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e6565b600060208083528351808285015260005b81811015610c7257858101830151858201604001528201610c56565b81811115610c84576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610cb157600080fd5b919050565b60008060408385031215610cc957600080fd5b610cd283610c9a565b946020939093013593505050565b80358015158114610cb157600080fd5b60008060408385031215610d0357600080fd5b610d0c83610ce0565b9150610d1a60208401610c9a565b90509250929050565b600080600060608486031215610d3857600080fd5b610d4184610c9a565b9250610d4f60208501610c9a565b9150604084013590509250925092565b600060208284031215610d7157600080fd5b610bdf82610c9a565b60008060408385031215610d8d57600080fd5b610d9683610c9a565b9150610d1a60208401610ce0565b60008060408385031215610db757600080fd5b610d0c83610c9a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610e46578160001904821115610e2c57610e2c610df5565b80851615610e3957918102915b93841c9390800290610e10565b509250929050565b600082610e5d575060016103b6565b81610e6a575060006103b6565b8160018114610e805760028114610e8a57610ea6565b60019150506103b6565b60ff841115610e9b57610e9b610df5565b50506001821b6103b6565b5060208310610133831016604e8410600b8410161715610ec9575081810a6103b6565b610ed38383610e0b565b8060001904821115610ee757610ee7610df5565b029392505050565b6000610bdf60ff841683610e4e565b6000816000190483118215151615610f1857610f18610df5565b500290565b600082610f3a57634e487b7160e01b600052601260045260246000fd5b500490565b600060ff821660ff84168060ff03821115610f5c57610f5c610df5565b019392505050565b6000610bdf8383610e4e565b600082821015610f8257610f82610df5565b500390565b60008219821115610f9a57610f9a610df5565b50019056fe1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220945a38b4c6ef62af0293573a335e035f987b6fda4c2a89ae335ba58f18f744aa64736f6c634300080e0033