0x60806040523480156200001157600080fd5b506040518060400160405280601481526020017f44796e61737479204d617267696e20546f6b656e0000000000000000000000008152506040518060400160405280600381526020016211135560ea1b8152508160039081620000759190620004b7565b506004620000848282620004b7565b505050620000a16200009b620000dc60201b60201c565b620000e0565b6009805460ff60a01b19169055620000d633620000c16012600a62000698565b620000d09062075300620006b0565b62000132565b6200071d565b3390565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200018e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200019c6000838362000229565b8060026000828254620001b09190620006d2565b90915550506001600160a01b03821660009081526020819052604081208054839290620001df908490620006d2565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6200023362000250565b6200024b838383620002a860201b620006351760201c565b505050565b62000264600954600160a01b900460ff1690565b15620002a65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640162000185565b565b620002c08383836200024b60201b620006541760201c565b6001600160a01b038316620002e457620002da826200030f565b6200024b62000347565b6001600160a01b038216620002fe57620002da836200030f565b62000309836200030f565b6200024b825b6001600160a01b0381166000908152600560209081526040808320918390529091205462000344919062000357565b62000357565b50565b620002a660066200033e60025490565b600062000363620003a6565b9050806200037184620003c4565b10156200024b578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b6000620003bf60086200040f60201b620006821760201c565b905090565b80546000908103620003d857506000919050565b81548290620003ea90600190620006ed565b81548110620003fd57620003fd62000707565b90600052602060002001549050919050565b5490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200043e57607f821691505b6020821081036200045f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024b57600081815260208120601f850160051c810160208610156200048e5750805b601f850160051c820191505b81811015620004af578281556001016200049a565b505050505050565b81516001600160401b03811115620004d357620004d362000413565b620004eb81620004e4845462000429565b8462000465565b602080601f8311600181146200052357600084156200050a5750858301515b600019600386901b1c1916600185901b178555620004af565b600085815260208120601f198616915b82811015620005545788860151825594840194600190910190840162000533565b5085821015620005735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005da578160001904821115620005be57620005be62000583565b80851615620005cc57918102915b93841c93908002906200059e565b509250929050565b600082620005f35750600162000692565b81620006025750600062000692565b81600181146200061b5760028114620006265762000646565b600191505062000692565b60ff8411156200063a576200063a62000583565b50506001821b62000692565b5060208310610133831016604e8410600b84101617156200066b575081810a62000692565b62000677838362000599565b80600019048211156200068e576200068e62000583565b0290505b92915050565b6000620006a960ff841683620005e2565b9392505050565b6000816000190483118215151615620006cd57620006cd62000583565b500290565b60008219821115620006e857620006e862000583565b500190565b60008282101562000702576200070262000583565b500390565b634e487b7160e01b600052603260045260246000fd5b611377806200072d6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c35780639711715a1161007c5780639711715a1461029e578063981b24d0146102a6578063a457c2d7146102b9578063a9059cbb146102cc578063dd62ed3e146102df578063f2fde38b146102f257600080fd5b806370a082311461022f578063715018a61461025857806379cc6790146102605780638456cb59146102735780638da5cb5b1461027b57806395d89b411461029657600080fd5b8063395093511161011557806339509351146101c75780633f4ba83a146101da57806340c10f19146101e457806342966c68146101f75780634ee2cd7e1461020a5780635c975abb1461021d57600080fd5b806306fdde0314610152578063095ea7b31461017057806318160ddd1461019357806323b872dd146101a5578063313ce567146101b8575b600080fd5b61015a610305565b6040516101679190611151565b60405180910390f35b61018361017e3660046111bd565b610397565b6040519015158152602001610167565b6002545b604051908152602001610167565b6101836101b33660046111e7565b6103b1565b60405160128152602001610167565b6101836101d53660046111bd565b6103d5565b6101e26103f7565b005b6101e26101f23660046111bd565b610409565b6101e2610205366004611223565b61041f565b6101976102183660046111bd565b61042c565b600954600160a01b900460ff16610183565b61019761023d36600461123c565b6001600160a01b031660009081526020819052604090205490565b6101e2610485565b6101e261026e3660046111bd565b610497565b6101e26104ac565b6009546040516001600160a01b039091168152602001610167565b61015a6104bc565b6101e26104cb565b6101976102b4366004611223565b6104db565b6101836102c73660046111bd565b610506565b6101836102da3660046111bd565b610586565b6101976102ed366004611257565b610594565b6101e261030036600461123c565b6105bf565b6060600380546103149061128a565b80601f01602080910402602001604051908101604052809291908181526020018280546103409061128a565b801561038d5780601f106103625761010080835404028352916020019161038d565b820191906000526020600020905b81548152906001019060200180831161037057829003601f168201915b5050505050905090565b6000336103a5818585610686565b60019150505b92915050565b6000336103bf8582856107aa565b6103ca858585610824565b506001949350505050565b6000336103a58185856103e88383610594565b6103f291906112da565b610686565b6103ff6109fd565b610407610a57565b565b6104116109fd565b61041b8282610aac565b5050565b6104293382610b97565b50565b6001600160a01b038216600090815260056020526040812081908190610453908590610cf1565b915091508161047a576001600160a01b03851660009081526020819052604090205461047c565b805b95945050505050565b61048d6109fd565b6104076000610de7565b6104a28233836107aa565b61041b8282610b97565b6104b46109fd565b610407610e39565b6060600480546103149061128a565b6104d36109fd565b610429610e7c565b60008060006104eb846006610cf1565b91509150816104fc576002546104fe565b805b949350505050565b600033816105148286610594565b9050838110156105795760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103ca8286868403610686565b6000336103a5818585610824565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6105c76109fd565b6001600160a01b03811661062c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610570565b61042981610de7565b6001600160a01b0383166106595761064c82610ed6565b610654610f08565b505050565b6001600160a01b0382166106705761064c83610ed6565b61067983610ed6565b61065482610ed6565b5490565b6001600160a01b0383166106e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610570565b6001600160a01b0382166107495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610570565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107b68484610594565b9050600019811461081e57818110156108115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610570565b61081e8484848403610686565b50505050565b6001600160a01b0383166108885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610570565b6001600160a01b0382166108ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610570565b6108f5838383610f16565b6001600160a01b0383166000908152602081905260409020548181101561096d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610570565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906109a49084906112da565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109f091815260200190565b60405180910390a361081e565b6009546001600160a01b031633146104075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610570565b610a5f610f29565b6009805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610b025760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610570565b610b0e60008383610f16565b8060026000828254610b2091906112da565b90915550506001600160a01b03821660009081526020819052604081208054839290610b4d9084906112da565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038216610bf75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610570565b610c0382600083610f16565b6001600160a01b03821660009081526020819052604090205481811015610c775760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610570565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610ca69084906112f2565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60008060008411610d3d5760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b6044820152606401610570565b610d45610f79565b841115610d945760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e742069640000006044820152606401610570565b6000610da08486610f89565b84549091508103610db8576000809250925050610de0565b6001846001018281548110610dcf57610dcf611309565b906000526020600020015492509250505b9250929050565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610e4161104e565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610a8f3390565b6000610e8c600880546001019055565b6000610e96610f79565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb6781604051610ec991815260200190565b60405180910390a1919050565b6001600160a01b03811660009081526005602090815260408083209183905290912054610429919061109b565b61109b565b6104076006610f0360025490565b610f1e61104e565b610654838383610635565b600954600160a01b900460ff166104075760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610570565b6000610f8460085490565b905090565b81546000908103610f9c575060006103ab565b82546000905b80821015610ff8576000610fb683836110e5565b905084868281548110610fcb57610fcb611309565b90600052602060002001541115610fe457809150610ff2565b610fef8160016112da565b92505b50610fa2565b60008211801561102d575083856110106001856112f2565b8154811061102057611020611309565b9060005260206000200154145b156110465761103d6001836112f2565b925050506103ab565b5090506103ab565b600954600160a01b900460ff16156104075760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610570565b60006110a5610f79565b9050806110b184611107565b1015610654578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b60006110f4600284841861131f565b611100908484166112da565b9392505050565b8054600090810361111a57506000919050565b8154829061112a906001906112f2565b8154811061113a5761113a611309565b90600052602060002001549050919050565b919050565b600060208083528351808285015260005b8181101561117e57858101830151858201604001528201611162565b81811115611190576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461114c57600080fd5b600080604083850312156111d057600080fd5b6111d9836111a6565b946020939093013593505050565b6000806000606084860312156111fc57600080fd5b611205846111a6565b9250611213602085016111a6565b9150604084013590509250925092565b60006020828403121561123557600080fd5b5035919050565b60006020828403121561124e57600080fd5b611100826111a6565b6000806040838503121561126a57600080fd5b611273836111a6565b9150611281602084016111a6565b90509250929050565b600181811c9082168061129e57607f821691505b6020821081036112be57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156112ed576112ed6112c4565b500190565b600082821015611304576113046112c4565b500390565b634e487b7160e01b600052603260045260246000fd5b60008261133c57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212206c586543df4ea37a7d071355db87fe9c01bbf54a30e32e4ecb9fa264c4f3d45c64736f6c634300080f0033