0x60806040526004361061012a5760003560e01c806370a08231116100ab57806394bf804d1161006f57806394bf804d146103e257806395d89b411461041b578063a457c2d714610430578063a9059cbb14610469578063dd62ed3e146104a2578063f2fde38b146104dd5761012a565b806370a082311461033f578063715018a6146103725780638456cb59146103875780638da5cb5b1461039c5780638f32d59b146103cd5761012a565b8063313ce567116100f2578063313ce5671461028557806339509351146102b05780633f4ba83a146102e957806342966c68146102fe5780635c975abb1461032a5761012a565b806306fdde031461012f578063095ea7b3146101b957806318160ddd146102065780631ec4280a1461022d57806323b872dd14610242575b600080fd5b34801561013b57600080fd5b50610144610510565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c557600080fd5b506101f2600480360360408110156101dc57600080fd5b506001600160a01b0381351690602001356105a6565b604080519115158252519081900360200190f35b34801561021257600080fd5b5061021b6105db565b60408051918252519081900360200190f35b34801561023957600080fd5b5061021b6105e1565b34801561024e57600080fd5b506101f26004803603606081101561026557600080fd5b506001600160a01b03813581169160208101359091169060400135610602565b34801561029157600080fd5b5061029a610653565b6040805160ff9092168252519081900360200190f35b3480156102bc57600080fd5b506101f2600480360360408110156102d357600080fd5b506001600160a01b03813516906020013561065c565b3480156102f557600080fd5b506101f26106cd565b34801561030a57600080fd5b506103286004803603602081101561032157600080fd5b5035610768565b005b34801561033657600080fd5b506101f2610775565b34801561034b57600080fd5b5061021b6004803603602081101561036257600080fd5b50356001600160a01b0316610785565b34801561037e57600080fd5b506103286107a0565b34801561039357600080fd5b506101f2610837565b3480156103a857600080fd5b506103b16108d9565b604080516001600160a01b039092168252519081900360200190f35b3480156103d957600080fd5b506101f26108ed565b3480156103ee57600080fd5b506103286004803603604081101561040557600080fd5b50803590602001356001600160a01b0316610918565b34801561042757600080fd5b50610144610993565b34801561043c57600080fd5b506101f26004803603604081101561045357600080fd5b506001600160a01b0381351690602001356109f3565b34801561047557600080fd5b506101f26004803603604081101561048c57600080fd5b506001600160a01b038135169060200135610a79565b3480156104ae57600080fd5b5061021b600480360360408110156104c557600080fd5b506001600160a01b0381358116916020013516610a9f565b3480156104e957600080fd5b506103286004803603602081101561050057600080fd5b50356001600160a01b0316610aca565b60008054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561059c5780601f106105715761010080835404028352916020019161059c565b820191906000526020600020905b81548152906001019060200180831161057f57829003601f168201915b5050505050905090565b600254600090600160a81b900460ff16156105c057600080fd5b6105d26105cb610b1a565b8484610b1e565b50600192915050565b60055490565b60006105fd6105ee6105db565b6006549063ffffffff610c0a16565b905090565b60006001600160a01b03841661061757600080fd5b6001600160a01b03831661062a57600080fd5b6106348433610a9f565b82111561064057600080fd5b61064b848484610c4c565b949350505050565b60025460ff1690565b600254600090600160a81b900460ff161561067657600080fd5b6105d2610681610b1a565b846106c88560046000610692610b1a565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610cec16565b610b1e565b60006106d76108ed565b610716576040805162461bcd60e51b81526020600482018190526024820152600080516020611299833981519152604482015290519081900360640190fd5b600254600160a81b900460ff1661072c57600080fd5b6002805460ff60a81b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a150600190565b6107723382610d46565b50565b600254600160a81b900460ff1681565b6001600160a01b031660009081526003602052604090205490565b6107a86108ed565b6107e7576040805162461bcd60e51b81526020600482018190526024820152600080516020611299833981519152604482015290519081900360640190fd5b60025460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360028054610100600160a81b0319169055565b60006108416108ed565b610880576040805162461bcd60e51b81526020600482018190526024820152600080516020611299833981519152604482015290519081900360640190fd5b600254600160a81b900460ff161561089757600080fd5b6002805460ff60a81b1916600160a81b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a150600190565b60025461010090046001600160a01b031690565b60025460009061010090046001600160a01b0316610909610b1a565b6001600160a01b031614905090565b6109206108ed565b61095f576040805162461bcd60e51b81526020600482018190526024820152600080516020611299833981519152604482015290519081900360640190fd5b60065461097a8361096e6105db565b9063ffffffff610cec16565b111561098557600080fd5b61098f8183610e42565b5050565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561059c5780601f106105715761010080835404028352916020019161059c565b600254600090600160a81b900460ff1615610a0d57600080fd5b6105d2610a18610b1a565b846106c8856040518060600160405280602581526020016113026025913960046000610a42610b1a565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610f3416565b60006001600160a01b038316610a8e57600080fd5b610a988383610fcb565b9392505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610ad26108ed565b610b11576040805162461bcd60e51b81526020600482018190526024820152600080516020611299833981519152604482015290519081900360640190fd5b61077281610ff7565b3390565b6001600160a01b038316610b635760405162461bcd60e51b81526004018080602001828103825260248152602001806112276024913960400191505060405180910390fd5b6001600160a01b038216610ba85760405162461bcd60e51b815260040180806020018281038252602281526020018061136a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a9883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f34565b600254600090600160a81b900460ff1615610c6657600080fd5b610c718484846110a3565b610ce284610c7d610b1a565b6106c885604051806060016040528060288152602001611271602891396001600160a01b038a16600090815260046020526040812090610cbb610b1a565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610f3416565b5060019392505050565b600082820183811015610a98576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216610d8b5760405162461bcd60e51b81526004018080602001828103825260218152602001806113276021913960400191505060405180910390fd5b610dce81604051806060016040528060228152602001611348602291396001600160a01b038516600090815260036020526040902054919063ffffffff610f3416565b6001600160a01b038316600090815260036020526040902055600554610dfa908263ffffffff610c0a16565b6005556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038216610e9d576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554610eb0908263ffffffff610cec16565b6005556001600160a01b038216600090815260036020526040902054610edc908263ffffffff610cec16565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008184841115610fc35760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f88578181015183820152602001610f70565b50505050905090810190601f168015610fb55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600254600090600160a81b900460ff1615610fe557600080fd5b6105d2610ff0610b1a565b84846110a3565b6001600160a01b03811661103c5760405162461bcd60e51b815260040180806020018281038252602681526020018061124b6026913960400191505060405180910390fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166110e85760405162461bcd60e51b81526004018080602001828103825260258152602001806112026025913960400191505060405180910390fd5b6001600160a01b03821661112d5760405162461bcd60e51b81526004018080602001828103825260238152602001806112df6023913960400191505060405180910390fd5b611170816040518060600160405280602681526020016112b9602691396001600160a01b038616600090815260036020526040902054919063ffffffff610f3416565b6001600160a01b0380851660009081526003602052604080822093909355908416815220546111a5908263ffffffff610cec16565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657242455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a7231582041a4765fe19dfacc9063acaa6310d9abfe3ab5ecab057c5d20c8c47e82f6c37564736f6c63430005110032