60806040523480156200001157600080fd5b5060405162001d2238038062001d22833981810160405260208110156200003757600080fd5b5051604080518082018252600881526754726962654f6e6560c01b60208281019182528351808501909452600484526348414b4160e01b90840152815191929160129162000089916003919062000415565b5081516200009f90600490602085019062000415565b506005805460ff191660ff9290921691909117905550620000d49050620000c562000165565b6001600160e01b036200016a16565b6007805460ff191690556000620000f36001600160e01b036200016516565b60078054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200015e33826001600160e01b03620001bc16565b50620004b7565b335b90565b62000185816006620002bd60201b620015821790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6001600160a01b03821662000218576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000234816002546200034a60201b6200147f1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620002679183906200147f6200034a821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b620002d282826001600160e01b03620003ac16565b1562000325576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600082820183811015620003a5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b038216620003f55760405162461bcd60e51b815260040180806020018281038252602281526020018062001d006022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200045857805160ff191683800117855562000488565b8280016001018555821562000488579182015b82811115620004885782518255916020019190600101906200046b565b50620004969291506200049a565b5090565b6200016791905b80821115620004965760008155600101620004a1565b61183980620004c76000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c357806395d89b411161007c57806395d89b41146103c5578063a457c2d7146103cd578063a7229fd9146103f9578063a9059cbb1461042f578063dd62ed3e1461045b578063f2fde38b1461048957610158565b8063715018a61461033757806379cc67901461033f57806382dc1ec41461036b5780638456cb59146103915780638da5cb5b146103995780638f32d59b146103bd57610158565b80633f4ba83a116101155780633f4ba83a146102b457806342966c68146102be57806346fbf68e146102db5780635c975abb146103015780636ef8d66d1461030957806370a082311461031157610158565b806306fdde031461015d578063095ea7b3146101da57806318160ddd1461021a57806323b872dd14610234578063313ce5671461026a5780633950935114610288575b600080fd5b6101656104af565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019f578181015183820152602001610187565b50505050905090810190601f1680156101cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610206600480360360408110156101f057600080fd5b506001600160a01b038135169060200135610545565b604080519115158252519081900360200190f35b6102226105a4565b60408051918252519081900360200190f35b6102066004803603606081101561024a57600080fd5b506001600160a01b038135811691602081013590911690604001356105aa565b61027261060b565b6040805160ff9092168252519081900360200190f35b6102066004803603604081101561029e57600080fd5b506001600160a01b038135169060200135610614565b6102bc61066c565b005b6102bc600480360360208110156102d457600080fd5b5035610755565b610206600480360360208110156102f157600080fd5b50356001600160a01b0316610769565b610206610782565b6102bc61078b565b6102226004803603602081101561032757600080fd5b50356001600160a01b031661079d565b6102bc6107b8565b6102bc6004803603604081101561035557600080fd5b506001600160a01b038135169060200135610861565b6102bc6004803603602081101561038157600080fd5b50356001600160a01b031661086f565b6102bc6108be565b6103a1610985565b604080516001600160a01b039092168252519081900360200190f35b610206610999565b6101656109c4565b610206600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610a25565b6102bc6004803603606081101561040f57600080fd5b506001600160a01b03813581169160208101359091169060400135610a7d565b6102066004803603604081101561044557600080fd5b506001600160a01b038135169060200135610c44565b6102226004803603604081101561047157600080fd5b506001600160a01b0381358116916020013516610c9c565b6102bc6004803603602081101561049f57600080fd5b50356001600160a01b0316610cc7565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561053b5780601f106105105761010080835404028352916020019161053b565b820191906000526020600020905b81548152906001019060200180831161051e57829003601f168201915b5050505050905090565b60075460009060ff1615610593576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61059d8383610d29565b9392505050565b60025490565b60075460009060ff16156105f8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b610603848484610d46565b949350505050565b60055460ff1690565b60075460009060ff1615610662576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61059d8383610dd3565b61067c610677610e27565b610769565b6106b75760405162461bcd60e51b81526004018080602001828103825260308152602001806116496030913960400191505060405180910390fd5b60075460ff16610705576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610738610e27565b604080516001600160a01b039092168252519081900360200190a1565b610766610760610e27565b82610e2b565b50565b600061077c60068363ffffffff610f2716565b92915050565b60075460ff1690565b61079b610796610e27565b610f8e565b565b6001600160a01b031660009081526020819052604090205490565b6107c0610999565b610811576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60075460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360078054610100600160a81b0319169055565b61086b8282610fd6565b5050565b61087a610677610e27565b6108b55760405162461bcd60e51b81526004018080602001828103825260308152602001806116496030913960400191505060405180910390fd5b6107668161102a565b6108c9610677610e27565b6109045760405162461bcd60e51b81526004018080602001828103825260308152602001806116496030913960400191505060405180910390fd5b60075460ff161561094f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610738610e27565b60075461010090046001600160a01b031690565b60075460009061010090046001600160a01b03166109b5610e27565b6001600160a01b031614905090565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561053b5780601f106105105761010080835404028352916020019161053b565b60075460009060ff1615610a73576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61059d8383611072565b610a85610999565b610ad6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b816001600160a01b0316836001600160a01b03161415610b2f576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610b8f57600080fd5b505af1158015610ba3573d6000803e3d6000fd5b505050506040513d6020811015610bb957600080fd5b5051610bfe576040805162461bcd60e51b815260206004820152600f60248201526e14995d1c9a595d994819985a5b1959608a1b604482015290519081900360640190fd5b80826001600160a01b0316846001600160a01b03167f16a1412f01b73c390eb2548427101644aa86c1443c272f73df00fb74c48fe49960405160405180910390a4505050565b60075460009060ff1615610c92576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61059d83836110e0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ccf610999565b610d20576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610766816110f4565b6000610d3d610d36610e27565b84846111a0565b50600192915050565b6000610d5384848461128c565b610dc984610d5f610e27565b610dc485604051806060016040528060288152602001611708602891396001600160a01b038a16600090815260016020526040812090610d9d610e27565b6001600160a01b03168152602081019190915260400160002054919063ffffffff6113e816565b6111a0565b5060019392505050565b6000610d3d610de0610e27565b84610dc48560016000610df1610e27565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61147f16565b3390565b6001600160a01b038216610e705760405162461bcd60e51b81526004018080602001828103825260218152602001806117766021913960400191505060405180910390fd5b610eb381604051806060016040528060228152602001611627602291396001600160a01b038516600090815260208190526040902054919063ffffffff6113e816565b6001600160a01b038316600090815260208190526040902055600254610edf908263ffffffff6114d916565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006001600160a01b038216610f6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806117306022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610f9f60068263ffffffff61151b16565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610fe08282610e2b565b61086b82610fec610e27565b610dc484604051806060016040528060248152602001611752602491396001600160a01b038816600090815260016020526040812090610d9d610e27565b61103b60068263ffffffff61158216565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6000610d3d61107f610e27565b84610dc4856040518060600160405280602581526020016117e060259139600160006110a9610e27565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6113e816565b6000610d3d6110ed610e27565b848461128c565b6001600160a01b0381166111395760405162461bcd60e51b81526004018080602001828103825260268152602001806116796026913960400191505060405180910390fd5b6007546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166111e55760405162461bcd60e51b81526004018080602001828103825260248152602001806117bc6024913960400191505060405180910390fd5b6001600160a01b03821661122a5760405162461bcd60e51b815260040180806020018281038252602281526020018061169f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166112d15760405162461bcd60e51b81526004018080602001828103825260258152602001806117976025913960400191505060405180910390fd5b6001600160a01b0382166113165760405162461bcd60e51b81526004018080602001828103825260238152602001806116046023913960400191505060405180910390fd5b611359816040518060600160405280602681526020016116c1602691396001600160a01b038616600090815260208190526040902054919063ffffffff6113e816565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461138e908263ffffffff61147f16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156114775760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561143c578181015183820152602001611424565b50505050905090810190601f1680156114695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008282018381101561059d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061059d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113e8565b6115258282610f27565b6115605760405162461bcd60e51b81526004018080602001828103825260218152602001806116e76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61158c8282610f27565b156115de576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820baac2b06a02580b6aa579e3226e1206ae835741c6040e8aee8dc83efa1e2a8bf64736f6c63430005110032526f6c65733a206163636f756e7420697320746865207a65726f20616464726573730000000000000000000000000000000000000000009bd0f5c629309a4fc00000