0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80637a43e23f116100a257806395d89b411161007157806395d89b41146102f6578063a457c2d7146102fe578063a9059cbb1461032a578063dd62ed3e14610356578063f2fde38b146103845761010b565b80637a43e23f146102815780638b5a6a08146102a45780638da5cb5b146102ca5780638e27d7d7146102ee5761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461022557806370a0823114610251578063715018a6146102775761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103aa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610440565b604080519115158252519081900360200190f35b6101d56104a7565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356104ad565b6101d561060c565b6101b96004803603604081101561023b57600080fd5b506001600160a01b038135169060200135610612565b6101d56004803603602081101561026757600080fd5b50356001600160a01b03166106ab565b61027f6106d9565b005b6101d56004803603604081101561029757600080fd5b508035906020013561078d565b61027f600480360360208110156102ba57600080fd5b50356001600160a01b03166108a8565b6102d2610966565b604080516001600160a01b039092168252519081900360200190f35b6102d2610975565b610118610984565b6101b96004803603604081101561031457600080fd5b506001600160a01b0381351690602001356109e5565b6101b96004803603604081101561034057600080fd5b506001600160a01b038135169060200135610ad4565b6101d56004803603604081101561036c57600080fd5b506001600160a01b0381358116916020013516610bcc565b61027f6004803603602081101561039a57600080fd5b50356001600160a01b0316610bf7565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104365780601f1061040b57610100808354040283529160200191610436565b820191906000526020600020905b81548152906001019060200180831161041957829003601f168201915b5050505050905090565b336000818152600b602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60085490565b6000826001600160a01b0381166104c357600080fd5b6001600160a01b0381163014156104d957600080fd5b6001600160a01b0385166000908152600b6020908152604080832033845290915290205461050d908463ffffffff610d0216565b6001600160a01b0386166000908152600b6020908152604080832033845290915281209190915560095461054890859063ffffffff610d4b16565b6001600160a01b0387166000908152600a6020526040902054909150610574908263ffffffff610d0216565b6001600160a01b038088166000908152600a602052604080822093909355908716815220546105a9908263ffffffff610da416565b6001600160a01b038087166000818152600a602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b60055490565b336000908152600b602090815260408083206001600160a01b0386168452909152812054610646908363ffffffff610da416565b336000818152600b602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6009546001600160a01b0382166000908152600a602052604081205490916104a1919063ffffffff610dfe16565b6106e1610e40565b6006546001600160a01b03908116911614610743576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6007546000906001600160a01b031633146107a757600080fd5b816107ed57600854604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a2506008546104a1565b60008212156108195761081161080283610e44565b6008549063ffffffff610d0216565b600855610830565b60085461082c908363ffffffff610da416565b6008555b6008546001600160801b03101561084d576001600160801b036008555b600854610863906601cdf1bdab3fff1990610dfe565b600955600854604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a25060085492915050565b6108b0610e40565b6006546001600160a01b03908116911614610912576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f0e6961f1a1afb87eaf51fd64f22ddc10062e23aa7838eac5d0bdf140bfd389729181900360200190a150565b6006546001600160a01b031690565b6007546001600160a01b031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104365780601f1061040b57610100808354040283529160200191610436565b336000908152600b602090815260408083206001600160a01b0386168452909152812054808310610a3957336000908152600b602090815260408083206001600160a01b0388168452909152812055610a6e565b610a49818463ffffffff610d0216565b336000908152600b602090815260408083206001600160a01b03891684529091529020555b336000818152600b602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000826001600160a01b038116610aea57600080fd5b6001600160a01b038116301415610b0057600080fd5b6000610b1760095485610d4b90919063ffffffff16565b336000908152600a6020526040902054909150610b3a908263ffffffff610d0216565b336000908152600a6020526040808220929092556001600160a01b03871681522054610b6c908263ffffffff610da416565b6001600160a01b0386166000818152600a60209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b610bff610e40565b6006546001600160a01b03908116911614610c61576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610ca65760405162461bcd60e51b8152600401808060200182810382526026815260200180610f6e6026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d4483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6c565b9392505050565b600082610d5a575060006104a1565b82820282848281610d6757fe5b0414610d445760405162461bcd60e51b8152600401808060200182810382526021815260200180610f946021913960400191505060405180910390fd5b600082820183811015610d44576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610d4483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f03565b3390565b6000600160ff1b821415610e5757600080fd5b60008212610e6557816104a1565b5060000390565b60008184841115610efb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ec0578181015183820152602001610ea8565b50505050905090810190601f168015610eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f525760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ec0578181015183820152602001610ea8565b506000838581610f5e57fe5b0495945050505050565b60055556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220bbc03ec276aa4150ead349879661fb6f79213e9b702b0a2feb19bcfe2699d43364736f6c63430006060033
0x60806040523480156200001157600080fd5b506040805180820182526004808252631653541360e21b602080840182815285518087019096529285528401528151919291620000519160039162000271565b5080516200006790600490602084019062000271565b50506012600555506000620000846001600160e01b036200016f16565b600680546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000e960096200017460201b62000f681760201c565b6603e871b540c0006008908155336000908152600a602090815260409091206601cdf1bdab3fff199081905591546200012c929162000dfe62000179821b17901c565b600955600854604080519182525133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a362000313565b335b90565b600555565b6000620001c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620001ca60201b60201c565b9392505050565b600081836200025a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200021e57818101518382015260200162000204565b50505050905090810190601f1680156200024c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200026757fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b457805160ff1916838001178555620002e4565b82800160010185558215620002e4579182015b82811115620002e4578251825591602001919060010190620002c7565b50620002f2929150620002f6565b5090565b6200017191905b80821115620002f25760008155600101620002fd565b610fea80620003236000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637a43e23f116100a257806395d89b411161007157806395d89b41146102f6578063a457c2d7146102fe578063a9059cbb1461032a578063dd62ed3e14610356578063f2fde38b146103845761010b565b80637a43e23f146102815780638b5a6a08146102a45780638da5cb5b146102ca5780638e27d7d7146102ee5761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461022557806370a0823114610251578063715018a6146102775761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103aa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610440565b604080519115158252519081900360200190f35b6101d56104a7565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356104ad565b6101d561060c565b6101b96004803603604081101561023b57600080fd5b506001600160a01b038135169060200135610612565b6101d56004803603602081101561026757600080fd5b50356001600160a01b03166106ab565b61027f6106d9565b005b6101d56004803603604081101561029757600080fd5b508035906020013561078d565b61027f600480360360208110156102ba57600080fd5b50356001600160a01b03166108a8565b6102d2610966565b604080516001600160a01b039092168252519081900360200190f35b6102d2610975565b610118610984565b6101b96004803603604081101561031457600080fd5b506001600160a01b0381351690602001356109e5565b6101b96004803603604081101561034057600080fd5b506001600160a01b038135169060200135610ad4565b6101d56004803603604081101561036c57600080fd5b506001600160a01b0381358116916020013516610bcc565b61027f6004803603602081101561039a57600080fd5b50356001600160a01b0316610bf7565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104365780601f1061040b57610100808354040283529160200191610436565b820191906000526020600020905b81548152906001019060200180831161041957829003601f168201915b5050505050905090565b336000818152600b602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60085490565b6000826001600160a01b0381166104c357600080fd5b6001600160a01b0381163014156104d957600080fd5b6001600160a01b0385166000908152600b6020908152604080832033845290915290205461050d908463ffffffff610d0216565b6001600160a01b0386166000908152600b6020908152604080832033845290915281209190915560095461054890859063ffffffff610d4b16565b6001600160a01b0387166000908152600a6020526040902054909150610574908263ffffffff610d0216565b6001600160a01b038088166000908152600a602052604080822093909355908716815220546105a9908263ffffffff610da416565b6001600160a01b038087166000818152600a602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b60055490565b336000908152600b602090815260408083206001600160a01b0386168452909152812054610646908363ffffffff610da416565b336000818152600b602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6009546001600160a01b0382166000908152600a602052604081205490916104a1919063ffffffff610dfe16565b6106e1610e40565b6006546001600160a01b03908116911614610743576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6007546000906001600160a01b031633146107a757600080fd5b816107ed57600854604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a2506008546104a1565b60008212156108195761081161080283610e44565b6008549063ffffffff610d0216565b600855610830565b60085461082c908363ffffffff610da416565b6008555b6008546001600160801b03101561084d576001600160801b036008555b600854610863906601cdf1bdab3fff1990610dfe565b600955600854604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a25060085492915050565b6108b0610e40565b6006546001600160a01b03908116911614610912576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f0e6961f1a1afb87eaf51fd64f22ddc10062e23aa7838eac5d0bdf140bfd389729181900360200190a150565b6006546001600160a01b031690565b6007546001600160a01b031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104365780601f1061040b57610100808354040283529160200191610436565b336000908152600b602090815260408083206001600160a01b0386168452909152812054808310610a3957336000908152600b602090815260408083206001600160a01b0388168452909152812055610a6e565b610a49818463ffffffff610d0216565b336000908152600b602090815260408083206001600160a01b03891684529091529020555b336000818152600b602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000826001600160a01b038116610aea57600080fd5b6001600160a01b038116301415610b0057600080fd5b6000610b1760095485610d4b90919063ffffffff16565b336000908152600a6020526040902054909150610b3a908263ffffffff610d0216565b336000908152600a6020526040808220929092556001600160a01b03871681522054610b6c908263ffffffff610da416565b6001600160a01b0386166000818152600a60209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b610bff610e40565b6006546001600160a01b03908116911614610c61576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610ca65760405162461bcd60e51b8152600401808060200182810382526026815260200180610f6e6026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d4483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6c565b9392505050565b600082610d5a575060006104a1565b82820282848281610d6757fe5b0414610d445760405162461bcd60e51b8152600401808060200182810382526021815260200180610f946021913960400191505060405180910390fd5b600082820183811015610d44576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610d4483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f03565b3390565b6000600160ff1b821415610e5757600080fd5b60008212610e6557816104a1565b5060000390565b60008184841115610efb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ec0578181015183820152602001610ea8565b50505050905090810190601f168015610eed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f525760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ec0578181015183820152602001610ea8565b506000838581610f5e57fe5b0495945050505050565b60055556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220bbc03ec276aa4150ead349879661fb6f79213e9b702b0a2feb19bcfe2699d43364736f6c63430006060033