60806040526007805460ff191660011790553480156200001e57600080fd5b5060006200002b620001e2565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526003808252622ba2a760e91b6020909201918252620000a191600691620001e6565b5060405180606001604052806022815260200162001513602291398051620000d291600591602090910190620001e6565b506004805460ff1916600a90811791829055620000f39160ff169062000303565b620001049064174876e800620003fb565b6003819055620001179060029062000295565b73d839c179a4606f46abd7a757f7bb77d7593ae24960005260016020527fc4618382a5cf15c6a70d95be0ca2d82a64a08530a24a976edbdada9a53f148a855600454620001699060ff16600a62000303565b62000177906101f4620003fb565b3360009081526001602052604080822092909255600354915173d839c179a4606f46abd7a757f7bb77d7593ae249927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620001d491906200028c565b60405180910390a362000470565b3390565b828054620001f4906200041d565b90600052602060002090601f01602090048101928262000218576000855562000263565b82601f106200023357805160ff191683800117855562000263565b8280016001018555821562000263579182015b828111156200026357825182559160200191906001019062000246565b506200027192915062000275565b5090565b5b8082111562000271576000815560010162000276565b90815260200190565b600082620002b157634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620002ca5750620002fa565b818704821115620002df57620002df6200045a565b80861615620002ed57918102915b9490941c938002620002b9565b94509492505050565b60006200031760001960ff8516846200031e565b9392505050565b6000826200032f5750600162000317565b816200033e5750600062000317565b8160018114620003575760028114620003625762000396565b600191505062000317565b60ff8411156200037657620003766200045a565b6001841b9150848211156200038f576200038f6200045a565b5062000317565b5060208310610133831016604e8410600b8410161715620003ce575081810a83811115620003c857620003c86200045a565b62000317565b620003dd8484846001620002b6565b808604821115620003f257620003f26200045a565b02949350505050565b60008160001904831182151516156200041857620004186200045a565b500290565b6002810460018216806200043257607f821691505b602082108114156200045457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61109380620004806000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063893d20e8116100ad578063a457c2d711610071578063a457c2d714610242578063a9059cbb14610255578063d29d44ee14610268578063dd62ed3e1461027b578063f2fde38b1461028e5761012c565b8063893d20e8146101f75780638da5cb5b1461020c57806395d89b41146102145780639a0446821461021c578063a0712d681461022f5761012c565b806339509351116100f457806339509351146101ac57806370a08231146101bf578063715018a6146101d2578063729ad39e146101dc57806381b2d07b146101ef5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461016f57806323b872dd14610184578063313ce56714610197575b600080fd5b6101396102a1565b6040516101469190610cb8565b60405180910390f35b61016261015d366004610b97565b610333565b6040516101469190610cad565b610177610350565b6040516101469190610f02565b610162610192366004610b5c565b610356565b61019f6103dd565b6040516101469190610f0b565b6101626101ba366004610b97565b6103e6565b6101776101cd366004610b10565b610434565b6101da61046f565b005b6101da6101ea366004610bc0565b6104f7565b610162610596565b6101ff6105e6565b6040516101469190610c99565b6101ff6105f5565b610139610604565b6101da61022a366004610bc0565b610613565b61016261023d366004610c81565b6106ad565b610162610250366004610b97565b6106fd565b610162610263366004610b97565b610765565b6101da610276366004610b10565b610779565b610177610289366004610b2a565b6107fa565b6101da61029c366004610b10565b610825565b6060600680546102b090610f48565b80601f01602080910402602001604051908101604052809291908181526020018280546102dc90610f48565b80156103295780601f106102fe57610100808354040283529160200191610329565b820191906000526020600020905b81548152906001019060200180831161030c57829003601f168201915b5050505050905090565b6000610347610340610866565b848461086a565b50600192915050565b60035490565b60006103638484846108e2565b6103d38461036f610866565b6103ce85604051806060016040528060288152602001610fcb602891396001600160a01b038a166000908152600260205260408120906103ad610866565b6001600160a01b0316815260208101919091526040016000205491906109e7565b61086a565b5060019392505050565b60045460ff1690565b60006103476103f3610866565b846103ce8560026000610404610866565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610a21565b6001600160a01b03811660009081526001602052604081205460075460ff166104645766cef85786372800610466565b805b9150505b919050565b610477610866565b6000546001600160a01b039081169116146104ad5760405162461bcd60e51b81526004016104a490610e48565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b805160005b818110156105915782818151811061052457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031673d839c179a4606f46abd7a757f7bb77d7593ae2496001600160a01b031660008051602061101983398151915266cef857863728006040516105779190610f02565b60405180910390a38061058981610f83565b9150506104fc565b505050565b60006105a0610866565b6000546001600160a01b039081169116146105cd5760405162461bcd60e51b81526004016104a490610e48565b506007805460ff19811660ff9182161517918290551690565b60006105f06105f5565b905090565b6000546001600160a01b031690565b6060600580546102b090610f48565b805160005b818110156105915782818151811061064057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031673d839c179a4606f46abd7a757f7bb77d7593ae2496001600160a01b031660008051602061101983398151915266cef857863728006040516106939190610f02565b60405180910390a3806106a581610f83565b915050610618565b60006106b7610866565b6000546001600160a01b039081169116146106e45760405162461bcd60e51b81526004016104a490610e48565b6106f56106ef610866565b83610a57565b506001919050565b600061034761070a610866565b846103ce856040518060600160405280602581526020016110396025913960026000610734610866565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906109e7565b6000610347610772610866565b84846108e2565b6001600160a01b03811661079f5760405162461bcd60e51b81526004016104a490610d94565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61082d610866565b6000546001600160a01b0390811691161461085a5760405162461bcd60e51b81526004016104a490610e48565b61086381610779565b50565b3390565b6001600160a01b0383166108905760405162461bcd60e51b81526004016104a490610d50565b6001600160a01b0382166108b65760405162461bcd60e51b81526004016104a490610ec0565b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6001600160a01b0383166109085760405162461bcd60e51b81526004016104a490610d0b565b6001600160a01b03821661092e5760405162461bcd60e51b81526004016104a490610e7d565b61096b81604051806060016040528060268152602001610ff3602691396001600160a01b03861660009081526001602052604090205491906109e7565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461099a9082610a21565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611019833981519152906109da908590610f02565b60405180910390a3505050565b60008184841115610a0b5760405162461bcd60e51b81526004016104a49190610cb8565b506000610a188486610f31565b95945050505050565b600080610a2e8385610f19565b905083811015610a505760405162461bcd60e51b81526004016104a490610dda565b9392505050565b6001600160a01b038216610a7d5760405162461bcd60e51b81526004016104a490610e11565b600354610a8a9082610a21565b6003556001600160a01b038216600090815260016020526040902054610ab09082610a21565b6001600160a01b03831660008181526001602052604080822093909355915190919060008051602061101983398151915290610aed908590610f02565b60405180910390a35050565b80356001600160a01b038116811461046a57600080fd5b600060208284031215610b21578081fd5b610a5082610af9565b60008060408385031215610b3c578081fd5b610b4583610af9565b9150610b5360208401610af9565b90509250929050565b600080600060608486031215610b70578081fd5b610b7984610af9565b9250610b8760208501610af9565b9150604084013590509250925092565b60008060408385031215610ba9578182fd5b610bb283610af9565b946020939093013593505050565b60006020808385031215610bd2578182fd5b823567ffffffffffffffff80821115610be9578384fd5b818501915085601f830112610bfc578384fd5b813581811115610c0e57610c0e610fb4565b83810260405185828201018181108582111715610c2d57610c2d610fb4565b604052828152858101935084860182860187018a1015610c4b578788fd5b8795505b83861015610c7457610c6081610af9565b855260019590950194938601938601610c4f565b5098975050505050505050565b600060208284031215610c92578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610ce457858101830151858201604001528201610cc8565b81811115610cf55783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610f2c57610f2c610f9e565b500190565b600082821015610f4357610f43610f9e565b500390565b600281046001821680610f5c57607f821691505b60208210811415610f7d57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610f9757610f97610f9e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004a5baf9bcf68447369cf04ae6fe256c963828eceec40964cef6d543b6a92fd264736f6c63430008000033566973697420746f6b656e77656e2e78797a20746f207377617020746f2055534454