608060405234801561000f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600b81526a4a4f4520424944454e494f60a81b602082015260069061007f90826101b7565b50604080518082019091526007815266424944454e494f60c81b60208201526005906100ab90826101b7565b506004805460ff191660121790556c08d5d26dc4fe1ea68a600000006003819055335f8181526001602052604080822084905551919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916101129190815260200190565b60405180910390a3610271565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061014757607f821691505b60208210810361016557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101b257805f5260205f20601f840160051c810160208510156101905750805b601f840160051c820191505b818110156101af575f815560010161019c565b50505b505050565b81516001600160401b038111156101d0576101d061011f565b6101e4816101de8454610133565b8461016b565b6020601f821160018114610216575f83156101ff5750848201515b5f19600385901b1c1916600184901b1784556101af565b5f84815260208120601f198516915b828110156102455787850151825560209485019460019092019101610225565b508482101561026257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610c0c8061027e5f395ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063893d20e81161009e578063a9059cbb1161006e578063a9059cbb14610235578063b09f126614610248578063d28d885214610250578063dd62ed3e14610258578063f2fde38b14610290575f80fd5b8063893d20e8146101e65780638da5cb5b1461020a57806395d89b411461021a578063a457c2d714610222575f80fd5b8063313ce567116100e4578063313ce5671461017b57806332424aa31461019457806339509351146101a157806370a08231146101b4578063715018a6146101dc575f80fd5b806306fdde0314610115578063095ea7b31461013357806318160ddd1461015657806323b872dd14610168575b5f80fd5b61011d6102a3565b60405161012a9190610a47565b60405180910390f35b610146610141366004610a97565b610333565b604051901515815260200161012a565b6003545b60405190815260200161012a565b610146610176366004610abf565b610349565b60045460ff165b60405160ff909116815260200161012a565b6004546101829060ff1681565b6101466101af366004610a97565b6103b0565b61015a6101c2366004610af9565b6001600160a01b03165f9081526001602052604090205490565b6101e46103e5565b005b5f546001600160a01b03165b6040516001600160a01b03909116815260200161012a565b5f546001600160a01b03166101f2565b61011d610477565b610146610230366004610a97565b610486565b610146610243366004610a97565b6104f2565b61011d6104fe565b61011d61058a565b61015a610266366004610b12565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6101e461029e366004610af9565b610597565b6060600680546102b290610b43565b80601f01602080910402602001604051908101604052809291908181526020018280546102de90610b43565b80156103295780601f1061030057610100808354040283529160200191610329565b820191905f5260205f20905b81548152906001019060200180831161030c57829003601f168201915b5050505050905090565b5f61033f3384846105e8565b5060015b92915050565b5f6103558484846106f5565b6103a684336103a185604051806060016040528060218152602001610bb6602191396001600160a01b038a165f90815260026020908152604080832033845290915290205491906108ab565b6105e8565b5060019392505050565b335f8181526002602090815260408083206001600160a01b0387168452909152812054909161033f9185906103a190866108e3565b5f546001600160a01b0316331461042f5760405162461bcd60e51b815260206004820152600960248201526837b7363ca7bbb732b960b91b60448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600580546102b290610b43565b604080518082018252601e81527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000602080830191909152335f818152600283528481206001600160a01b038816825290925292812054909261033f92909186916103a1919087906108ab565b5f61033f3384846106f5565b6005805461050b90610b43565b80601f016020809104026020016040519081016040528092919081815260200182805461053790610b43565b80156105825780601f1061055957610100808354040283529160200191610582565b820191905f5260205f20905b81548152906001019060200180831161056557829003601f168201915b505050505081565b6006805461050b90610b43565b5f546001600160a01b031633146105dc5760405162461bcd60e51b815260206004820152600960248201526837b7363ca7bbb732b960b91b6044820152606401610426565b6105e581610948565b50565b6001600160a01b03831661063e5760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f20616464726573730000006044820152606401610426565b6001600160a01b0382166106945760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610426565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661074b5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610426565b6001600160a01b0382166107a15760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610426565b6001600160a01b0383165f908152600160205260409020548111156108085760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610426565b6001600160a01b0383165f9081526001602052604090205461082a9082610a06565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461085890826108e3565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106e89085815260200190565b5f81848411156108ce5760405162461bcd60e51b81526004016104269190610a47565b505f6108da8486610b8f565b95945050505050565b5f806108ef8385610ba2565b9050838110156109415760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610426565b9392505050565b6001600160a01b0381166109ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610426565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f61094183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108ab565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610a92575f80fd5b919050565b5f8060408385031215610aa8575f80fd5b610ab183610a7c565b946020939093013593505050565b5f805f60608486031215610ad1575f80fd5b610ada84610a7c565b9250610ae860208501610a7c565b929592945050506040919091013590565b5f60208284031215610b09575f80fd5b61094182610a7c565b5f8060408385031215610b23575f80fd5b610b2c83610a7c565b9150610b3a60208401610a7c565b90509250929050565b600181811c90821680610b5757607f821691505b602082108103610b7557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561034357610343610b7b565b8082018082111561034357610343610b7b56fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a1d007f9dbeea3da912100992d7490cbca65fe17020f0d1f9b09cffcb32679064736f6c634300081a0033