0x60806040526200001966038d7ea4c680006000196200013c565b62000027906000196200015f565b6006556040805180820190915260078152663835bd26a7a7a760c91b60208201526008906200005790826200022c565b506040805180820190915260078152663835bd26a7a7a760c91b60208201526009906200008590826200022c565b50600a805460ff19166009179055348015620000a057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600081815260016020908152604080832094909455925166038d7ea4c680008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620002f8565b6000826200015a57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200018157634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001b257607f821691505b602082108103620001d357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022757600081815260208120601f850160051c81016020861015620002025750805b601f850160051c820191505b8181101562000223578281556001016200020e565b5050505b505050565b81516001600160401b0381111562000248576200024862000187565b62000260816200025984546200019d565b84620001d9565b602080601f8311600181146200029857600084156200027f5750858301515b600019600386901b1c1916600185901b17855562000223565b600085815260208120601f198616915b82811015620002c957888601518255948401946001909101908401620002a8565b5085821015620002e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61184d80620003086000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb14610263578063cba0e99614610276578063dd62ed3e146102a2578063f2cc0c18146102db578063f2fde38b146102ee578063f84354f11461030157600080fd5b806370a0823114610212578063715018a6146102255780638da5cb5b1461022d57806395d89b4114610248578063a457c2d71461025057600080fd5b806323b872dd116100ff57806323b872dd146101b15780632d838119146101c4578063313ce567146101d757806339509351146101ec5780634549b039146101ff57600080fd5b8063053ab1821461013c57806306fdde0314610151578063095ea7b31461016f57806313114a9d1461019257806318160ddd146101a4575b600080fd5b61014f61014a366004611535565b610314565b005b610159610401565b604051610166919061154e565b60405180910390f35b61018261017d3660046115b8565b610493565b6040519015158152602001610166565b6007545b604051908152602001610166565b66038d7ea4c68000610196565b6101826101bf3660046115e2565b6104aa565b6101966101d2366004611535565b610513565b600a5460405160ff9091168152602001610166565b6101826101fa3660046115b8565b610597565b61019661020d36600461161e565b6105cd565b610196610220366004611653565b61065d565b61014f6106bc565b6000546040516001600160a01b039091168152602001610166565b610159610730565b61018261025e3660046115b8565b61073f565b6101826102713660046115b8565b61078e565b610182610284366004611653565b6001600160a01b031660009081526004602052604090205460ff1690565b6101966102b036600461166e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61014f6102e9366004611653565b61079b565b61014f6102fc366004611653565b6108e8565b61014f61030f366004611653565b6109d2565b3360008181526004602052604090205460ff161561038e5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b600061039983610b82565b505050506001600160a01b0383166000908152600160205260409020549091506103c39082610bce565b6001600160a01b0383166000908152600160205260409020556006546103e99082610bce565b6006556007546103f99084610c10565b600755505050565b606060088054610410906116a1565b80601f016020809104026020016040519081016040528092919081815260200182805461043c906116a1565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a0338484610c6f565b5060015b92915050565b60006104b7848484610d93565b6105098433610504856040518060600160405280602881526020016117cb602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610fbf565b610c6f565b5060019392505050565b600060065482111561057a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610385565b6000610584610ff9565b9050610590838261101c565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104a09185906105049086610c10565b600066038d7ea4c680008311156106265760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610385565b8161064457600061063684610b82565b509294506104a49350505050565b600061064f84610b82565b509194506104a49350505050565b6001600160a01b03811660009081526004602052604081205460ff161561069a57506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104a490610513565b6000546001600160a01b031633146106e65760405162461bcd60e51b8152600401610385906116db565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060098054610410906116a1565b60006104a03384610504856040518060600160405280602581526020016117f3602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190610fbf565b60006104a0338484610d93565b6000546001600160a01b031633146107c55760405162461bcd60e51b8152600401610385906116db565b6001600160a01b03811660009081526004602052604090205460ff16156108285760405162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b6044820152606401610385565b6001600160a01b03811660009081526001602052604090205415610882576001600160a01b03811660009081526001602052604090205461086890610513565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b031633146109125760405162461bcd60e51b8152600401610385906116db565b6001600160a01b0381166109775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610385565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109fc5760405162461bcd60e51b8152600401610385906116db565b6001600160a01b03811660009081526004602052604090205460ff16610a5e5760405162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b6044820152606401610385565b60005b600554811015610b7e57816001600160a01b031660058281548110610a8857610a88611710565b6000918252602090912001546001600160a01b031603610b6c5760058054610ab29060019061173c565b81548110610ac257610ac2611710565b600091825260209091200154600580546001600160a01b039092169183908110610aee57610aee611710565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610b4657610b4661174f565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610b7681611765565b915050610a61565b5050565b6000806000806000806000610b968861105e565b915091506000610ba4610ff9565b90506000806000610bb68c8686611091565b919e909d50909b509599509397509395505050505050565b600061059083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fbf565b600080610c1d838561177e565b9050838110156105905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610385565b6001600160a01b038316610cd15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610385565b6001600160a01b038216610d325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610385565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610df75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610385565b6001600160a01b038216610e595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610385565b60008111610ebb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610385565b6001600160a01b03831660009081526004602052604090205460ff168015610efc57506001600160a01b03821660009081526004602052604090205460ff16155b15610f1157610f0c8383836110cd565b505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610f5257506001600160a01b03821660009081526004602052604090205460ff165b15610f6257610f0c8383836111e6565b6001600160a01b03831660009081526004602052604090205460ff16158015610fa457506001600160a01b03821660009081526004602052604090205460ff16155b15610fb457610f0c83838361128c565b610f0c83838361128c565b60008184841115610fe35760405162461bcd60e51b8152600401610385919061154e565b506000610ff0848661173c565b95945050505050565b60008060006110066112cd565b9092509050611015828261101c565b9250505090565b600061059083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611461565b60008080611078600961107286606461101c565b9061148f565b905060006110868583610bce565b959194509092505050565b60008080806110a0878661148f565b905060006110ae878761148f565b905060006110bc8383610bce565b929992985090965090945050505050565b60008060008060006110de86610b82565b6001600160a01b038d166000908152600260205260409020549499509297509095509350915061110e9087610bce565b6001600160a01b03891660009081526002602090815260408083209390935560019052205461113d9086610bce565b6001600160a01b03808a16600090815260016020526040808220939093559089168152205461116c9085610c10565b6001600160a01b03881660009081526001602052604090205561118f8382611511565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111d491815260200190565b60405180910390a35050505050505050565b60008060008060006111f786610b82565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506112279086610bce565b6001600160a01b03808a16600090815260016020908152604080832094909455918a1681526002909152205461125d9083610c10565b6001600160a01b03881660009081526002602090815260408083209390935560019052205461116c9085610c10565b600080600080600061129d86610b82565b6001600160a01b038d166000908152600160205260409020549499509297509095509350915061113d9086610bce565b600654600090819066038d7ea4c68000825b6005548110156114285782600160006005848154811061130157611301611710565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061136c575081600260006005848154811061134557611345611710565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156113865750506006549366038d7ea4c680009350915050565b6113cc60016000600584815481106113a0576113a0611710565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490610bce565b925061141460026000600584815481106113e8576113e8611710565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390610bce565b91508061142081611765565b9150506112df565b5060065461143d9066038d7ea4c6800061101c565b8210156114585750506006549266038d7ea4c6800092509050565b90939092509050565b600081836114825760405162461bcd60e51b8152600401610385919061154e565b506000610ff08486611791565b6000826000036114a1575060006104a4565b60006114ad83856117b3565b9050826114ba8583611791565b146105905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610385565b60065461151e9083610bce565b60065560075461152e9082610c10565b6007555050565b60006020828403121561154757600080fd5b5035919050565b600060208083528351808285015260005b8181101561157b5785810183015185820160400152820161155f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146115b357600080fd5b919050565b600080604083850312156115cb57600080fd5b6115d48361159c565b946020939093013593505050565b6000806000606084860312156115f757600080fd5b6116008461159c565b925061160e6020850161159c565b9150604084013590509250925092565b6000806040838503121561163157600080fd5b823591506020830135801515811461164857600080fd5b809150509250929050565b60006020828403121561166557600080fd5b6105908261159c565b6000806040838503121561168157600080fd5b61168a8361159c565b91506116986020840161159c565b90509250929050565b600181811c908216806116b557607f821691505b6020821081036116d557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156104a4576104a4611726565b634e487b7160e01b600052603160045260246000fd5b60006001820161177757611777611726565b5060010190565b808201808211156104a4576104a4611726565b6000826117ae57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104a4576104a461172656fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206bfd936be929b376d8dcac718cc0536271739e5878e75d081df57bb95fd35fc464736f6c63430008110033