0x608060405234801561001057600080fd5b50604051610e5a380380610e5a83398101604081905261002f916100d4565b61003833610084565b6001600160a01b03811661005f57604051631ae0183b60e11b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055610104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100e657600080fd5b81516001600160a01b03811681146100fd57600080fd5b9392505050565b610d47806101136000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063a8c62e7611610066578063a8c62e7614610100578063af996e2614610113578063b302256d14610126578063daccaf6314610159578063f2fde38b1461016c57600080fd5b806320ff430b14610098578063715018a6146100ad57806384422d71146100b55780638da5cb5b146100db575b600080fd5b6100ab6100a63660046109fb565b61017f565b005b6100ab6101a0565b6100c86100c3366004610aab565b6101b4565b6040519081526020015b60405180910390f35b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100d2565b6001546100e8906001600160a01b031681565b6100ab610121366004610b72565b610463565b610149610134366004610bab565b60026020526000908152604090205460ff1681565b60405190151581526020016100d2565b6100ab610167366004610bab565b610496565b6100ab61017a366004610bab565b6104e7565b610187610565565b61019b6001600160a01b03841683836105bf565b505050565b6101a8610565565b6101b26000610622565b565b6001546000906001600160a01b031633146101e25760405163f3304bc160e01b815260040160405180910390fd5b6040516370a0823160e01b815230600482015285906001600160a01b038816906370a0823190602401602060405180830381865afa158015610228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024c9190610bcf565b101561026b57604051634093cacb60e11b815260040160405180910390fd5b600080838060200190518101906102829190610c18565b6001600160a01b038216600090815260026020526040902054919350915060ff166102c0576040516323b7146160e21b815260040160405180910390fd5b6102d46001600160a01b0389168389610672565b6000826001600160a01b0316826040516102ee9190610ca5565b6000604051808303816000865af19150503d806000811461032b576040519150601f19603f3d011682016040523d82523d6000602084013e610330565b606091505b505090508061035257604051634b4e366b60e11b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa158015610396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ba9190610bcf565b9350858410156103dd5760405163d702f81f60e01b815260040160405180910390fd5b6001546103f7906001600160a01b038981169116866105bf565b866001600160a01b0316896001600160a01b0316846001600160a01b03167f4186ee407650cb8c4fc5725e2f5835992611ff34e90eb302bc882b6c7ee3b2d48b8860405161044f929190918252602082015260400190565b60405180910390a450505095945050505050565b61046b610565565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b61049e610565565b6001600160a01b0381166104c557604051631ae0183b60e11b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6104ef610565565b6001600160a01b0381166105595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61056281610622565b50565b6000546001600160a01b031633146101b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610550565b6040516001600160a01b03831660248201526044810182905261019b90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610787565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8015806106ec5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea9190610bcf565b155b6107575760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610550565b6040516001600160a01b03831660248201526044810182905261019b90849063095ea7b360e01b906064016105eb565b60006107dc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108599092919063ffffffff16565b80519091501561019b57808060200190518101906107fa9190610cc1565b61019b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610550565b60606108688484600085610870565b949350505050565b6060824710156108d15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610550565b600080866001600160a01b031685876040516108ed9190610ca5565b60006040518083038185875af1925050503d806000811461092a576040519150601f19603f3d011682016040523d82523d6000602084013e61092f565b606091505b50915091506109408783838761094b565b979650505050505050565b606083156109b75782516109b0576001600160a01b0385163b6109b05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610550565b5081610868565b61086883838151156109cc5781518083602001fd5b8060405162461bcd60e51b81526004016105509190610cde565b6001600160a01b038116811461056257600080fd5b600080600060608486031215610a1057600080fd5b8335610a1b816109e6565b92506020840135610a2b816109e6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a7b57610a7b610a3c565b604052919050565b600067ffffffffffffffff821115610a9d57610a9d610a3c565b50601f01601f191660200190565b600080600080600060a08688031215610ac357600080fd5b8535610ace816109e6565b9450602086013593506040860135610ae5816109e6565b925060608601359150608086013567ffffffffffffffff811115610b0857600080fd5b8601601f81018813610b1957600080fd5b8035610b2c610b2782610a83565b610a52565b818152896020838501011115610b4157600080fd5b816020840160208301376000602083830101528093505050509295509295909350565b801515811461056257600080fd5b60008060408385031215610b8557600080fd5b8235610b90816109e6565b91506020830135610ba081610b64565b809150509250929050565b600060208284031215610bbd57600080fd5b8135610bc8816109e6565b9392505050565b600060208284031215610be157600080fd5b5051919050565b60005b83811015610c03578181015183820152602001610beb565b83811115610c12576000848401525b50505050565b60008060408385031215610c2b57600080fd5b8251610c36816109e6565b602084015190925067ffffffffffffffff811115610c5357600080fd5b8301601f81018513610c6457600080fd5b8051610c72610b2782610a83565b818152866020838501011115610c8757600080fd5b610c98826020830160208601610be8565b8093505050509250929050565b60008251610cb7818460208701610be8565b9190910192915050565b600060208284031215610cd357600080fd5b8151610bc881610b64565b6020815260008251806020840152610cfd816040850160208701610be8565b601f01601f1916919091016040019291505056fea2646970667358221220749b4dba0b4a9873cae0f149b1bb015650a31c70d88a68821f915dd3cd36baed64736f6c634300080a00330000000000000000000000007629fc134e5a7febef6340438d96881c8d121f2c