//
0x608060405234801561001057600080fd5b506100226001600160e01b0361002716565b610119565b61003a60ff6001600160e01b0361003d16565b50565b603354600090610100900460ff16156100b5578160ff1660011480156100725750610070306001600160e01b0361011316565b155b6100ad5760405162461bcd60e51b815260040180806020018281038252602e815260200180610f38602e913960400191505060405180910390fd5b50600061010e565b60335460ff8084169116106100fb5760405162461bcd60e51b815260040180806020018281038252602e815260200180610f38602e913960400191505060405180910390fd5b506033805460ff191660ff831617905560015b919050565b3b151590565b610e10806101286000396000f3fe608060405234801561001057600080fd5b50600436106100f15760003560e01c80630b622ab2146100f65780631f7af3c31461011a57806331f7d9641461012257806346ad34d91461012a5780634b64f224146101445780634e5c99571461014c57806360bf03ff14610154578063614d2ab61461015c57806379ba50971461018a5780638129fc1c146101925780638da5cb5b1461019a5780638f32d59b146101a257806390107afe146101be578063a20baee6146101ec578063a3f4df7e146101f4578063b1097a2c14610271578063b140384b1461029d578063e30c3978146102a5578063f2fde38b146102ad575b600080fd5b6100fe6102d3565b604080516001600160a01b039092168252519081900360200190f35b6100fe6102e2565b6100fe6102f1565b6101326102f6565b60408051918252519081900360200190f35b6101326103d0565b6101326103d6565b6101326103dc565b6101886004803603604081101561017257600080fd5b506001600160a01b0381351690602001356103e2565b005b610188610470565b6101886104cb565b6100fe610543565b6101aa610552565b604080519115158252519081900360200190f35b610188600480360360408110156101d457600080fd5b506001600160a01b0381358116916020013516610563565b61013261065c565b6101fc610668565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023657818101518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101886004803603604081101561028757600080fd5b506001600160a01b038135169060200135610695565b610132610864565b6100fe61086a565b610188600480360360208110156102c357600080fd5b50356001600160a01b0316610879565b6037546001600160a01b031681565b6036546001600160a01b031681565b600081565b600061030061091e565b60345461030f575060006103cd565b600061033860345461032c6039544261096990919063ffffffff16565b9063ffffffff6109b416565b42603955603854909150610352908263ffffffff610a0d16565b6038819055603554101561039557600061037960355460385461096990919063ffffffff16565b905061038b828263ffffffff61096916565b6035546038559150505b60385460408051918252517f033068abf93bdec23e781d0a3b3f3e688bfa8471c68b629ad68652cdc63a6e499181900360200190a190505b90565b60345481565b60355481565b60395481565b6103ea61091e565b6036546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561044057600080fd5b505af1158015610454573d6000803e3d6000fd5b505050506040513d602081101561046a57600080fd5b50505050565b338061047a61086a565b6001600160a01b0316146104bf5760405162461bcd60e51b8152600401808060200182810382526029815260200180610d206029913960400191505060405180910390fd5b6104c881610a65565b50565b60006104d76001610abf565b905080156104ef576033805461ff0019166101001790555b6104f7610b8c565b4260395580156104c8576033805461ff0019169055604080516001815290517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989181900360200190a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b61056b610552565b6105aa576040805162461bcd60e51b81526020600482018190526024820152600080516020610d98833981519152604482015290519081900360640190fd5b6105b382610bcf565b6105bc81610bcf565b603680546001600160a01b038085166001600160a01b03199283168117909355603780549185169190921617905560408051918252517fb0c89119a7c10e4c2d02306921ba368ac83d0e4b302337916017485c2791bec59181900360200190a1604080516001600160a01b038316815290517f45c53611bc8ba9e11f4f8173bda9e3faf89c395ddb83f9a55230b156828db3159181900360200190a15050565b670de0b6b3a764000081565b60405180604001604052806011815260200170436f6d6d756e69747949737375616e636560781b81525081565b61069d610552565b6106dc576040805162461bcd60e51b81526020600482018190526024820152600080516020610d98833981519152604482015290519081900360640190fd5b6106e582610bcf565b6036546001600160a01b0383811691161415806107025750603554155b1561082157603680546001600160a01b0319166001600160a01b0384811691909117918290556034839055600060385542603955604080516370a0823160e01b8152306004820152905192909116916370a0823191602480820192602092909190829003018186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d60208110156107a157600080fd5b505160358190556040805160008152602081019290925280517fb4d96b3a6638191d0f6aefa0fdc4d99af3592f4c97480e31feeb977723c63b539281900390910190a1604080516001600160a01b038416815290517fb0c89119a7c10e4c2d02306921ba368ac83d0e4b302337916017485c2791bec59181900360200190a15b603454604080519182526020820183905280517f9c48cb51924890884cf8b975b7bc0c4749aae2acb2429236437b73a96f460d089281900390910190a160345550565b60385481565b6001546001600160a01b031690565b610881610552565b6108c0576040805162461bcd60e51b81526020600482018190526024820152600080516020610d98833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556108e6610543565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6037546001600160a01b031633146109675760405162461bcd60e51b8152600401808060200182810382526023815260200180610db86023913960400191505060405180910390fd5b565b60006109ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c82565b90505b92915050565b6000826109c3575060006109ae565b828202828482816109d057fe5b04146109ab5760405162461bcd60e51b8152600401808060200182810382526021815260200180610d776021913960400191505060405180910390fd5b6000828201838110156109ab576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b600180546001600160a01b0319908116909155600080546001600160a01b03848116938216841783556040519116929183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b603354600090610100900460ff1615610b2e578160ff166001148015610aeb5750610ae930610d19565b155b610b265760405162461bcd60e51b815260040180806020018281038252602e815260200180610d49602e913960400191505060405180910390fd5b506000610b87565b60335460ff808416911610610b745760405162461bcd60e51b815260040180806020018281038252602e815260200180610d49602e913960400191505060405180910390fd5b506033805460ff191660ff831617905560015b919050565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350565b6001600160a01b038116610c2a576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b80610c7e576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b5050565b60008184841115610d115760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cd6578181015183820152602001610cbe565b50505050905090810190601f168015610d035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b3b15159056fe4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6d6d756e69747949737375616e63653a2063616c6c6572206973206e6f74205350a2646970667358221220a59a2a4bf3dfbcd717c8d74f58f0a190f1fb72262a4fbd8c719e8bb3075d309964736f6c634300060b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564