0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063dafaf94a1161005b578063dafaf94a146100bd578063e14c6c5d14610121578063f77c479114610134578063f98adaef1461015f57600080fd5b80636e2eb5121461008257806392eefe9b14610097578063c4d66de8146100aa575b600080fd5b610095610090366004610873565b610180565b005b6100956100a53660046108a4565b6102cb565b6100956100b83660046108a4565b6103ec565b6100f76100cb366004610873565b60016020819052600091825260409091208054918101546002909101546001600160a01b039092169183565b604080516001600160a01b0390941684526020840192909252908201526060015b60405180910390f35b61009561012f3660046108c8565b61056d565b600254610147906001600160a01b031681565b6040516001600160a01b039091168152602001610118565b61017261016d366004610873565b6106f6565b604051908152602001610118565b600260009054906101000a90046001600160a01b03166001600160a01b0316636a228aba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f79190610905565b6001600160a01b0316336001600160a01b0316146102305760405162461bcd60e51b815260040161022790610922565b60405180910390fd5b6000818152600160208181526040808420805482516060810184528681528085018781528185018881529789905286865281516001600160a01b039081166001600160a01b03198516178555905196840196909655955160029092019190915590519216808352929184917fa69709ef8582cb75d44d08e318fd90f7368d781e645af3e2788ca761606dab0b910160405180910390a2505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316636a228aba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610905565b6001600160a01b0316336001600160a01b0316146103725760405162461bcd60e51b815260040161022790610922565b6001600160a01b0381166103985760405162461bcd60e51b81526004016102279061093e565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fe253457d9ad994ca9682fc3bbc38c890dca73a2d5ecee3809e548bac8b00d7c69060200160405180910390a150565b600054610100900460ff161580801561040c5750600054600160ff909116105b806104265750303b158015610426575060005460ff166001145b6104895760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610227565b6000805460ff1916600117905580156104ac576000805461ff0019166101001790555b6001600160a01b0382166104d25760405162461bcd60e51b81526004016102279061093e565b600280546001600160a01b0319166001600160a01b0384169081179091556040519081527fe253457d9ad994ca9682fc3bbc38c890dca73a2d5ecee3809e548bac8b00d7c69060200160405180910390a18015610569576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600260009054906101000a90046001600160a01b03166001600160a01b0316636a228aba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e49190610905565b6001600160a01b0316336001600160a01b0316146106145760405162461bcd60e51b815260040161022790610922565b610641604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b0384166106675760405162461bcd60e51b81526004016102279061093e565b6001600160a01b038481168083526020808401868152604080860187815260008b8152600180865290839020885181546001600160a01b03191698169790971787559251928601929092559051600290940193909355915190815286917f45591d99ba806daf7b0afc6a86e971e9294cec19284c1e743c3b021b0f8ab0bb910160405180910390a25050505050565b6000818152600160205260408120546001600160a01b03168061075b5760405162461bcd60e51b815260206004820152601760248201527f4552524f523a204e6f206f7261636c652065786973742e0000000000000000006044820152606401610227565b600083815260016020819052604090912090810154600290910154811580159061078457508015155b6107d05760405162461bcd60e51b815260206004820181905260248201527f4552524f523a20446563696d616c206d757374206265206e6f6e2d7a65726f2e6044820152606401610227565b6000836001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610834919061095c565b905060008261084485602461098b565b61084e919061098b565b9050600061085d82600a610a88565b6108679084610a94565b98975050505050505050565b60006020828403121561088557600080fd5b5035919050565b6001600160a01b03811681146108a157600080fd5b50565b6000602082840312156108b657600080fd5b81356108c18161088c565b9392505050565b600080600080608085870312156108de57600080fd5b8435935060208501356108f08161088c565b93969395505050506040820135916060013590565b60006020828403121561091757600080fd5b81516108c18161088c565b602080825260029082015261453160f01b604082015260600190565b6020808252600490820152634531313760e01b604082015260600190565b60006020828403121561096e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561099d5761099d610975565b500390565b600181815b808511156109dd5781600019048211156109c3576109c3610975565b808516156109d057918102915b93841c93908002906109a7565b509250929050565b6000826109f457506001610a82565b81610a0157506000610a82565b8160018114610a175760028114610a2157610a3d565b6001915050610a82565b60ff841115610a3257610a32610975565b50506001821b610a82565b5060208310610133831016604e8410600b8410161715610a60575081810a610a82565b610a6a83836109a2565b8060001904821115610a7e57610a7e610975565b0290505b92915050565b60006108c183836109e5565b6000816000190483118215151615610aae57610aae610975565b50029056fea2646970667358221220383860f635414b8b4954b6f58bfbcd37c282d1e3cad8b753382736a898b218b964736f6c634300080b0033