0x608060405234801561001057600080fd5b506040516115583803806115588339818101604052602081101561003357600080fd5b5051600061003f610136565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0383811691909117918290556040805163c89039c560e01b81529051929091169163c89039c591600480820192602092909190829003018186803b1580156100e557600080fd5b505afa1580156100f9573d6000803e3d6000fd5b505050506040513d602081101561010f57600080fd5b5051600280546001600160a01b0319166001600160a01b039092169190911790555061013a565b3390565b61140f806101496000396000f3fe6080604052600436106100a05760003560e01c80638da5cb5b116100645780638da5cb5b146103a15780638f32d59b146103d257806390316619146103fb578063c0c1cf5514610410578063e5fd3aeb1461043a578063f2fde38b1461044f576100a7565b80631c03a8ec146100ac5780635670dd48146101b1578063715018a6146102a3578063730d4376146102ba57806383240f83146102cf576100a7565b366100a757005b600080fd5b3480156100b857600080fd5b5061013c600480360360608110156100cf57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156100fe57600080fd5b82018360208201111561011057600080fd5b803590602001918460018302840111600160201b8311171561013157600080fd5b509092509050610482565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017657818101518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101bd57600080fd5b50610291600480360360808110156101d457600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561020357600080fd5b82018360208201111561021557600080fd5b803590602001918460018302840111600160201b8311171561023657600080fd5b919390929091602081019035600160201b81111561025357600080fd5b82018360208201111561026557600080fd5b803590602001918460018302840111600160201b8311171561028657600080fd5b5090925090506105ea565b60408051918252519081900360200190f35b3480156102af57600080fd5b506102b8610989565b005b3480156102c657600080fd5b5061013c610a2c565b3480156102db57600080fd5b506102f9600480360360208110156102f257600080fd5b5035610a50565b60405180868152602001856001600160a01b03168152602001846001600160a01b03168152602001831515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561036257818101518382015260200161034a565b50505050905090810190601f16801561038f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3480156103ad57600080fd5b506103b6610b19565b604080516001600160a01b039092168252519081900360200190f35b3480156103de57600080fd5b506103e7610b28565b604080519115158252519081900360200190f35b34801561040757600080fd5b506103b6610b4c565b34801561041c57600080fd5b5061013c6004803603602081101561043357600080fd5b5035610b5b565b34801561044657600080fd5b506103b6610f94565b34801561045b57600080fd5b506102b86004803603602081101561047257600080fd5b50356001600160a01b0316610fa3565b606061048c610b28565b6104dd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006060866001600160a01b0316868686604051808383808284376040519201945060009350909150508083038185875af1925050503d806000811461053f576040519150601f19603f3d011682016040523d82523d6000602084013e610544565b606091505b5091509150816105e057606061055982611008565b90508060405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a557818101518382015260200161058d565b50505050905090810190601f1680156105d25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9695505050505050565b60006001600160a01b038716610647576040805162461bcd60e51b815260206004820152601960248201527f4d696e696f6e3a3a696e76616c6964205f616374696f6e546f00000000000000604482015290519081900360640190fd5b60606040518060400160405280600881526020016736b4b734b7b71d1d60c11b81525084846040516020018084805190602001908083835b6020831061069e5780518252601f19909201916020918201910161067f565b6001836020036101000a03801982511681845116808217855250505050505090500183838082843780830192505050935050505060405160208183030381529060405290506000600160009054906101000a90046001600160a01b03166001600160a01b031663590f940b306000806000600260009054906101000a90046001600160a01b03168e600260009054906101000a90046001600160a01b03168a6040518963ffffffff1660e01b815260040180896001600160a01b03168152602001888152602001878152602001868152602001856001600160a01b03168152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107ce5781810151838201526020016107b6565b50505050905090810190601f1680156107fb5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b505050506040513d602081101561084b57600080fd5b505160008181526003602081905260409091208a81556001810180546001600160a01b038e166001600160a01b03199182161790915560028201805460ff60a01b19921633179190911690559192506108a7908201898961128d565b5060008281526003602081905260409091208254815560018084015481830180546001600160a01b03199081166001600160a01b0393841617909155600280870180548287018054909416941693909317808355925460ff600160a01b918290041615150260ff60a01b199093169290921790558385018054869561093f94908601939082161561010002600019019091160461130b565b50506040805184815233602082015281517fe9e306cc0069882f06f093ec95c40360810b4100c76789c94ca44645345d217f93509081900390910190a15098975050505050505050565b610991610b28565b6109e2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6040518060400160405280600881526020016736b4b734b7b71d1d60c11b81525081565b6003602081815260009283526040928390208054600180830154600280850154968501805489516101009582161595909502600019011691909104601f810187900487028401870190985287835292966001600160a01b039182169691821695600160a01b90920460ff16949391830182828015610b0f5780601f10610ae457610100808354040283529160200191610b0f565b820191906000526020600020905b815481529060010190602001808311610af257829003601f168201915b5050505050905085565b6000546001600160a01b031690565b600080546001600160a01b0316610b3d61112c565b6001600160a01b031614905090565b6001546001600160a01b031681565b6000818152600360205260409020606090610b74611380565b6001546040805163b2643aab60e01b81526004810187905290516001600160a01b039092169163b2643aab9160248082019260c092909190829003018186803b158015610bc057600080fd5b505afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060c0811015610bf957600080fd5b5060018301549091506001600160a01b0316610c5c576040805162461bcd60e51b815260206004820152601b60248201527f4d696e696f6e3a3a696e76616c6964205f70726f706f73616c49640000000000604482015290519081900360640190fd5b60018054908301546001600160a01b0390811691161415610cbd576040805162461bcd60e51b8152602060048201526016602482015275135a5b9a5bdb8e8e9a5b9d985b1a59081d185c99d95d60521b604482015290519081900360640190fd5b6002820154600160a01b900460ff1615610d1e576040805162461bcd60e51b815260206004820152601760248201527f4d696e696f6e3a3a616374696f6e206578656375746564000000000000000000604482015290519081900360640190fd5b6040810151610d74576040805162461bcd60e51b815260206004820152601b60248201527f4d696e696f6e3a3a70726f706f73616c206e6f74207061737365640000000000604482015290519081900360640190fd5b6000848152600360205260408082206002908101805460ff60a01b1916600160a01b179055600154905485548351630cf20cc960e01b81526001600160a01b03928316600482015260248101919091529251911692630cf20cc9926044808201939182900301818387803b158015610deb57600080fd5b505af1158015610dff573d6000803e3d6000fd5b5050600254845460408051632e1a7d4d60e01b81526004810192909252516001600160a01b039092169350632e1a7d4d925060248082019260009290919082900301818387803b158015610e5257600080fd5b505af1158015610e66573d6000803e3d6000fd5b50505050600060608360010160009054906101000a90046001600160a01b03166001600160a01b03168460000154856003016040518082805460018160011615610100020316600290048015610ef35780601f10610ed1576101008083540402835291820191610ef3565b820191906000526020600020905b815481529060010190602001808311610edf575b505091505060006040518083038185875af1925050503d8060008114610f35576040519150601f19603f3d011682016040523d82523d6000602084013e610f3a565b606091505b509150915081610f4f57606061055982611008565b6040805187815233602082015281517f78a7d64f64ef6891bedfc1b6854447113cca07ace8747b8a6cf32a0fd5a80b17929181900390910190a193505050505b919050565b6002546001600160a01b031681565b610fab610b28565b610ffc576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61100581611130565b50565b606060448251101561104e575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006020820152610f8f565b606061105f836004808651036111d0565b905080806020019051602081101561107657600080fd5b8101908080516040519392919084600160201b82111561109557600080fd5b9083019060208201858111156110aa57600080fd5b8251600160201b8111828201881017156110c357600080fd5b82525081516020918201929091019080838360005b838110156110f05781810151838201526020016110d8565b50505050905090810190601f16801561111d5780820380516001836020036101000a031916815260200191505b50604052505050915050919050565b3390565b6001600160a01b0381166111755760405162461bcd60e51b81526004018080602001828103825260268152602001806113b46026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60608183018451101561121f576040805162461bcd60e51b815260206004820152601260248201527152656164206f7574206f6620626f756e647360701b604482015290519081900360640190fd5b60608215801561123a57604051915060208201604052611284565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561127357805183526020928301920161125b565b5050858452601f01601f1916604052505b50949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112ce5782800160ff198235161785556112fb565b828001600101855582156112fb579182015b828111156112fb5782358255916020019190600101906112e0565b5061130792915061139e565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134457805485556112fb565b828001600101855582156112fb57600052602060002091601f016020900482015b828111156112fb578254825591600101919060010190611365565b6040518060c001604052806006906020820280368337509192915050565b5b80821115611307576000815560010161139f56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212205a5050886f770cb89827c9575b180dcb1c17ddfa516c75c6d2a0ee06a8de2c7764736f6c634300070000330000000000000000000000008f56682a50becb1df2fb8136954f2062871bc7fc