0x60806040523480156200001157600080fd5b506040518060400160405280600e81526020016d13585e5848141c9959995c9c995960921b815250604051806040016040528060048152602001631354149160e21b81525081600390816200006791906200035a565b5060046200007682826200035a565b5050600580546001600160a01b03191633908117909155620000bf91506200009c601290565b620000a990600a6200053b565b620000b990630bebc20062000553565b62000140565b60408051808201909152601981527f4d61796120507265666572726564204d50524420546f6b656e0000000000000060208201526006906200010290826200035a565b5060408051808201909152601081526f1552c8119a5b985b98da585b08131d1960821b60208201526007906200013990826200035a565b5062000583565b6001600160a01b038216620001705760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b6200017e6000838362000182565b5050565b6001600160a01b038316620001b1578060026000828254620001a591906200056d565b90915550620002259050565b6001600160a01b03831660009081526020819052604090205481811015620002065760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000167565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620002435760028054829003905562000262565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002a891815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002e057607f821691505b6020821081036200030157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200035557600081815260208120601f850160051c81016020861015620003305750805b601f850160051c820191505b8181101562000351578281556001016200033c565b5050505b505050565b81516001600160401b03811115620003765762000376620002b5565b6200038e81620003878454620002cb565b8462000307565b602080601f831160018114620003c65760008415620003ad5750858301515b600019600386901b1c1916600185901b17855562000351565b600085815260208120601f198616915b82811015620003f757888601518255948401946001909101908401620003d6565b5085821015620004165787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200047d57816000190482111562000461576200046162000426565b808516156200046f57918102915b93841c939080029062000441565b509250929050565b600082620004965750600162000535565b81620004a55750600062000535565b8160018114620004be5760028114620004c957620004e9565b600191505062000535565b60ff841115620004dd57620004dd62000426565b50506001821b62000535565b5060208310610133831016604e8410600b84101617156200050e575081810a62000535565b6200051a83836200043c565b806000190482111562000531576200053162000426565b0290505b92915050565b60006200054c60ff84168362000485565b9392505050565b808202811582820484141762000535576200053562000426565b8082018082111562000535576200053562000426565b610f5e80620005936000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637a5b4f59116100a25780639457c1dc116100715780639457c1dc1461023457806395d89b4114610247578063a9059cbb1461024f578063adf5e30c14610262578063dd62ed3e1461026a57600080fd5b80637a5b4f59146101ee5780638da5cb5b146102055780638ed6b016146102185780638fd3ab801461022c57600080fd5b8063313ce567116100de578063313ce5671461017657806356ce0e6c146101855780635b51acff1461019a57806370a08231146101c557600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b6101186102a3565b6040516101259190610b3a565b60405180910390f35b61014161013c366004610b70565b610335565b6040519015158152602001610125565b6002545b604051908152602001610125565b610141610171366004610b9a565b61034f565b60405160128152602001610125565b610198610193366004610c79565b610373565b005b6008546101ad906001600160a01b031681565b6040516001600160a01b039091168152602001610125565b6101556101d3366004610cdd565b6001600160a01b031660009081526020819052604090205490565b6101f66103fd565b60405161012593929190610cf8565b6005546101ad906001600160a01b031681565b60085461014190600160a01b900460ff1681565b610198610548565b610198610242366004610cdd565b61067c565b61011861074c565b61014161025d366004610b70565b61075b565b610198610769565b610155610278366004610d3b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102b290610d6e565b80601f01602080910402602001604051908101604052809291908181526020018280546102de90610d6e565b801561032b5780601f106103005761010080835404028352916020019161032b565b820191906000526020600020905b81548152906001019060200180831161030e57829003601f168201915b5050505050905090565b6000336103438185856107cb565b60019150505b92915050565b60003361035d8582856107dd565b61036885858561085c565b506001949350505050565b6005546001600160a01b031633146103a65760405162461bcd60e51b815260040161039d90610da8565b60405180910390fd5b60066103b28382610e19565b5060076103bf8282610e19565b507f30f5c4b652f95e2a697bda3258896c421eee4f29adce8fe38060f47f7aed91ad82826040516103f1929190610ed9565b60405180910390a15050565b6060806060600660076040518060400160405280600681526020016521b7b6b6b7b760d11b81525082805461043190610d6e565b80601f016020809104026020016040519081016040528092919081815260200182805461045d90610d6e565b80156104aa5780601f1061047f576101008083540402835291602001916104aa565b820191906000526020600020905b81548152906001019060200180831161048d57829003601f168201915b505050505092508180546104bd90610d6e565b80601f01602080910402602001604051908101604052809291908181526020018280546104e990610d6e565b80156105365780601f1061050b57610100808354040283529160200191610536565b820191906000526020600020905b81548152906001019060200180831161051957829003601f168201915b50505050509150925092509250909192565b600854600160a01b900460ff166105985760405162461bcd60e51b81526020600482015260146024820152734d6967726174696f6e206e6f742061637469766560601b604482015260640161039d565b6008546001600160a01b03166105e65760405162461bcd60e51b8152602060048201526013602482015272139bc81b5a59dc985d1a5bdb881d185c99d95d606a1b604482015260640161039d565b336000908152602081905260409020548061063a5760405162461bcd60e51b81526020600482015260146024820152734e6f20746f6b656e7320746f206d69677261746560601b604482015260640161039d565b61064433826108bb565b60405181815233907f2558d4091fc8e966ac64668ecbe596974579c9f0e5b2e11d94d1469934ab5fd89060200160405180910390a250565b6005546001600160a01b031633146106a65760405162461bcd60e51b815260040161039d90610da8565b6001600160a01b0381166106fc5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206d6967726174696f6e207461726765740000000000000000604482015260640161039d565b600880546001600160a81b0319166001600160a01b038316908117600160a01b179091556040517ff8cb72b93188da0cf41cc6a23978cb1faee80e70bd3c6bdf0a9301728474544290600090a250565b6060600480546102b290610d6e565b60003361034381858561085c565b6005546001600160a01b031633146107935760405162461bcd60e51b815260040161039d90610da8565b6008805460ff60a01b191690556040517f1e6a33fba02a1ba779412a9af0a34aeb4a9e66b0a93b9ad1247b03c544ce2ab090600090a1565b6107d883838360016108f5565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811015610856578181101561084757604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161039d565b610856848484840360006108f5565b50505050565b6001600160a01b03831661088657604051634b637e8f60e11b81526000600482015260240161039d565b6001600160a01b0382166108b05760405163ec442f0560e01b81526000600482015260240161039d565b6107d88383836109ca565b6001600160a01b0382166108e557604051634b637e8f60e11b81526000600482015260240161039d565b6108f1826000836109ca565b5050565b6001600160a01b03841661091f5760405163e602df0560e01b81526000600482015260240161039d565b6001600160a01b03831661094957604051634a1406b160e11b81526000600482015260240161039d565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561085657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109bc91815260200190565b60405180910390a350505050565b6001600160a01b0383166109f55780600260008282546109ea9190610f07565b90915550610a679050565b6001600160a01b03831660009081526020819052604090205481811015610a485760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161039d565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610a8357600280548290039055610aa2565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ae791815260200190565b60405180910390a3505050565b6000815180845260005b81811015610b1a57602081850181015186830182015201610afe565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610b4d6020830184610af4565b9392505050565b80356001600160a01b0381168114610b6b57600080fd5b919050565b60008060408385031215610b8357600080fd5b610b8c83610b54565b946020939093013593505050565b600080600060608486031215610baf57600080fd5b610bb884610b54565b9250610bc660208501610b54565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610bfd57600080fd5b813567ffffffffffffffff80821115610c1857610c18610bd6565b604051601f8301601f19908116603f01168101908282118183101715610c4057610c40610bd6565b81604052838152866020858801011115610c5957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215610c8c57600080fd5b823567ffffffffffffffff80821115610ca457600080fd5b610cb086838701610bec565b93506020850135915080821115610cc657600080fd5b50610cd385828601610bec565b9150509250929050565b600060208284031215610cef57600080fd5b610b4d82610b54565b606081526000610d0b6060830186610af4565b8281036020840152610d1d8186610af4565b90508281036040840152610d318185610af4565b9695505050505050565b60008060408385031215610d4e57600080fd5b610d5783610b54565b9150610d6560208401610b54565b90509250929050565b600181811c90821680610d8257607f821691505b602082108103610da257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b601f8211156107d857600081815260208120601f850160051c81016020861015610df25750805b601f850160051c820191505b81811015610e1157828155600101610dfe565b505050505050565b815167ffffffffffffffff811115610e3357610e33610bd6565b610e4781610e418454610d6e565b84610dcb565b602080601f831160018114610e7c5760008415610e645750858301515b600019600386901b1c1916600185901b178555610e11565b600085815260208120601f198616915b82811015610eab57888601518255948401946001909101908401610e8c565b5085821015610ec95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000610eec6040830185610af4565b8281036020840152610efe8185610af4565b95945050505050565b8082018082111561034957634e487b7160e01b600052601160045260246000fdfea2646970667358221220cfec7709ebaf8cbd55cf1ea0ed62289d047140b76be5c3ffadf4fccaa9190a7364736f6c63430008140033