0x608060405234801561001057600080fd5b50600436106101215760003560e01c80638426e6c1116100ad578063dd62ed3e11610071578063dd62ed3e146103a3578063edc9af95146103d1578063f340fa01146103f5578063f3fef3a31461041b578063fd1f914a1461044757610121565b80638426e6c1146102f157806395d89b41146103175780639dc29fac1461031f578063a457c2d71461034b578063a9059cbb1461037757610121565b806323b872dd116100f457806323b872dd14610223578063313ce567146102595780633950935114610277578063696490a7146102a357806370a08231146102cb57610121565b806306fdde0314610126578063095ea7b3146101a357806318160ddd146101e357806318a5bbdc146101fd575b600080fd5b61012e61046d565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101cf600480360360408110156101b957600080fd5b506001600160a01b038135169060200135610503565b604080519115158252519081900360200190f35b6101eb610521565b60408051918252519081900360200190f35b6101cf6004803603602081101561021357600080fd5b50356001600160a01b0316610527565b6101cf6004803603606081101561023957600080fd5b506001600160a01b0381358116916020810135909116906040013561053c565b6102616105c9565b6040805160ff9092168252519081900360200190f35b6101cf6004803603604081101561028d57600080fd5b506001600160a01b0381351690602001356105d2565b6102c9600480360360208110156102b957600080fd5b50356001600160a01b0316610626565b005b6101eb600480360360208110156102e157600080fd5b50356001600160a01b0316610696565b6101cf6004803603602081101561030757600080fd5b50356001600160a01b03166106b1565b61012e6106c6565b6102c96004803603604081101561033557600080fd5b506001600160a01b038135169060200135610727565b6101cf6004803603604081101561036157600080fd5b506001600160a01b038135169060200135610781565b6101cf6004803603604081101561038d57600080fd5b506001600160a01b0381351690602001356107ef565b6101eb600480360360408110156103b957600080fd5b506001600160a01b0381358116916020013516610803565b6103d961082e565b604080516001600160a01b039092168252519081900360200190f35b6102c96004803603602081101561040b57600080fd5b50356001600160a01b0316610842565b6102c96004803603604081101561043157600080fd5b506001600160a01b03813516906020013561089a565b6102c96004803603602081101561045d57600080fd5b50356001600160a01b03166108f0565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f95780601f106104ce576101008083540402835291602001916104f9565b820191906000526020600020905b8154815290600101906020018083116104dc57829003601f168201915b5050505050905090565b600061051761051061095d565b8484610961565b5060015b92915050565b60025490565b60076020526000908152604090205460ff1681565b6000610549848484610a4d565b6105bf8461055561095d565b6105ba85604051806060016040528060288152602001611272602891396001600160a01b038a1660009081526001602052604081209061059361095d565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610b3c16565b610961565b5060019392505050565b60055460ff1690565b60006105176105df61095d565b846105ba85600160006105f061095d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610bd316565b3360009081526006602052604090205460ff16610672576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b60066020526000908152604090205460ff1681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f95780601f106104ce576101008083540402835291602001916104f9565b3360009081526006602052604090205460ff16610773576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b61077d8282610c34565b5050565b600061051761078e61095d565b846105ba856040518060600160405280602581526020016112e360259139600160006107b861095d565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610b3c16565b60006105176107fc61095d565b8484610a4d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60055461010090046001600160a01b031681565b3360009081526006602052604090205460ff1661088e576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b61089781610cee565b50565b3360009081526006602052604090205460ff166108e6576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b61077d8282610d08565b3360009081526006602052604090205460ff1661093c576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b3390565b6001600160a01b0383166109a65760405162461bcd60e51b81526004018080602001828103825260248152602001806112bf6024913960400191505060405180910390fd5b6001600160a01b0382166109eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806111e56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b604080516370a0823160e01b81526001600160a01b0385166004820152905130916370a08231916024808301926020929190829003018186803b158015610a9357600080fd5b505afa158015610aa7573d6000803e3d6000fd5b505050506040513d6020811015610abd57600080fd5b5051811115610afb576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b6001600160a01b03831660009081526007602052604090205460ff1615610b2c57610b27838383610d4d565b610b37565b610b37838383610ea9565b505050565b60008184841115610bcb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b90578181015183820152602001610b78565b50505050905090810190601f168015610bbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c2d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c8f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610ca2908263ffffffff610bd316565b6002556001600160a01b038216600090815260208190526040902054610cce908263ffffffff610bd316565b6001600160a01b0390921660009081526020819052604090209190915550565b6001600160a01b0316600090815260208190526040812055565b6001600160a01b038216610c8f5760405162461bcd60e51b815260040180806020018281038252602481526020018061122d6024913960400191505060405180910390fd5b6001600160a01b038316610d925760405162461bcd60e51b815260040180806020018281038252602581526020018061129a6025913960400191505060405180910390fd5b6001600160a01b038216610dd75760405162461bcd60e51b81526004018080602001828103825260238152602001806111c26023913960400191505060405180910390fd5b610e1a81604051806060016040528060268152602001611207602691396001600160a01b038616600090815260208190526040902054919063ffffffff610b3c16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610e4f908263ffffffff610bd316565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b038316610eee5760405162461bcd60e51b815260040180806020018281038252602581526020018061129a6025913960400191505060405180910390fd5b6001600160a01b038216610f335760405162461bcd60e51b81526004018080602001828103825260238152602001806111c26023913960400191505060405180910390fd5b6000610f576064610f4b84600163ffffffff61107f16565b9063ffffffff6110d816565b90506000610f6b838363ffffffff61111a16565b9050600061dead9050610fb783604051806060016040528060268152602001611207602691396001600160a01b038916600090815260208190526040902054919063ffffffff610b3c16565b6001600160a01b038088166000908152602081905260408082209390935590871681522054610fec908463ffffffff610bd316565b6001600160a01b038087166000908152602081905260408082209390935590831681522054611021908363ffffffff610bd316565b6001600160a01b0380831660009081526020818152604091829020939093558051868152905188831693928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3505050505050565b60008261108e5750600061051b565b8282028284828161109b57fe5b0414610c2d5760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b6000610c2d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061115c565b6000610c2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b3c565b600081836111ab5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b90578181015183820152602001610b78565b5060008385816111b757fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a205f776974686472617720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158204d8739f6cb11d8f1819076290c8bd2e760125cdd08fbef2138f2095d860ef08f64736f6c63430005110032
0x608060405260058054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790553480156200003957600080fd5b50604080518082018252600d81526c594644414f2e46494e414e434560981b602080830191825283518085019094526005845264594644414f60d81b908401528151919291601291620000909160039190620002a7565b508151620000a6906004906020850190620002a7565b506005805460ff191660ff9290921691909117905550620000e3905033620000cd6200013a565b60ff16600a0a6103e8026200014460201b60201c565b336000908152600660209081526040808320805460ff1990811660019081179092556007909352818420805484168217905560055461010090046001600160a01b0316845292208054909116909117905562000349565b60055460ff165b90565b6001600160a01b038216620001a0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620001bc816002546200024560201b62000bd31790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620001ef91839062000bd362000245821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620002a0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ea57805160ff19168380011785556200031a565b828001600101855582156200031a579182015b828111156200031a578251825591602001919060010190620002fd565b50620003289291506200032c565b5090565b6200014191905b8082111562000328576000815560010162000333565b61133c80620003596000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80638426e6c1116100ad578063dd62ed3e11610071578063dd62ed3e146103a3578063edc9af95146103d1578063f340fa01146103f5578063f3fef3a31461041b578063fd1f914a1461044757610121565b80638426e6c1146102f157806395d89b41146103175780639dc29fac1461031f578063a457c2d71461034b578063a9059cbb1461037757610121565b806323b872dd116100f457806323b872dd14610223578063313ce567146102595780633950935114610277578063696490a7146102a357806370a08231146102cb57610121565b806306fdde0314610126578063095ea7b3146101a357806318160ddd146101e357806318a5bbdc146101fd575b600080fd5b61012e61046d565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101cf600480360360408110156101b957600080fd5b506001600160a01b038135169060200135610503565b604080519115158252519081900360200190f35b6101eb610521565b60408051918252519081900360200190f35b6101cf6004803603602081101561021357600080fd5b50356001600160a01b0316610527565b6101cf6004803603606081101561023957600080fd5b506001600160a01b0381358116916020810135909116906040013561053c565b6102616105c9565b6040805160ff9092168252519081900360200190f35b6101cf6004803603604081101561028d57600080fd5b506001600160a01b0381351690602001356105d2565b6102c9600480360360208110156102b957600080fd5b50356001600160a01b0316610626565b005b6101eb600480360360208110156102e157600080fd5b50356001600160a01b0316610696565b6101cf6004803603602081101561030757600080fd5b50356001600160a01b03166106b1565b61012e6106c6565b6102c96004803603604081101561033557600080fd5b506001600160a01b038135169060200135610727565b6101cf6004803603604081101561036157600080fd5b506001600160a01b038135169060200135610781565b6101cf6004803603604081101561038d57600080fd5b506001600160a01b0381351690602001356107ef565b6101eb600480360360408110156103b957600080fd5b506001600160a01b0381358116916020013516610803565b6103d961082e565b604080516001600160a01b039092168252519081900360200190f35b6102c96004803603602081101561040b57600080fd5b50356001600160a01b0316610842565b6102c96004803603604081101561043157600080fd5b506001600160a01b03813516906020013561089a565b6102c96004803603602081101561045d57600080fd5b50356001600160a01b03166108f0565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f95780601f106104ce576101008083540402835291602001916104f9565b820191906000526020600020905b8154815290600101906020018083116104dc57829003601f168201915b5050505050905090565b600061051761051061095d565b8484610961565b5060015b92915050565b60025490565b60076020526000908152604090205460ff1681565b6000610549848484610a4d565b6105bf8461055561095d565b6105ba85604051806060016040528060288152602001611272602891396001600160a01b038a1660009081526001602052604081209061059361095d565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610b3c16565b610961565b5060019392505050565b60055460ff1690565b60006105176105df61095d565b846105ba85600160006105f061095d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610bd316565b3360009081526006602052604090205460ff16610672576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6001600160a01b031660009081526020819052604090205490565b60066020526000908152604090205460ff1681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f95780601f106104ce576101008083540402835291602001916104f9565b3360009081526006602052604090205460ff16610773576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b61077d8282610c34565b5050565b600061051761078e61095d565b846105ba856040518060600160405280602581526020016112e360259139600160006107b861095d565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610b3c16565b60006105176107fc61095d565b8484610a4d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60055461010090046001600160a01b031681565b3360009081526006602052604090205460ff1661088e576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b61089781610cee565b50565b3360009081526006602052604090205460ff166108e6576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b61077d8282610d08565b3360009081526006602052604090205460ff1661093c576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b3390565b6001600160a01b0383166109a65760405162461bcd60e51b81526004018080602001828103825260248152602001806112bf6024913960400191505060405180910390fd5b6001600160a01b0382166109eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806111e56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b604080516370a0823160e01b81526001600160a01b0385166004820152905130916370a08231916024808301926020929190829003018186803b158015610a9357600080fd5b505afa158015610aa7573d6000803e3d6000fd5b505050506040513d6020811015610abd57600080fd5b5051811115610afb576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b6001600160a01b03831660009081526007602052604090205460ff1615610b2c57610b27838383610d4d565b610b37565b610b37838383610ea9565b505050565b60008184841115610bcb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b90578181015183820152602001610b78565b50505050905090810190601f168015610bbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c2d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c8f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610ca2908263ffffffff610bd316565b6002556001600160a01b038216600090815260208190526040902054610cce908263ffffffff610bd316565b6001600160a01b0390921660009081526020819052604090209190915550565b6001600160a01b0316600090815260208190526040812055565b6001600160a01b038216610c8f5760405162461bcd60e51b815260040180806020018281038252602481526020018061122d6024913960400191505060405180910390fd5b6001600160a01b038316610d925760405162461bcd60e51b815260040180806020018281038252602581526020018061129a6025913960400191505060405180910390fd5b6001600160a01b038216610dd75760405162461bcd60e51b81526004018080602001828103825260238152602001806111c26023913960400191505060405180910390fd5b610e1a81604051806060016040528060268152602001611207602691396001600160a01b038616600090815260208190526040902054919063ffffffff610b3c16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610e4f908263ffffffff610bd316565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b038316610eee5760405162461bcd60e51b815260040180806020018281038252602581526020018061129a6025913960400191505060405180910390fd5b6001600160a01b038216610f335760405162461bcd60e51b81526004018080602001828103825260238152602001806111c26023913960400191505060405180910390fd5b6000610f576064610f4b84600163ffffffff61107f16565b9063ffffffff6110d816565b90506000610f6b838363ffffffff61111a16565b9050600061dead9050610fb783604051806060016040528060268152602001611207602691396001600160a01b038916600090815260208190526040902054919063ffffffff610b3c16565b6001600160a01b038088166000908152602081905260408082209390935590871681522054610fec908463ffffffff610bd316565b6001600160a01b038087166000908152602081905260408082209390935590831681522054611021908363ffffffff610bd316565b6001600160a01b0380831660009081526020818152604091829020939093558051868152905188831693928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3505050505050565b60008261108e5750600061051b565b8282028284828161109b57fe5b0414610c2d5760405162461bcd60e51b81526004018080602001828103825260218152602001806112516021913960400191505060405180910390fd5b6000610c2d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061115c565b6000610c2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b3c565b600081836111ab5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b90578181015183820152602001610b78565b5060008385816111b757fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a205f776974686472617720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158204d8739f6cb11d8f1819076290c8bd2e760125cdd08fbef2138f2095d860ef08f64736f6c63430005110032