60806040523480156200001157600080fd5b506200001d3362000089565b60408051808201909152600b8082526a27b931ba37bbb7173bba3360a91b60209092019182526200005191600391620000d9565b50604080518082019091526004808252634f52435360e01b60209092019182526200007d9181620000d9565b506000600155620001bc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620000e7906200017f565b90600052602060002090601f0160209004810192826200010b576000855562000156565b82601f106200012657805160ff191683800117855562000156565b8280016001018555821562000156579182015b828111156200015657825182559160200191906001019062000139565b506200016492915062000168565b5090565b5b8082111562000164576000815560010162000169565b600181811c908216806200019457607f821691505b60208210811415620001b657634e487b7160e01b600052602260045260246000fd5b50919050565b6115e580620001cc6000396000f3fe6080604052600436106101265760003560e01c806301ffc9a71461012b57806306fdde0314610160578063081812fc14610182578063095ea7b3146101ba5780630f2cdd6c146101dc57806318160ddd146101ff57806323b872dd1461021857806332cb6b0c146102385780633ccfd60b1461024e57806341cda2031461026357806342842e0e146102785780635b70ea9f146102985780636352211e146102ad57806370a08231146102cd578063715018a6146102ed5780638d859f3e146103025780638da5cb5b1461031d57806395d89b4114610332578063a0712d6814610347578063a22cb4651461035a578063b88d4fde1461037a578063c87b56dd1461039a578063e8a3d485146103ba578063e985e9c5146103cf578063f2fde38b14610418575b600080fd5b34801561013757600080fd5b5061014b6101463660046112df565b610438565b60405190151581526020015b60405180910390f35b34801561016c57600080fd5b5061017561048a565b60405161015791906113da565b34801561018e57600080fd5b506101a261019d366004611319565b61051c565b6040516001600160a01b039091168152602001610157565b3480156101c657600080fd5b506101da6101d53660046112b5565b610560565b005b3480156101e857600080fd5b506101f1601e81565b604051908152602001610157565b34801561020b57600080fd5b50600254600154036101f1565b34801561022457600080fd5b506101da610233366004611162565b610633565b34801561024457600080fd5b506101f1611a0a81565b34801561025a57600080fd5b506101da610643565b34801561026f57600080fd5b506101f1600a81565b34801561028457600080fd5b506101da610293366004611162565b6106ae565b3480156102a457600080fd5b506101da6106c9565b3480156102b957600080fd5b506101a26102c8366004611319565b6107ec565b3480156102d957600080fd5b506101f16102e8366004611114565b6107f7565b3480156102f957600080fd5b506101da61083c565b34801561030e57600080fd5b506101f166038d7ea4c6800081565b34801561032957600080fd5b506101a2610877565b34801561033e57600080fd5b50610175610886565b6101da610355366004611319565b610895565b34801561036657600080fd5b506101da610375366004611279565b61099b565b34801561038657600080fd5b506101da61039536600461119e565b610a31565b3480156103a657600080fd5b506101756103b5366004611319565b610a7b565b3480156103c657600080fd5b50610175610b00565b3480156103db57600080fd5b5061014b6103ea36600461112f565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b34801561042457600080fd5b506101da610433366004611114565b610b20565b60006301ffc9a760e01b6001600160e01b03198316148061046957506380ac58cd60e01b6001600160e01b03198316145b806104845750635b5e139f60e01b6001600160e01b03198316145b92915050565b606060038054610499906114a7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906114a7565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610bc0565b610544576040516333d1c03960e21b815260040160405180910390fd5b506000908152600760205260409020546001600160a01b031690565b600061056b82610be8565b9050806001600160a01b0316836001600160a01b031614156105a05760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b038216146105d7576105ba81336103ea565b6105d7576040516367d9dca160e11b815260040160405180910390fd5b60008281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61063e838383610c49565b505050565b3361064c610877565b6001600160a01b03161461067b5760405162461bcd60e51b8152600401610672906113ed565b60405180910390fd5b6040514790339082156108fc029083906000818181858888f193505050501580156106aa573d6000803e3d6000fd5b5050565b61063e83838360405180602001604052806000815250610a31565b33600a610bb86106dc6002546001540390565b10156106e65750600a5b6103e86106f66002546001540390565b10156107005750601e5b609661070f6002546001540390565b1015610719575060965b611a0a8161072a6002546001540390565b6107349190611444565b11156107525760405162461bcd60e51b815260040161067290611422565b6001600160a01b03821660009081526006602052604090205460c01c156107b75760405162461bcd60e51b8152602060048201526019602482015278119c995948135a5b9d08185b1c9958591e4818db185a5b5959603a1b6044820152606401610672565b6001600160a01b038216600090815260066020526040902080546001600160c01b0316600160c01b1790556106aa8282610de7565b600061048482610be8565b600081610817576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600660205260409020546001600160401b031690565b33610845610877565b6001600160a01b03161461086b5760405162461bcd60e51b8152600401610672906113ed565b6108756000610e01565b565b6000546001600160a01b031690565b606060048054610499906114a7565b33611a0a826108a76002546001540390565b6108b19190611444565b11156108cf5760405162461bcd60e51b815260040161067290611422565b601e6108fd826001600160a01b03166000908152600660205260409081902054901c6001600160401b031690565b11156109425760405162461bcd60e51b815260206004820152601460248201527304d6178207065722057616c6c65742069732033360641b6044820152606401610672565b3461095466038d7ea4c680008461145c565b11156109915760405162461bcd60e51b815260206004820152600c60248201526b56616c756520746f206c6f7760a01b6044820152606401610672565b6106aa8183610de7565b6001600160a01b0382163314156109c55760405163b06307db60e01b815260040160405180910390fd5b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610a3c848484610c49565b6001600160a01b0383163b15610a7557610a5884848484610e51565b610a75576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060610a8682610bc0565b610aa357604051630a14c4b560e41b815260040160405180910390fd5b6000610aad610f48565b9050805160001415610ace5760405180602001604052806000815250610af9565b80610ad884610f68565b604051602001610ae992919061135e565b6040516020818303038152906040525b9392505050565b606060405180606001604052806035815260200161157b60359139905090565b33610b29610877565b6001600160a01b031614610b4f5760405162461bcd60e51b8152600401610672906113ed565b6001600160a01b038116610bb45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610672565b610bbd81610e01565b50565b600060015482108015610484575050600090815260056020526040902054600160e01b161590565b600081600154811015610c3057600081815260056020526040902054600160e01b8116610c2e575b80610af9575060001901600081815260056020526040902054610c10565b505b604051636f96cda160e11b815260040160405180910390fd5b6000610c5482610be8565b9050836001600160a01b0316816001600160a01b031614610c875760405162a1148160e81b815260040160405180910390fd5b6000828152600760205260408120546001600160a01b0390811691908616331480610cb75750610cb786336103ea565b80610cca57506001600160a01b03821633145b905080610cea57604051632ce44b5f60e11b815260040160405180910390fd5b84610d0857604051633a954ecd60e21b815260040160405180910390fd5b8115610d2b57600084815260076020526040902080546001600160a01b03191690555b6001600160a01b03868116600090815260066020908152604080832080546000190190559288168252828220805460010190558682526005905220600160e11b4260a01b871781179091558316610db05760018401600081815260056020526040902054610dae576001548114610dae5760008181526005602052604090208490555b505b83856001600160a01b0316876001600160a01b031660008051602061155b83398151915260405160405180910390a4505050505050565b6106aa828260405180602001604052806000815250610fb7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290610e8690339089908890889060040161139d565b602060405180830381600087803b158015610ea057600080fd5b505af1925050508015610ed0575060408051601f3d908101601f19168201909252610ecd918101906112fc565b60015b610f2b573d808015610efe576040519150601f19603f3d011682016040523d82523d6000602084013e610f03565b606091505b508051610f23576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b606060405180606001604052806036815260200161152560369139905090565b604080516080810191829052607f0190826030600a8206018353600a90045b8015610fa557600183039250600a81066030018353600a9004610f87565b50819003601f19909101908152919050565b60015483610fd757604051622e076360e81b815260040160405180910390fd5b82610ff55760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b038416600081815260066020908152604080832080546001600160401b018902019055848352600590915290204260a01b86176001861460e11b1790558190818501903b156110b6575b60405182906001600160a01b0388169060009060008051602061155b833981519152908290a461107f6000878480600101955087610e51565b61109c576040516368d2bf6b60e11b815260040160405180910390fd5b8082106110465782600154146110b157600080fd5b6110e9565b5b6040516001830192906001600160a01b0388169060009060008051602061155b833981519152908290a48082106110b7575b50600155610a75600085838684565b80356001600160a01b038116811461110f57600080fd5b919050565b60006020828403121561112657600080fd5b610af9826110f8565b6000806040838503121561114257600080fd5b61114b836110f8565b9150611159602084016110f8565b90509250929050565b60008060006060848603121561117757600080fd5b611180846110f8565b925061118e602085016110f8565b9150604084013590509250925092565b600080600080608085870312156111b457600080fd5b6111bd856110f8565b93506111cb602086016110f8565b92506040850135915060608501356001600160401b03808211156111ee57600080fd5b818701915087601f83011261120257600080fd5b813581811115611214576112146114f8565b604051601f8201601f19908116603f0116810190838211818310171561123c5761123c6114f8565b816040528281528a602084870101111561125557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561128c57600080fd5b611295836110f8565b9150602083013580151581146112aa57600080fd5b809150509250929050565b600080604083850312156112c857600080fd5b6112d1836110f8565b946020939093013593505050565b6000602082840312156112f157600080fd5b8135610af98161150e565b60006020828403121561130e57600080fd5b8151610af98161150e565b60006020828403121561132b57600080fd5b5035919050565b6000815180845261134a81602086016020860161147b565b601f01601f19169290920160200192915050565b6000835161137081846020880161147b565b83519083019061138481836020880161147b565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113d090830184611332565b9695505050505050565b602081526000610af96020830184611332565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526008908201526714dbdb19081bdd5d60c21b604082015260600190565b60008219821115611457576114576114e2565b500190565b6000816000190483118215151615611476576114766114e2565b500290565b60005b8381101561149657818101518382015260200161147e565b83811115610a755750506000910152565b600181811c908216806114bb57607f821691505b602082108114156114dc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610bbd57600080fdfe697066733a2f2f516d646e4374514c6d564b3167793352745963375a703142614b38703574727a417a575a31723354447a514566672fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef697066733a2f2f516d6362785863756246626f324a724b656a714d34574b5344526838724573544b62543545367077484148396252a2646970667358221220437cc99094c7c2eb44de07f1192a43cf9b3989de3273bd3d0c27230d35380ceb64736f6c63430008070033