60806040526000805534801561001457600080fd5b5060038054610100600160a81b0319163361010081029190911790915561003c906000610042565b506100d9565b60008160008082825461005591906100b3565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350600192915050565b600082198211156100d457634e487b7160e01b600052601160045260246000fd5b500190565b6106d8806100e86000396000f3fe608060405234801561001057600080fd5b50600436106100ca5760003560e01c806370a082311161007c57806370a08231146101b257806395d89b41146100cf578063a9059cbb146101d2578063c268f9ba146101e5578063ca1c4de9146101fa578063dd62ed3e14610207578063fca3b5aa1461023257600080fd5b806306fdde03146100cf5780630754617214610108578063095ea7b31461013857806318160ddd1461015b57806323b872dd14610172578063313ce5671461018557806340c10f191461019f575b600080fd5b6100f260405180604001604052806004815260200163424c554560e01b81525081565b6040516100ff9190610538565b60405180910390f35b6003546101209061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016100ff565b61014b6101463660046105a9565b610245565b60405190151581526020016100ff565b61016460005481565b6040519081526020016100ff565b61014b6101803660046105d3565b6102b1565b61018d601281565b60405160ff90911681526020016100ff565b61014b6101ad3660046105a9565b61032b565b6101646101c036600461060f565b60016020526000908152604090205481565b61014b6101e03660046105a9565b610393565b6101f86101f336600461060f565b6103a7565b005b60035461014b9060ff1681565b61016461021536600461062a565b600260209081526000928352604080842090915290825290205481565b6101f861024036600461060f565b6103f8565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102a09086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610317576001600160a01b038516600090815260026020908152604080832033845290915281208054859290610311908490610673565b90915550505b61032285858561043c565b95945050505050565b60035460009061010090046001600160a01b0316331461037f5760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015260640160405180910390fd5b61038983836104d3565b5060019392505050565b60006103a033848461043c565b9392505050565b60035461010090046001600160a01b0316331480156103c9575060035460ff16155b6103d257600080fd5b6003805460ff191660011790556103f4816a295be96e640669720000006104d3565b5050565b60035461010090046001600160a01b0316331461041457600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316600090815260016020526040812080548391908390610466908490610673565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104c19086815260200190565b60405180910390a35060019392505050565b6000816000808282546104e6919061068a565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016102a0565b600060208083528351808285015260005b8181101561056557858101830151858201604001528201610549565b81811115610577576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146105a457600080fd5b919050565b600080604083850312156105bc57600080fd5b6105c58361058d565b946020939093013593505050565b6000806000606084860312156105e857600080fd5b6105f18461058d565b92506105ff6020850161058d565b9150604084013590509250925092565b60006020828403121561062157600080fd5b6103a08261058d565b6000806040838503121561063d57600080fd5b6106468361058d565b91506106546020840161058d565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000828210156106855761068561065d565b500390565b6000821982111561069d5761069d61065d565b50019056fea2646970667358221220ca85062207f0bcf9e30ec7bb93348131f190fc8ba6a6fcd4fdec29b4817003f564736f6c634300080d0033