//
0x608060405234801561001057600080fd5b506100226001600160e01b0361002716565b610119565b61003a60ff6001600160e01b0361003d16565b50565b603354600090610100900460ff16156100b5578160ff1660011480156100725750610070306001600160e01b0361011316565b155b6100ad5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110cd602e913960400191505060405180910390fd5b50600061010e565b60335460ff8084169116106100fb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110cd602e913960400191505060405180910390fd5b506033805460ff191660ff831617905560015b919050565b3b151590565b610fa5806101286000396000f3fe6080604052600436106100dd5760003560e01c80630b622ab21461013b57806314f6c3be1461016c57806331f7d9641461019357806338d995a8146101a85780634a945f8d146101d45780635a4d28bb1461021f5780635eb52fca1461023457806364a197f31461024957806379ba5097146102825780638129fc1c146102975780638da5cb5b146102ac5780638f32d59b146102c1578063a3f4df7e146102ea578063aac1846f14610374578063b7f8cf9b14610389578063cfb9329a1461039e578063e30c3978146103c8578063f2fde38b146103dd57610136565b36610136576100ea610410565b6037546100fd903463ffffffff61047616565b603781905560408051918252517fca232b5abb988c540b959ff6c3bfae3e97fff964fd098c508f9613c0a6bf1a809181900360200190a1005b600080fd5b34801561014757600080fd5b506101506104d5565b604080516001600160a01b039092168252519081900360200190f35b34801561017857600080fd5b506101816104e4565b60408051918252519081900360200190f35b34801561019f57600080fd5b506101506104ea565b3480156101b457600080fd5b506101d2600480360360208110156101cb57600080fd5b50356104ef565b005b3480156101e057600080fd5b506101d2600480360360808110156101f757600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610544565b34801561022b57600080fd5b5061015061070a565b34801561024057600080fd5b50610181610719565b34801561025557600080fd5b506101d26004803603604081101561026c57600080fd5b506001600160a01b03813516906020013561071f565b34801561028e57600080fd5b506101d2610860565b3480156102a357600080fd5b506101d26108bb565b3480156102b857600080fd5b5061015061092f565b3480156102cd57600080fd5b506102d661093e565b604080519115158252519081900360200190f35b3480156102f657600080fd5b506102ff61094f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610339578181015183820152602001610321565b50505050905090810190601f1680156103665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038057600080fd5b50610150610975565b34801561039557600080fd5b50610150610984565b3480156103aa57600080fd5b506101d2600480360360208110156103c157600080fd5b5035610999565b3480156103d457600080fd5b506101506109b4565b3480156103e957600080fd5b506101d26004803603602081101561040057600080fd5b50356001600160a01b03166109c3565b6033546201000090046001600160a01b031633148061043957506036546001600160a01b031633145b6104745760405162461bcd60e51b8152600401808060200182810382526031815260200180610f3f6031913960400191505060405180910390fd5b565b6000828201838110156104ce576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b9392505050565b6035546001600160a01b031681565b60375490565b600081565b6104f7610a7a565b60385461050a908263ffffffff610af316565b603881905560408051918252517f0d4c964e4ceac5d740869d39789a7b91888a787b9c33e9365b1a658a21ffb6969181900360200190a150565b61054c61093e565b61059d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105a684610b35565b6105af83610b35565b6105b882610b35565b6105c181610b35565b6033805462010000600160b01b031916620100006001600160a01b0387811691820292909217909255603480546001600160a01b0319908116878416179091556035805482168684161790556036805490911691841691909117905560408051918252517f3ca631ffcd2a9b5d9ae18543fc82f58eb4ca33af9e6ab01b7a8e95331e6ed985916020908290030190a1604080516001600160a01b038516815290517f143219c9e69b09e07e095fcc889b43d8f46ca892bba65f08dc3a0050869a56789181900360200190a1604080516001600160a01b038416815290517f82966d27eea39b038ee0fa30cd16532bb24f6e65d31cb58fb227aa5766cdcc7f9181900360200190a1604080516001600160a01b038316815290517f5ee0cae2f063ed938bb55046f6a932fb6ae792bf43624806bb90abe68a50be9b9181900360200190a150505050565b6034546001600160a01b031681565b60385490565b610727610a7a565b60375461073a908263ffffffff610af316565b603781905560408051918252517fca232b5abb988c540b959ff6c3bfae3e97fff964fd098c508f9613c0a6bf1a809181900360200190a1604080516001600160a01b03841681526020810183905281517f6109e2559dfa766aaec7118351d48a523f0a4157f49c8d68749c8ac41318ad12929181900390910190a16040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610800576040519150601f19603f3d011682016040523d82523d6000602084013e610805565b606091505b505090508061085b576040805162461bcd60e51b815260206004820152601e60248201527f416374697665506f6f6c3a2073656e64696e6720455448206661696c65640000604482015290519081900360640190fd5b505050565b338061086a6109b4565b6001600160a01b0316146108af5760405162461bcd60e51b8152600401808060200182810382526029815260200180610e956029913960400191505060405180910390fd5b6108b881610be8565b50565b60006108c76001610c42565b905080156108df576033805461ff0019166101001790555b6108e7610d0f565b80156108b8576033805461ff0019169055604080516001815290517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989181900360200190a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6040518060400160405280600a8152602001691058dd1a5d99541bdbdb60b21b81525081565b6036546001600160a01b031681565b6033546201000090046001600160a01b031681565b6109a1610d52565b60385461050a908263ffffffff61047616565b6001546001600160a01b031690565b6109cb61093e565b610a1c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b038316908117909155610a4261092f565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546201000090046001600160a01b0316331480610aa357506034546001600160a01b031633145b80610ab857506035546001600160a01b031633145b6104745760405162461bcd60e51b8152600401808060200182810382526053815260200180610eec6053913960600191505060405180910390fd5b60006104ce83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610db6565b6001600160a01b038116610b90576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b80610be4576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b5050565b600180546001600160a01b0319908116909155600080546001600160a01b03848116938216841783556040519116929183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b603354600090610100900460ff1615610cb1578160ff166001148015610c6e5750610c6c30610e4d565b155b610ca95760405162461bcd60e51b815260040180806020018281038252602e815260200180610ebe602e913960400191505060405180910390fd5b506000610d0a565b60335460ff808416911610610cf75760405162461bcd60e51b815260040180806020018281038252602e815260200180610ebe602e913960400191505060405180910390fd5b506033805460ff191660ff831617905560015b919050565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350565b6033546201000090046001600160a01b0316331480610d7b57506034546001600160a01b031633145b6104745760405162461bcd60e51b8152600401808060200182810382526041815260200180610e546041913960600191505060405180910390fd5b60008184841115610e455760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e0a578181015183820152602001610df2565b50505050905090810190601f168015610e375780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b3b15159056fe416374697665506f6f6c3a2043616c6c6572206973206e65697468657220426f72726f7765724f7065726174696f6e73206e6f722054726f76654d616e616765724f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564416374697665506f6f6c3a2043616c6c6572206973206e65697468657220426f72726f7765724f7065726174696f6e73206e6f722054726f76654d616e61676572206e6f722053746162696c697479506f6f6c416374697665506f6f6c3a2043616c6c6572206973206e65697468657220424f206e6f722044656661756c7420506f6f6ca2646970667358221220833caf595842711d512b98eaa9b657e7719c214daae19a1331bdcffd7a35b21564736f6c634300060b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564