0x608060405234801561001057600080fd5b506040516109a03803806109a083398101604081905261002f916101b3565b60016000556001600160a01b03831661009e5760405162461bcd60e51b815260206004820152602660248201527f506f736974696f6e4d616e6167657220616464726573732063616e6e6f74206260448201526565207a65726f60d01b60648201526084015b60405180910390fd5b6001600160a01b0382166100f45760405162461bcd60e51b815260206004820152601b60248201527f5745544820616464726573732063616e6e6f74206265207a65726f00000000006044820152606401610095565b6001600160a01b03811661014a5760405162461bcd60e51b815260206004820152601b60248201527f5553444320616464726573732063616e6e6f74206265207a65726f00000000006044820152606401610095565b600480546001600160a01b03199081163317909155600180546001600160a01b039586169083161790556002805493851693821693909317909255600380549190931691161790556101f6565b80516001600160a01b03811681146101ae57600080fd5b919050565b6000806000606084860312156101c857600080fd5b6101d184610197565b92506101df60208501610197565b91506101ed60408501610197565b90509250925092565b61079b806102056000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063791b98bc1461006757806389a30271146100965780638da5cb5b146100a9578063a47e3f5a146100bc578063ad5c4648146100d1578063fd7ff017146100e4575b600080fd5b60015461007a906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60035461007a906001600160a01b031681565b60045461007a906001600160a01b031681565b6100cf6100ca3660046105a9565b6100f7565b005b60025461007a906001600160a01b031681565b6100cf6100f236600461063f565b6102bc565b6100ff610350565b60008061010e83850185610687565b90925090506001600160a01b038716301480156101335750336001600160a01b038316145b6101845760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420666c617368206c6f616e2063616c6c00000000000000000060448201526064015b60405180910390fd5b600080871161019e576003546001600160a01b03166101ab565b6002546001600160a01b03165b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529192509082169063a9059cbb906044016020604051808303816000875af11580156101fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022291906106b3565b6102665760405162461bcd60e51b8152602060048201526015602482015274131bd85b881c995c185e5b595b9d0819985a5b1959605a1b604482015260640161017b565b604080516001600160a01b0383168152602081018490527f82f6d0f3da3d1bfe5bc1887cd923de88190c65eb50a9640dce78dc79c83e2424910160405180910390a15050506102b56001600055565b5050505050565b6102c4610350565b6004546001600160a01b0316331461032c5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161017b565b61033684846103a9565b61034082826103a9565b61034a6001600055565b50505050565b6002600054036103a25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161017b565b6002600055565b6000826001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040d91906106dc565b6002549091506000906001600160a01b0380841691161461042f576000610431565b825b6003549091506000906001600160a01b03848116911614610453576000610455565b835b90508115158061046457508015155b6104ba5760405162461bcd60e51b815260206004820152602160248201527f556e737570706f7274656420666c617368206c6f616e206261736520746f6b656044820152603760f91b606482015260840161017b565b604080516001600160a01b038716602082018190528183018790528251808303840181526060830193849052633429253960e21b9093529063d0a494e49061050c9086908690309087906064016106f9565b600060405180830381600087803b15801561052657600080fd5b505af115801561053a573d6000803e3d6000fd5b5050604080516001600160a01b038a81168252602082018a905288168183015290517fe21e3850aa4b17d078a5411c0056d1abdbffc3dbdbb00a4421cc45ebe6a774809350908190036060019150a1505050505050565b6001600160a01b03811681146105a657600080fd5b50565b6000806000806000608086880312156105c157600080fd5b85356105cc81610591565b94506020860135935060408601359250606086013567ffffffffffffffff808211156105f757600080fd5b818801915088601f83011261060b57600080fd5b81358181111561061a57600080fd5b89602082850101111561062c57600080fd5b9699959850939650602001949392505050565b6000806000806080858703121561065557600080fd5b843561066081610591565b935060208501359250604085013561067781610591565b9396929550929360600135925050565b6000806040838503121561069a57600080fd5b82356106a581610591565b946020939093013593505050565b6000602082840312156106c557600080fd5b815180151581146106d557600080fd5b9392505050565b6000602082840312156106ee57600080fd5b81516106d581610591565b84815260006020858184015260018060a01b038516604084015260806060840152835180608085015260005b818110156107415785810183015185820160a001528201610725565b50600060a0828601015260a0601f19601f830116850101925050509594505050505056fea264697066735822122057e00fc70697074d02404054974b392b03ee50f6b5e4cab9bcb6a0857b3f82dc64736f6c63430008140033000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48