[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "AMMPair", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isPair", "type": "bool" } ], "name": "AMMPairsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isBlacklisted", "type": "bool" } ], "name": "BlacklistUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "routerV2", "type": "address" } ], "name": "RouterV2Updated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "swapThreshold", "type": "uint256" } ], "name": "SwapThresholdUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "infinityAddress", "type": "address" } ], "name": "infinityAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "infinityFeeSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "name": "infinityFeesUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "liquidityAddress", "type": "address" } ], "name": "liquidityAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "liquidityFeeSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "name": "liquidityFeesUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "operationsAddress", "type": "address" } ], "name": "operationsAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "operationsFeeSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "name": "operationsFeesUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "AMMPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isBlacklisted", "type": "bool" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "blacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAllPending", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "infinityAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "infinityAddressSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "infinityFees", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "_sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "_transferFee", "type": "uint16" } ], "name": "infinityFeesSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "liquidityAddressSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "liquidityFees", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "_sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "_transferFee", "type": "uint16" } ], "name": "liquidityFeesSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operationsAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "operationsAddressSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "operationsFees", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "_sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "_transferFee", "type": "uint16" } ], "name": "operationsFeesSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairV2", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "recoverERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "routerV2", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "isPair", "type": "bool" } ], "name": "setAMMPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "totalFees", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_swapThreshold", "type": "uint256" } ], "name": "updateSwapThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506040518060400160405280600b81526020016a5468616e6f73205045504560a81b815250604051806040016040528060048152602001630534e41560e41b815250816003908162000064919062000e83565b50600462000073828262000e83565b505050620000906200008a620001db60201b60201c565b620001df565b73029eaee50af0e25e0112124845f23f1a7d461042620000d9600a620000b860128262001064565b620000c79062200b206200107c565b620000d3919062001096565b62000231565b620000f8735fa76b9e898254d4519a70fda759c9d11d7a51ca62000277565b620001086046601e600062000352565b620001277396926ae8715de8141fec0813f1cd8a48c2f319f562000544565b6200013660648060006200061b565b6200015573b904db0bf2a0b69b7683dacb33a6945c7d93965162000805565b62000165601e60466000620008dc565b6200017281600162000ac6565b6200017f30600162000ac6565b620001b581600a6200019360128262001064565b620001a39063fa56ea006200107c565b620001af919062001096565b62000b2f565b620001d473029eaee50af0e25e0112124845f23f1a7d461042620001df565b5062001112565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200023b62000c0e565b60078190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd06476906020015b60405180910390a150565b6200028162000c0e565b6001600160a01b038116620002f05760405162461bcd60e51b8152602060048201526046602482015260008051602062003ae1833981519152604482015260008051602062003b2183398151915260648201526564647265737360d01b608482015260a4015b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0383161790556200031881600162000ac6565b6040516001600160a01b03821681527f5ee1a0a56e2fa20825f01f2a0b604ea77df2c1e93f8280c4cda83abfb8a5f526906020016200026c565b6200035c62000c0e565b600c546012548491620003779161ffff9182169116620010b9565b620003839190620010de565b6012805461ffff191661ffff9283161790819055600c548492620003b5926201000092839004821692900416620010b9565b620003c19190620010de565b6012805463ffff000019166201000061ffff938416021790819055600c548392620003fc9264010000000092839004821692900416620010b9565b620004089190620010de565b6012805461ffff9283166401000000000261ffff60201b19821681179092556109c49083169190921617118015906200045057506012546109c46201000090910461ffff1611155b80156200046e57506012546109c464010000000090910461ffff1611155b620004c05760405162461bcd60e51b8152602060048201526036602482015260008051602062003b01833981519152604482015260008051602062003b418339815191526064820152608401620002e7565b6040805160608101825261ffff80861682528481166020830152831691810191909152620004f390600c90600362000d2b565b506040805161ffff808616825280851660208301528316918101919091527fdf5eccb780e20369ed153b2115b7ac602139c3559566558f93432b2d3700e882906060015b60405180910390a1505050565b6200054e62000c0e565b6001600160a01b038116620005b95760405162461bcd60e51b8152602060048201526046602482015260008051602062003ae1833981519152604482015260008051602062003b2183398151915260648201526564647265737360d01b608482015260a401620002e7565b600d80546001600160a01b0319166001600160a01b038316179055620005e181600162000ac6565b6040516001600160a01b03821681527ff2dd470b6bcb4902d010d46e03e80132dda429ff72c81873e8ca11f497105180906020016200026c565b6200062562000c0e565b600e546012548491620006409161ffff9182169116620010b9565b6200064c9190620010de565b6012805461ffff191661ffff9283161790819055600e5484926200067e926201000092839004821692900416620010b9565b6200068a9190620010de565b6012805463ffff000019166201000061ffff938416021790819055600e548392620006c59264010000000092839004821692900416620010b9565b620006d19190620010de565b6012805461ffff9283166401000000000261ffff60201b19821681179092556109c49083169190921617118015906200071957506012546109c46201000090910461ffff1611155b80156200073757506012546109c464010000000090910461ffff1611155b620007895760405162461bcd60e51b8152602060048201526036602482015260008051602062003b01833981519152604482015260008051602062003b418339815191526064820152608401620002e7565b6040805160608101825261ffff80861682528481166020830152831691810191909152620007bc90600e90600362000d2b565b506040805161ffff808616825280851660208301528316918101919091527f66f82f7966ee08b099851ab7e6915cdce923b58281c8324b8c6b33e5165351e69060600162000537565b6200080f62000c0e565b6001600160a01b0381166200087a5760405162461bcd60e51b8152602060048201526046602482015260008051602062003ae1833981519152604482015260008051602062003b2183398151915260648201526564647265737360d01b608482015260a401620002e7565b600f80546001600160a01b0319166001600160a01b038316179055620008a281600162000ac6565b6040516001600160a01b03821681527f691dddb261ef808cea2f6cfa609afdb745b25f34ef1e7dba11dbf4e5df1de51c906020016200026c565b620008e662000c0e565b6010546012548491620009019161ffff9182169116620010b9565b6200090d9190620010de565b6012805461ffff191661ffff928316179081905560105484926200093f926201000092839004821692900416620010b9565b6200094b9190620010de565b6012805463ffff000019166201000061ffff9384160217908190556010548392620009869264010000000092839004821692900416620010b9565b620009929190620010de565b6012805461ffff9283166401000000000261ffff60201b19821681179092556109c4908316919092161711801590620009da57506012546109c46201000090910461ffff1611155b8015620009f857506012546109c464010000000090910461ffff1611155b62000a4a5760405162461bcd60e51b8152602060048201526036602482015260008051602062003b01833981519152604482015260008051602062003b418339815191526064820152608401620002e7565b6040805160608101825261ffff8086168252848116602083015283169181019190915262000a7d90601090600362000d2b565b506040805161ffff808616825280851660208301528316918101919091527f2524ccb75260c9a50c71af1740c212c049a01232ef122061416b51815ec57a189060600162000537565b62000ad062000c0e565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03821662000b875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620002e7565b62000b956000838362000c6c565b806002600082825462000ba99190620010fc565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000c0a6000838362000d13565b5050565b6005546001600160a01b0316331462000c6a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620002e7565b565b6001600160a01b03831660009081526006602052604090205460ff1615801562000caf57506001600160a01b03821660009081526006602052604090205460ff16155b62000d135760405162461bcd60e51b815260206004820152602d60248201527f426c61636b6c6973743a2053656e646572206f7220726563697069656e74206960448201526c1cc8189b1858dadb1a5cdd1959609a1b6064820152608401620002e7565b62000d268383836001600160e01b038416565b505050565b60018301918390821562000db65791602002820160005b8382111562000d8457835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030262000d42565b801562000db45782816101000a81549061ffff021916905560020160208160010104928301926001030262000d84565b505b5062000dc492915062000dc8565b5090565b5b8082111562000dc4576000815560010162000dc9565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000e0a57607f821691505b60208210810362000e2b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000d2657600081815260208120601f850160051c8101602086101562000e5a5750805b601f850160051c820191505b8181101562000e7b5782815560010162000e66565b505050505050565b81516001600160401b0381111562000e9f5762000e9f62000ddf565b62000eb78162000eb0845462000df5565b8462000e31565b602080601f83116001811462000eef576000841562000ed65750858301515b600019600386901b1c1916600185901b17855562000e7b565b600085815260208120601f198616915b8281101562000f205788860151825594840194600190910190840162000eff565b508582101562000f3f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000fa657816000190482111562000f8a5762000f8a62000f4f565b8085161562000f9857918102915b93841c939080029062000f6a565b509250929050565b60008262000fbf575060016200105e565b8162000fce575060006200105e565b816001811462000fe7576002811462000ff25762001012565b60019150506200105e565b60ff84111562001006576200100662000f4f565b50506001821b6200105e565b5060208310610133831016604e8410600b841016171562001037575081810a6200105e565b62001043838362000f65565b80600019048211156200105a576200105a62000f4f565b0290505b92915050565b60006200107560ff84168362000fae565b9392505050565b80820281158282048414176200105e576200105e62000f4f565b600082620010b457634e487b7160e01b600052601260045260246000fd5b500490565b61ffff828116828216039080821115620010d757620010d762000f4f565b5092915050565b61ffff818116838216019080821115620010d757620010d762000f4f565b808201808211156200105e576200105e62000f4f565b6129bf80620011226000396000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063c0246668116100b6578063e62681581161007a578063e62681581461074d578063ea4cfe121461076d578063f112ba721461078d578063f2fde38b146107a2578063fdc48a45146107c2578063ffa79b0a146107e257600080fd5b8063c02466681461069d578063c4d66de8146106bd578063cc274b29146106dd578063dbac26e9146106fd578063dd62ed3e1461072d57600080fd5b8063966b53c4116100fd578063966b53c4146105fd578063a457c2d71461061d578063a9059cbb1461063d578063aa4c82d41461065d578063b48fd5b01461067d57600080fd5b80638da5cb5b1461056a5780638fffabed146105885780639361b365146105a857806395d89b41146105c85780639646fc30146105dd57600080fd5b80634066faf9116101d257806357e38b2e1161019657806357e38b2e1461048f57806370a08231146104af578063715018a6146104e557806376856557146104fa57806379cc67901461052a5780638980f11f1461054a57600080fd5b80634066faf9146103c7578063408ccbdf146103fa57806342966c681461041a5780634fbee1931461043a578063502f74461461046a57600080fd5b80632d99d32e116102195780632d99d32e14610311578063313ce567146103335780633221c93f1461034f5780633950935114610387578063404e5129146103a757600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102ac57806318160ddd146102dc57806323b872dd146102f157600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760075481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5061029f610802565b604051610281919061253e565b3480156102b857600080fd5b506102cc6102c73660046125a1565b610894565b6040519015158152602001610281565b3480156102e857600080fd5b50600254610277565b3480156102fd57600080fd5b506102cc61030c3660046125cd565b6108ae565b34801561031d57600080fd5b5061033161032c36600461261c565b6108d2565b005b34801561033f57600080fd5b5060405160128152602001610281565b34801561035b57600080fd5b50600f5461036f906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b34801561039357600080fd5b506102cc6103a23660046125a1565b610967565b3480156103b357600080fd5b506103316103c236600461261c565b610989565b3480156103d357600080fd5b506103e76103e2366004612655565b6109f1565b60405161ffff9091168152602001610281565b34801561040657600080fd5b506103e7610415366004612655565b610a1f565b34801561042657600080fd5b50610331610435366004612655565b610a2f565b34801561044657600080fd5b506102cc61045536600461266e565b60116020526000908152604090205460ff1681565b34801561047657600080fd5b5060135461036f9061010090046001600160a01b031681565b34801561049b57600080fd5b506103316104aa3660046126a9565b610a3c565b3480156104bb57600080fd5b506102776104ca36600461266e565b6001600160a01b031660009081526020819052604090205490565b3480156104f157600080fd5b50610331610be4565b34801561050657600080fd5b506102cc61051536600461266e565b60156020526000908152604090205460ff1681565b34801561053657600080fd5b506103316105453660046125a1565b610bf8565b34801561055657600080fd5b506103316105653660046125a1565b610c0d565b34801561057657600080fd5b506005546001600160a01b031661036f565b34801561059457600080fd5b5060145461036f906001600160a01b031681565b3480156105b457600080fd5b506103316105c336600461266e565b610d14565b3480156105d457600080fd5b5061029f610da8565b3480156105e957600080fd5b50600b5461036f906001600160a01b031681565b34801561060957600080fd5b506103e7610618366004612655565b610db7565b34801561062957600080fd5b506102cc6106383660046125a1565b610dc7565b34801561064957600080fd5b506102cc6106583660046125a1565b610e42565b34801561066957600080fd5b5061033161067836600461266e565b610e50565b34801561068957600080fd5b506103316106983660046126a9565b610edd565b3480156106a957600080fd5b506103316106b836600461261c565b61107c565b3480156106c957600080fd5b506103316106d836600461266e565b6110dc565b3480156106e957600080fd5b506103316106f8366004612655565b6111ab565b34801561070957600080fd5b506102cc61071836600461266e565b60066020526000908152604090205460ff1681565b34801561073957600080fd5b506102776107483660046126ec565b6111e8565b34801561075957600080fd5b506103316107683660046126a9565b611213565b34801561077957600080fd5b50600d5461036f906001600160a01b031681565b34801561079957600080fd5b506102776113b2565b3480156107ae57600080fd5b506103316107bd36600461266e565b6113e2565b3480156107ce57600080fd5b506103316107dd36600461266e565b611458565b3480156107ee57600080fd5b506103e76107fd366004612655565b6114e5565b6060600380546108119061271a565b80601f016020809104026020016040519081016040528092919081815260200182805461083d9061271a565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6000336108a28185856114f5565b60019150505b92915050565b6000336108bc858285611619565b6108c7858585611693565b506001949350505050565b6108da611c8b565b6014546001600160a01b03908116908316036109595760405162461bcd60e51b815260206004820152603360248201527f44656661756c74526f757465723a2043616e6e6f742072656d6f766520696e696044820152721d1a585b081c185a5c88199c9bdb481b1a5cdd606a1b60648201526084015b60405180910390fd5b6109638282611ce5565b5050565b6000336108a281858561097a83836111e8565b610984919061276a565b6114f5565b610991611c8b565b6001600160a01b038216600081815260066020908152604091829020805460ff191685151590811790915591519182527f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac91015b60405180910390a25050565b600e8160038110610a0157600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b60128160038110610a0157600080fd5b610a393382611d3d565b50565b610a44611c8b565b600c546012548491610a5d9161ffff9182169116612793565b610a6791906127b5565b6012805461ffff191661ffff9283161790819055600c548492610a97926201000092839004821692900416612793565b610aa191906127b5565b6012805463ffff000019166201000061ffff938416021790819055600c548392610ad992600160201b92839004821692900416612793565b610ae391906127b5565b6012805461ffff928316600160201b0265ffff0000000019821681179092556109c4908316919092161711801590610b2a57506012546109c46201000090910461ffff1611155b8015610b4657506012546109c4600160201b90910461ffff1611155b610b625760405162461bcd60e51b8152600401610950906127d0565b6040805160608101825261ffff80861682528481166020830152831691810191909152610b9390600c906003612493565b506040805161ffff808616825280851660208301528316918101919091527fdf5eccb780e20369ed153b2115b7ac602139c3559566558f93432b2d3700e882906060015b60405180910390a1505050565b610bec611c8b565b610bf66000611e7b565b565b610c03823383611619565b6109638282611d3d565b610c15611c8b565b306001600160a01b03831603610c7d5760405162461bcd60e51b815260206004820152602760248201527f546f6b656e5265636f7665723a2043616e6e6f74207265636f7665722074686960448201526639903a37b5b2b760c91b6064820152608401610950565b816001600160a01b031663a9059cbb610c9e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0f9190612826565b505050565b610d1c611c8b565b6001600160a01b038116610d425760405162461bcd60e51b815260040161095090612843565b600f80546001600160a01b0319166001600160a01b038316179055610d6881600161107c565b6040516001600160a01b03821681527f691dddb261ef808cea2f6cfa609afdb745b25f34ef1e7dba11dbf4e5df1de51c906020015b60405180910390a150565b6060600480546108119061271a565b60108160038110610a0157600080fd5b60003381610dd582866111e8565b905083811015610e355760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610950565b6108c782868684036114f5565b6000336108a2818585611693565b610e58611c8b565b6001600160a01b038116610e7e5760405162461bcd60e51b815260040161095090612843565b600d80546001600160a01b0319166001600160a01b038316179055610ea481600161107c565b6040516001600160a01b03821681527ff2dd470b6bcb4902d010d46e03e80132dda429ff72c81873e8ca11f49710518090602001610d9d565b610ee5611c8b565b600e546012548491610efe9161ffff9182169116612793565b610f0891906127b5565b6012805461ffff191661ffff9283161790819055600e548492610f38926201000092839004821692900416612793565b610f4291906127b5565b6012805463ffff000019166201000061ffff938416021790819055600e548392610f7a92600160201b92839004821692900416612793565b610f8491906127b5565b6012805461ffff928316600160201b0265ffff0000000019821681179092556109c4908316919092161711801590610fcb57506012546109c46201000090910461ffff1611155b8015610fe757506012546109c4600160201b90910461ffff1611155b6110035760405162461bcd60e51b8152600401610950906127d0565b6040805160608101825261ffff8086168252848116602083015283169181019190915261103490600e906003612493565b506040805161ffff808616825280851660208301528316918101919091527f66f82f7966ee08b099851ab7e6915cdce923b58281c8324b8c6b33e5165351e690606001610bd7565b611084611c8b565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791016109e5565b600554600160a81b900460ff16806110fe5750600554600160a01b900460ff16155b6111615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610950565b600554600160a81b900460ff1615801561118b576005805461ffff60a01b191661010160a01b1790555b61119482611ecd565b8015610963576005805460ff60a81b191690555050565b6111b3611c8b565b60078190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd0647690602001610d9d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61121b611c8b565b60105460125484916112349161ffff9182169116612793565b61123e91906127b5565b6012805461ffff191661ffff9283161790819055601054849261126e926201000092839004821692900416612793565b61127891906127b5565b6012805463ffff000019166201000061ffff93841602179081905560105483926112b092600160201b92839004821692900416612793565b6112ba91906127b5565b6012805461ffff928316600160201b0265ffff0000000019821681179092556109c490831691909216171180159061130157506012546109c46201000090910461ffff1611155b801561131d57506012546109c4600160201b90910461ffff1611155b6113395760405162461bcd60e51b8152600401610950906127d0565b6040805160608101825261ffff8086168252848116602083015283169181019190915261136a906010906003612493565b506040805161ffff808616825280851660208301528316918101919091527f2524ccb75260c9a50c71af1740c212c049a01232ef122061416b51815ec57a1890606001610bd7565b6000600a5460095460085460006113c9919061276a565b6113d3919061276a565b6113dd919061276a565b905090565b6113ea611c8b565b6001600160a01b03811661144f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610950565b610a3981611e7b565b611460611c8b565b6001600160a01b0381166114865760405162461bcd60e51b815260040161095090612843565b600b80546001600160a01b0319166001600160a01b0383161790556114ac81600161107c565b6040516001600160a01b03821681527f5ee1a0a56e2fa20825f01f2a0b604ea77df2c1e93f8280c4cda83abfb8a5f52690602001610d9d565b600c8160038110610a0157600080fd5b6001600160a01b0383166115575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610950565b6001600160a01b0382166115b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610950565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061162584846111e8565b9050600019811461168d57818110156116805760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610950565b61168d84848484036114f5565b50505050565b60006007546116a06113b2565b601354911115915060ff161580156116d157506001600160a01b03841660009081526015602052604090205460ff16155b80156116da5750805b1561193e576013805460ff19166001179055600060085411806116ff57506000600954115b8061170c57506000600a54115b15611933576000600a546009546008546000611728919061276a565b611732919061276a565b61173c919061276a565b90506000611749826120c3565b6008544790600090849061175d90846128af565b61176791906128c6565b905080156117e757600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050925082156117e757600b54604080516001600160a01b039092168252602082018390527fef3d91abffe19a6433dd25556f5d1f9631e4dc7e7eb9b2765f7e158bd1348f3a910160405180910390a15b6000600881905560095485906117fd90856128af565b61180791906128c6565b9050801561188757600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050509350831561188757600d54604080516001600160a01b039092168252602082018390527f7c0d2675e80c177f1af371f2872ebc242d565c60e0cf87888b37bdd88386d3a7910160405180910390a15b60006009819055600a54869061189d90866128af565b6118a791906128c6565b9050801561192757600f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050509450841561192757600f54604080516001600160a01b039092168252602082018390527f6d1a12c873f1cd3ea45dc06a028d6c0a12572a91666e5ee5e49c758f175db680910160405180910390a15b50506000600a55505050505b6013805460ff191690555b60135460ff161580156119515750600082115b801561197057506013546001600160a01b038481166101009092041614155b801561199557506001600160a01b03841660009081526011602052604090205460ff16155b80156119ba57506001600160a01b03831660009081526011602052604090205460ff16155b15611c80576001600160a01b03841660009081526015602052604081205460039060ff16156119f85760125461ffff16156119f3575060005b611a4a565b6001600160a01b03851660009081526015602052604090205460ff1615611a335760125462010000900461ffff16156119f357506001611a4a565b601254600160201b900461ffff1615611a4a575060025b60038160ff161015611c6c5761271060128260ff1660038110611a6f57611a6f61277d565b601091828204019190066002029054906101000a900461ffff1661ffff1685611a9891906128af565b611aa291906128c6565b9150611aae82856128e8565b935060128160ff1660038110611ac657611ac661277d565b601091828204019190066002029054906101000a900461ffff1661ffff16600c8260ff1660038110611afa57611afa61277d565b601091828204019190066002029054906101000a900461ffff1661ffff1683611b2391906128af565b611b2d91906128c6565b60086000828254611b3e919061276a565b909155506012905060ff821660038110611b5a57611b5a61277d565b601091828204019190066002029054906101000a900461ffff1661ffff16600e8260ff1660038110611b8e57611b8e61277d565b601091828204019190066002029054906101000a900461ffff1661ffff1683611bb791906128af565b611bc191906128c6565b60096000828254611bd2919061276a565b909155506012905060ff821660038110611bee57611bee61277d565b601091828204019190066002029054906101000a900461ffff1661ffff1660108260ff1660038110611c2257611c2261277d565b601091828204019190066002029054906101000a900461ffff1661ffff1683611c4b91906128af565b611c5591906128c6565b600a6000828254611c66919061276a565b90915550505b8115611c7d57611c7d863084612240565b50505b61168d848484612240565b6005546001600160a01b03163314610bf65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610950565b6001600160a01b038216600081815260156020908152604091829020805460ff191685151590811790915591519182527f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a845591016109e5565b6001600160a01b038216611d9d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610950565b611da9826000836123ef565b6001600160a01b03821660009081526020819052604090205481811015611e1d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610950565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80601360016101000a8154816001600160a01b0302191690836001600160a01b03160217905550601360019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6b91906128fb565b6001600160a01b031663c9c6539630601360019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff191906128fb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561203e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206291906128fb565b601480546001600160a01b0319166001600160a01b0392909216918217905561208c906001611ce5565b6040516001600160a01b038216907fbc052db65df144ad4f71f02da93cae3d4401104c30ac374d7cc10d87ee07b60290600090a250565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120f8576120f861277d565b60200260200101906001600160a01b031690816001600160a01b031681525050601360019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561216b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218f91906128fb565b816001815181106121a2576121a261277d565b6001600160a01b0392831660209182029290920101526013546121cd913091610100900416846114f5565b60135460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061220a908590600090869030904290600401612918565b600060405180830381600087803b15801561222457600080fd5b505af1158015612238573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166122a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610950565b6001600160a01b0382166123065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610950565b6123118383836123ef565b6001600160a01b038316600090815260208190526040902054818110156123895760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610950565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361168d565b6001600160a01b03831660009081526006602052604090205460ff1615801561243157506001600160a01b03821660009081526006602052604090205460ff16155b610d0f5760405162461bcd60e51b815260206004820152602d60248201527f426c61636b6c6973743a2053656e646572206f7220726563697069656e74206960448201526c1cc8189b1858dadb1a5cdd1959609a1b6064820152608401610950565b6001830191839082156125195791602002820160005b838211156124e957835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026124a9565b80156125175782816101000a81549061ffff02191690556002016020816001010492830192600103026124e9565b505b50612525929150612529565b5090565b5b80821115612525576000815560010161252a565b600060208083528351808285015260005b8181101561256b5785810183015185820160400152820161254f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a3957600080fd5b600080604083850312156125b457600080fd5b82356125bf8161258c565b946020939093013593505050565b6000806000606084860312156125e257600080fd5b83356125ed8161258c565b925060208401356125fd8161258c565b929592945050506040919091013590565b8015158114610a3957600080fd5b6000806040838503121561262f57600080fd5b823561263a8161258c565b9150602083013561264a8161260e565b809150509250929050565b60006020828403121561266757600080fd5b5035919050565b60006020828403121561268057600080fd5b813561268b8161258c565b9392505050565b803561ffff811681146126a457600080fd5b919050565b6000806000606084860312156126be57600080fd5b6126c784612692565b92506126d560208501612692565b91506126e360408501612692565b90509250925092565b600080604083850312156126ff57600080fd5b823561270a8161258c565b9150602083013561264a8161258c565b600181811c9082168061272e57607f821691505b60208210810361274e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108a8576108a8612754565b634e487b7160e01b600052603260045260246000fd5b61ffff8281168282160390808211156127ae576127ae612754565b5092915050565b61ffff8181168382160190808211156127ae576127ae612754565b60208082526036908201527f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560408201527564206d617820746f74616c20666565206f662032352560501b606082015260800190565b60006020828403121561283857600080fd5b815161268b8161260e565b60208082526046908201527f546178657344656661756c74526f7574657257616c6c65743a2057616c6c657460408201527f2074617820726563697069656e742063616e6e6f74206265206120307830206160608201526564647265737360d01b608082015260a00190565b80820281158282048414176108a8576108a8612754565b6000826128e357634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108a8576108a8612754565b60006020828403121561290d57600080fd5b815161268b8161258c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129685784516001600160a01b031683529383019391830191600101612943565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de04374b72b3493f0f442e2421f97c76fcf8a6c135dd11db5d1d00fc5602daa664736f6c63430008130033546178657344656661756c74526f7574657257616c6c65743a2057616c6c6574546178657344656661756c74526f757465723a2043616e6e6f742065786365652074617820726563697069656e742063616e6e6f74206265206120307830206164206d617820746f74616c20666565206f662032352500000000000000000000