0x6080604052600436106100ab5760003560e01c8063715018a611610064578063715018a6146101bd5780638da5cb5b146101d457806395d89b4114610206578063a9059cbb14610235578063dd62ed3e14610255578063f474cdfe1461029b57600080fd5b806306fdde03146100b7578063095ea7b3146100f857806318160ddd1461012857806323b872dd1461014b578063313ce5671461016b57806370a082311461018757600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b506040805180820190915260068152652237b7b6b2b960d11b60208201525b6040516100ef9190610c34565b60405180910390f35b34801561010457600080fd5b50610118610113366004610c9e565b6102c2565b60405190151581526020016100ef565b34801561013457600080fd5b5061013d6102d9565b6040519081526020016100ef565b34801561015757600080fd5b50610118610166366004610cc8565b6102f9565b34801561017757600080fd5b50604051600981526020016100ef565b34801561019357600080fd5b5061013d6101a2366004610d04565b6001600160a01b031660009081526001602052604090205490565b3480156101c957600080fd5b506101d2610362565b005b3480156101e057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100ef565b34801561021257600080fd5b506040805180820190915260068152652227a7a6a2a960d11b60208201526100e2565b34801561024157600080fd5b50610118610250366004610c9e565b61040b565b34801561026157600080fd5b5061013d610270366004610d1f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156102a757600080fd5b506005546101ee90600160281b90046001600160a01b031681565b60006102cf338484610418565b5060015b92915050565b60006102e76009600a610e4c565b6102f490620f4240610e5b565b905090565b600061030684848461053d565b610358843361035385604051806060016040528060288152602001610efc602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906109d8565b610418565b5060019392505050565b6000546001600160a01b031633146103c15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102cf33848461053d565b6001600160a01b03831661047a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b8565b6001600160a01b0382166104db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383161580159061055d57506001600160a01b03821615155b6105a95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a207472616e73666572207a65726f20616464726573732e00000060448201526064016103b8565b600081116106035760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152601760f91b60648201526084016103b8565b6000546001600160a01b0384811691161480159061062f57506000546001600160a01b03838116911614155b15610988576001600160a01b03821660009081526004602052604090205460ff16156106c15760408051602081019091526001600160a01b038416908190526005805465010000000000600160c81b031916600160281b90920291909117808255640100000000900460ff169060046106a783610e88565b91906101000a81548160ff021916908360ff160217905550505b600554640100000000900460ff166106d857600080fd5b6001600160a01b03831660009081526003602052604090205460ff1615801561071a57506001600160a01b03821660009081526003602052604090205460ff16155b15610838576005546001600160a01b03848116600160281b9092041614801561074d57610748848484610a12565b610832565b6001600160a01b0384166000908152600160205260409020546107709083610a85565b6001600160a01b038516600090815260016020908152604080832093909355825180840190935281835260055460ff62010000820481169285019290925291926107e9926064926107e392916301000000900416600281106107d4576107d4610e72565b6020020151869060ff16610ace565b90610b50565b90506108176107f88483610a85565b6001600160a01b03861660009081526001602052604090205490610b92565b6001600160a01b038516600090815260016020526040902055505b50610993565b6005546000906001600160a01b03858116600160281b9092041614801561087757506001600160a01b03831660009081526003602052604090205460ff165b801561089057506005546001630100000090910460ff16105b156108ac57506005805463ff0000001916630100000017905560205b6005546301000000900460ff16151560006108e16108cb600a85610bf1565b3060009081526001602052604090205490610b92565b6001600160a01b0387166000908152600160205260409020549091506109079085610a85565b6001600160a01b03871660009081526001602052604090205561096661094783610932576000610940565b8361093e576000610940565b825b8690610b92565b6001600160a01b03871660009081526001602052604090205490610b92565b6001600160a01b03861660009081526001602052604090205550610993915050565b610993838383610a12565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161053091815260200190565b600081848411156109fc5760405162461bcd60e51b81526004016103b89190610c34565b506000610a098486610ea7565b95945050505050565b6001600160a01b038316600090815260016020526040902054610a359082610a85565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610a649082610b92565b6001600160a01b039092166000908152600160205260409020919091555050565b6000610ac783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109d8565b9392505050565b600082600003610ae0575060006102d3565b6000610aec8385610e5b565b905082610af98583610eba565b14610ac75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103b8565b6000610ac783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c06565b600080610b9f8385610edc565b905083811015610ac75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103b8565b600080610bfe8385610eef565b949350505050565b60008183610c275760405162461bcd60e51b81526004016103b89190610c34565b506000610a098486610eba565b600060208083528351808285015260005b81811015610c6157858101830151858201604001528201610c45565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c9957600080fd5b919050565b60008060408385031215610cb157600080fd5b610cba83610c82565b946020939093013593505050565b600080600060608486031215610cdd57600080fd5b610ce684610c82565b9250610cf460208501610c82565b9150604084013590509250925092565b600060208284031215610d1657600080fd5b610ac782610c82565b60008060408385031215610d3257600080fd5b610d3b83610c82565b9150610d4960208401610c82565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610da3578160001904821115610d8957610d89610d52565b80851615610d9657918102915b93841c9390800290610d6d565b509250929050565b600082610dba575060016102d3565b81610dc7575060006102d3565b8160018114610ddd5760028114610de757610e03565b60019150506102d3565b60ff841115610df857610df8610d52565b50506001821b6102d3565b5060208310610133831016604e8410600b8410161715610e26575081810a6102d3565b610e308383610d68565b8060001904821115610e4457610e44610d52565b029392505050565b6000610ac760ff841683610dab565b80820281158282048414176102d3576102d3610d52565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8103610e9e57610e9e610d52565b60010192915050565b818103818111156102d3576102d3610d52565b600082610ed757634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156102d3576102d3610d52565b6000610ac78383610dab56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201316a09ce84bcda2bf67446359fc06478fea4566913287af2f49ee33e8d6238864736f6c63430008110033
0x60806040526000805460ff60a01b1916606360a01b17908190556005805462ffffff191660ff600160a01b9093049290921662010000029190911790553480156200004957600080fd5b506040516200124b3803806200124b8339810160408190526200006c9162000170565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000bb6009600a620002b7565b620000ca90620f4240620002c8565b336000818152600160208181526040808420959095556001600160a01b03868116845260048252858420805460ff199081168517909155845490911684526003909152938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001496009600a620002b7565b6200015890620f4240620002c8565b60405190815260200160405180910390a350620002e2565b6000602082840312156200018357600080fd5b81516001600160a01b03811681146200019b57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001f9578160001904821115620001dd57620001dd620001a2565b80851615620001eb57918102915b93841c9390800290620001bd565b509250929050565b6000826200021257506001620002b1565b816200022157506000620002b1565b81600181146200023a5760028114620002455762000265565b6001915050620002b1565b60ff841115620002595762000259620001a2565b50506001821b620002b1565b5060208310610133831016604e8410600b84101617156200028a575081810a620002b1565b620002968383620001b8565b8060001904821115620002ad57620002ad620001a2565b0290505b92915050565b60006200019b60ff84168362000201565b8082028115828204841417620002b157620002b1620001a2565b610f5980620002f26000396000f3fe6080604052600436106100ab5760003560e01c8063715018a611610064578063715018a6146101bd5780638da5cb5b146101d457806395d89b4114610206578063a9059cbb14610235578063dd62ed3e14610255578063f474cdfe1461029b57600080fd5b806306fdde03146100b7578063095ea7b3146100f857806318160ddd1461012857806323b872dd1461014b578063313ce5671461016b57806370a082311461018757600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b506040805180820190915260068152652237b7b6b2b960d11b60208201525b6040516100ef9190610c34565b60405180910390f35b34801561010457600080fd5b50610118610113366004610c9e565b6102c2565b60405190151581526020016100ef565b34801561013457600080fd5b5061013d6102d9565b6040519081526020016100ef565b34801561015757600080fd5b50610118610166366004610cc8565b6102f9565b34801561017757600080fd5b50604051600981526020016100ef565b34801561019357600080fd5b5061013d6101a2366004610d04565b6001600160a01b031660009081526001602052604090205490565b3480156101c957600080fd5b506101d2610362565b005b3480156101e057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100ef565b34801561021257600080fd5b506040805180820190915260068152652227a7a6a2a960d11b60208201526100e2565b34801561024157600080fd5b50610118610250366004610c9e565b61040b565b34801561026157600080fd5b5061013d610270366004610d1f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156102a757600080fd5b506005546101ee90600160281b90046001600160a01b031681565b60006102cf338484610418565b5060015b92915050565b60006102e76009600a610e4c565b6102f490620f4240610e5b565b905090565b600061030684848461053d565b610358843361035385604051806060016040528060288152602001610efc602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906109d8565b610418565b5060019392505050565b6000546001600160a01b031633146103c15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102cf33848461053d565b6001600160a01b03831661047a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b8565b6001600160a01b0382166104db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383161580159061055d57506001600160a01b03821615155b6105a95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a207472616e73666572207a65726f20616464726573732e00000060448201526064016103b8565b600081116106035760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152601760f91b60648201526084016103b8565b6000546001600160a01b0384811691161480159061062f57506000546001600160a01b03838116911614155b15610988576001600160a01b03821660009081526004602052604090205460ff16156106c15760408051602081019091526001600160a01b038416908190526005805465010000000000600160c81b031916600160281b90920291909117808255640100000000900460ff169060046106a783610e88565b91906101000a81548160ff021916908360ff160217905550505b600554640100000000900460ff166106d857600080fd5b6001600160a01b03831660009081526003602052604090205460ff1615801561071a57506001600160a01b03821660009081526003602052604090205460ff16155b15610838576005546001600160a01b03848116600160281b9092041614801561074d57610748848484610a12565b610832565b6001600160a01b0384166000908152600160205260409020546107709083610a85565b6001600160a01b038516600090815260016020908152604080832093909355825180840190935281835260055460ff62010000820481169285019290925291926107e9926064926107e392916301000000900416600281106107d4576107d4610e72565b6020020151869060ff16610ace565b90610b50565b90506108176107f88483610a85565b6001600160a01b03861660009081526001602052604090205490610b92565b6001600160a01b038516600090815260016020526040902055505b50610993565b6005546000906001600160a01b03858116600160281b9092041614801561087757506001600160a01b03831660009081526003602052604090205460ff165b801561089057506005546001630100000090910460ff16105b156108ac57506005805463ff0000001916630100000017905560205b6005546301000000900460ff16151560006108e16108cb600a85610bf1565b3060009081526001602052604090205490610b92565b6001600160a01b0387166000908152600160205260409020549091506109079085610a85565b6001600160a01b03871660009081526001602052604090205561096661094783610932576000610940565b8361093e576000610940565b825b8690610b92565b6001600160a01b03871660009081526001602052604090205490610b92565b6001600160a01b03861660009081526001602052604090205550610993915050565b610993838383610a12565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161053091815260200190565b600081848411156109fc5760405162461bcd60e51b81526004016103b89190610c34565b506000610a098486610ea7565b95945050505050565b6001600160a01b038316600090815260016020526040902054610a359082610a85565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610a649082610b92565b6001600160a01b039092166000908152600160205260409020919091555050565b6000610ac783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109d8565b9392505050565b600082600003610ae0575060006102d3565b6000610aec8385610e5b565b905082610af98583610eba565b14610ac75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103b8565b6000610ac783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c06565b600080610b9f8385610edc565b905083811015610ac75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103b8565b600080610bfe8385610eef565b949350505050565b60008183610c275760405162461bcd60e51b81526004016103b89190610c34565b506000610a098486610eba565b600060208083528351808285015260005b81811015610c6157858101830151858201604001528201610c45565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c9957600080fd5b919050565b60008060408385031215610cb157600080fd5b610cba83610c82565b946020939093013593505050565b600080600060608486031215610cdd57600080fd5b610ce684610c82565b9250610cf460208501610c82565b9150604084013590509250925092565b600060208284031215610d1657600080fd5b610ac782610c82565b60008060408385031215610d3257600080fd5b610d3b83610c82565b9150610d4960208401610c82565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610da3578160001904821115610d8957610d89610d52565b80851615610d9657918102915b93841c9390800290610d6d565b509250929050565b600082610dba575060016102d3565b81610dc7575060006102d3565b8160018114610ddd5760028114610de757610e03565b60019150506102d3565b60ff841115610df857610df8610d52565b50506001821b6102d3565b5060208310610133831016604e8410600b8410161715610e26575081810a6102d3565b610e308383610d68565b8060001904821115610e4457610e44610d52565b029392505050565b6000610ac760ff841683610dab565b80820281158282048414176102d3576102d3610d52565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8103610e9e57610e9e610d52565b60010192915050565b818103818111156102d3576102d3610d52565b600082610ed757634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156102d3576102d3610d52565b6000610ac78383610dab56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201316a09ce84bcda2bf67446359fc06478fea4566913287af2f49ee33e8d6238864736f6c63430008110033000000000000000000000000091c6a410fa669ba40e13375a336424845bb348d