[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": false, "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "ClearStuckBalance", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "LogRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256", "name": "supplyDelta", "type": "int256" } ], "name": "ManualRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterRemoved", "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": false, "internalType": "bool", "name": "_autoRebase", "type": "bool" } ], "name": "SetAutoRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_addr", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "SetFeeExempted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_liquidityReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_treasuryReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_riskFreeValueReceiver", "type": "address" } ], "name": "SetFeeReceivers", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_riskFreeValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_treasuryFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_sellFeeTreasuryAdded", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "SetFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "SetInitialDistributionFinished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "SetIsLiquidityInAvax", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_nextRebase", "type": "uint256" } ], "name": "SetNextRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_rebaseFrequency", "type": "uint256" } ], "name": "SetRebaseFrequency", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_rewardYield", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_rewardYieldDenominator", "type": "uint256" } ], "name": "SetRewardYield", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "_num", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_denom", "type": "uint256" } ], "name": "SetSwapBackSettings", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "target", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "SetTargetLiquidity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "avaxReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "daiReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquifyDai", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "contractTokenBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToLiquify", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToRFV", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToTreasury", "type": "uint256" } ], "name": "SwapBack", "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" }, { "inputs": [], "name": "MAX_FEE_BUY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEE_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEE_SELL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "_markerPairs", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "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": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoRebase", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "buyFeeRFV", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "checkFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkSwapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "clearStuckBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "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": [], "name": "feeDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardYield", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardYieldDenominator", "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": "initialDistributionFinished", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLiquidityInAvax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualRebase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manualSync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextRebase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairContract", "outputs": [ { "internalType": "contract InterfaceLP", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rebaseFrequency", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardYield", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardYieldDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "riskFreeValueReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IJoeRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellFeeTreasuryAdded", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_autoRebase", "type": "bool" } ], "name": "setAutoRebase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_treasuryReceiver", "type": "address" }, { "internalType": "address", "name": "_riskFreeValueReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_riskFreeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_treasuryFee", "type": "uint256" }, { "internalType": "uint256", "name": "_sellFeeTreasuryAdded", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setInitialDistributionFinished", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setIsLiquidityInAvax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nextRebase", "type": "uint256" } ], "name": "setNextRebase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rebaseFrequency", "type": "uint256" } ], "name": "setRebaseFrequency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rewardYield", "type": "uint256" }, { "internalType": "uint256", "name": "_rewardYieldDenominator", "type": "uint256" } ], "name": "setRewardYield", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_num", "type": "uint256" }, { "internalType": "uint256", "name": "_denom", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBuyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSellFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "value", "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": "value", "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": [], "name": "treasuryFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "usdtToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526005805463ffffffff60a01b19166201000160a81b179055660114dbbe53a46760065567016345785d8a0000600755613840600881905562000047904262000cb0565b600955600d805461dead6001600160a01b031991821617909155600e805482169055600f8054730acd97149364f40ff70fd2ad744facb5286fe1019083168117909155601080548316821790556011805483169091179055601280547382dcec6aa3c8bfe2c96d40d8805ee0da1570864392169190911790556005601581905560168190556003601781905560188290556200010991620000f59080620006d5602090811b620021b317901c565b620006d560201b620021b31790919060201c565b6019556200012a601854601954620006d560201b620021b31790919060201c565b601a556064601b8190556032601c55601d556103e86200014d6012600a62000d2b565b6200015e9064174876e80062000de7565b6200016c9060001962000e7e565b6200017a9060001962000e09565b62000186919062000ccb565b6021553480156200019657600080fd5b50604080518082018252600681526552656261736560d01b60208083019182528351808501909452600384526226a22960e91b908401528151919291601291620001e4916000919062000bb4565b508151620001fa90600190602085019062000bb4565b506002805460ff191660ff92909216919091179055506200022490506200021e3390565b620006ec565b6001600355620002343362000746565b601380546001600160a01b031916732d99abd9008dc933ff5c0cd271b88309593ab9219081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200029457600080fd5b505afa158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000c5a565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032c57600080fd5b505afa15801562000341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000367919062000c5a565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620003af57600080fd5b505af1158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000c5a565b601480546001600160a01b0319166001600160a01b039290921691821790556200041690600162000798565b60125460135460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b1580156200046857600080fd5b505af11580156200047d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a3919062000c8c565b5060125460405163095ea7b360e01b815230600482015260001960248201526001600160a01b039091169063095ea7b390604401602060405180830381600087803b158015620004f257600080fd5b505af115801562000507573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052d919062000c8c565b503060008181526023602090815260408083206013546001600160a01b0390811685529252808320600019908190556014549092168352808320829055928252919020556200057f6012600a62000d2b565b620005909064174876e80062000de7565b601f55620005a16012600a62000d2b565b620005b29064174876e80062000de7565b620005c09060001962000e7e565b620005ce9060001962000e09565b33600090815260226020526040902055601f546200063590620005f46012600a62000d2b565b620006059064174876e80062000de7565b620006139060001962000e7e565b620006219060001962000e09565b62000a9360201b620021bf1790919060201c565b60209081556010546001600160a01b039081166000908152600a835260408082208054600160ff199182168117909255601154909416835281832080548516821790553083528183208054851682179055338084528284208054909516909117909355601f549051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000eed565b6000620006e3828462000cb0565b90505b92915050565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200076181600462000aa160201b620021cb1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6002546001600160a01b03610100909104163314620007fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff1615158115151415620008635760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620007f5565b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155620008e257600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b03841617905562000a57565b600b54600110620009285760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620007f5565b60005b600b5481101562000a5557826001600160a01b0316600b828154811062000956576200095662000ed7565b6000918252602090912001546001600160a01b0316141562000a4057600b620009946001600b8054905062000b2160201b620022471790919060201c565b81548110620009a757620009a762000ed7565b600091825260209091200154600b80546001600160a01b039092169183908110620009d657620009d662000ed7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b80548062000a185762000a1862000ec1565b600082815260209020810160001990810180546001600160a01b031916905501905562000a55565b8062000a4c8162000e60565b9150506200092b565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000620006e3828462000ccb565b62000aad828262000b2f565b1562000afc5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401620007f5565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000620006e3828462000e09565b60006001600160a01b03821662000b945760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401620007f5565b506001600160a01b03166000908152602091909152604090205460ff1690565b82805462000bc29062000e23565b90600052602060002090601f01602090048101928262000be6576000855562000c31565b82601f1062000c0157805160ff191683800117855562000c31565b8280016001018555821562000c31579182015b8281111562000c3157825182559160200191906001019062000c14565b5062000c3f92915062000c43565b5090565b5b8082111562000c3f576000815560010162000c44565b60006020828403121562000c6d57600080fd5b81516001600160a01b038116811462000c8557600080fd5b9392505050565b60006020828403121562000c9f57600080fd5b8151801515811462000c8557600080fd5b6000821982111562000cc65762000cc662000e95565b500190565b60008262000cdd5762000cdd62000eab565b500490565b600181815b8085111562000d2357816000190482111562000d075762000d0762000e95565b8085161562000d1557918102915b93841c939080029062000ce7565b509250929050565b6000620006e3838360008262000d4457506001620006e6565b8162000d5357506000620006e6565b816001811462000d6c576002811462000d775762000d97565b6001915050620006e6565b60ff84111562000d8b5762000d8b62000e95565b50506001821b620006e6565b5060208310610133831016604e8410600b841016171562000dbc575081810a620006e6565b62000dc8838362000ce2565b806000190482111562000ddf5762000ddf62000e95565b029392505050565b600081600019048311821515161562000e045762000e0462000e95565b500290565b60008282101562000e1e5762000e1e62000e95565b500390565b600181811c9082168062000e3857607f821691505b6020821081141562000e5a57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000e775762000e7762000e95565b5060010190565b60008262000e905762000e9062000eab565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b613b3f8062000efd6000396000f3fe6080604052600436106104095760003560e01c80637d4b501711610213578063a8aa1b3111610123578063d4399790116100ab578063dd62ed3e1161007a578063dd62ed3e14610b98578063e15beb8014610bde578063e1d5584c14610bfe578063f2fde38b14610c1e578063f887ea4014610c3e57600080fd5b8063d439979014610b09578063d51ed1c814610b42578063d7832b1114610b62578063d7c0103214610b7857600080fd5b8063b62496f5116100f2578063b62496f514610a6c578063bc7e68a314610a9c578063cc32d17614610ab2578063d088935814610ac8578063d1fce26414610ae857600080fd5b8063a8aa1b31146109ec578063a9059cbb14610a0c578063a98ad46c14610a2c578063aa271e1a14610a4c57600080fd5b80639763eec4116101a65780639a7a23d6116101755780639a7a23d6146109615780639ae7372d146109815780639cf59d7f146109a15780639d9241ec146109b6578063a457c2d7146109cc57600080fd5b80639763eec41461090057806398118cb414610916578063983b2d561461092c578063986502751461094c57600080fd5b80638ebfc796116101e25780638ebfc796146108aa5780639079f932146108ca57806392f6576e1461079c57806395d89b41146108eb57600080fd5b80637d4b50171461083b5780638102c5701461085b57806389375abf146108715780638da5cb5b1461088757600080fd5b8063313ce5671161031957806361a9d1b1116102a157806370a082311161027057806370a08231146107b1578063715018a6146107d1578063753d02a1146107e6578063764d72bf146107fb57806379cc67901461081b57600080fd5b806361a9d1b1146107515780636d351d1a146107665780636ddd17131461077b5780636def69e11461079c57600080fd5b806342966c68116102e857806342966c68146106c657806344c59e7f146106e65780634cd9ddf2146106fb5780634d709adf1461071b57806359b107b91461073b57600080fd5b8063313ce56714610644578063395093511461066657806340c10f191461068657806342762cbb146106a657600080fd5b80631276089b1161039c578063201e79911161036b578063201e7991146105af57806323b872dd146105cf578063264d26dd146105ef5780632b112e491461060f5780633092afd51461062457600080fd5b80631276089b14610543578063180b0d7e1461056357806318160ddd1461057957806318a755691461058e57600080fd5b8063095ea7b3116103d8578063095ea7b3146104ba5780630af08314146104ea5780630e30b8501461050e5780631161ae391461052357600080fd5b806301b168271461041557806304a66b481461043757806306fdde031461045757806308b1fd8f1461048257600080fd5b3661041057005b600080fd5b34801561042157600080fd5b506104356104303660046136dd565b610c5e565b005b34801561044357600080fd5b5061043561045236600461372d565b610cdf565b34801561046357600080fd5b5061046c610ef7565b6040516104799190613768565b60405180910390f35b34801561048e57600080fd5b506010546104a2906001600160a01b031681565b6040516001600160a01b039091168152602001610479565b3480156104c657600080fd5b506104da6104d5366004613631565b610f89565b6040519015158152602001610479565b3480156104f657600080fd5b5061050060065481565b604051908152602001610479565b34801561051a57600080fd5b50610500600d81565b34801561052f57600080fd5b506104da61053e3660046136dd565b610fe4565b34801561054f57600080fd5b5061043561055e36600461365d565b610ff8565b34801561056f57600080fd5b50610500601b5481565b34801561058557600080fd5b50601f54610500565b34801561059a57600080fd5b506005546104da90600160b81b900460ff1681565b3480156105bb57600080fd5b506104356105ca3660046136dd565b6110b1565b3480156105db57600080fd5b506104da6105ea3660046135bb565b611121565b3480156105fb57600080fd5b50600f546104a2906001600160a01b031681565b34801561061b57600080fd5b50610500611237565b34801561063057600080fd5b5061043561063f3660046134fd565b6112b5565b34801561065057600080fd5b5060025460405160ff9091168152602001610479565b34801561067257600080fd5b506104da610681366004613631565b6112f1565b34801561069257600080fd5b506104356106a1366004613631565b611364565b3480156106b257600080fd5b506104356106c136600461365d565b611480565b3480156106d257600080fd5b506104356106e13660046136ab565b61152e565b3480156106f257600080fd5b50600754610500565b34801561070757600080fd5b506104356107163660046136ab565b611538565b34801561072757600080fd5b506005546104a2906001600160a01b031681565b34801561074757600080fd5b5061050060195481565b34801561075d57600080fd5b506104356115da565b34801561077257600080fd5b5061050061171f565b34801561078757600080fd5b506005546104da90600160a81b900460ff1681565b3480156107a857600080fd5b50610500601281565b3480156107bd57600080fd5b506105006107cc3660046134fd565b611738565b3480156107dd57600080fd5b5061043561175e565b3480156107f257600080fd5b5061043561179a565b34801561080757600080fd5b506104356108163660046134fd565b611830565b34801561082757600080fd5b50610435610836366004613631565b6118d2565b34801561084757600080fd5b506011546104a2906001600160a01b031681565b34801561086757600080fd5b5061050060185481565b34801561087d57600080fd5b5061050060085481565b34801561089357600080fd5b5060025461010090046001600160a01b03166104a2565b3480156108b657600080fd5b506104356108c53660046135fc565b6118eb565b3480156108d657600080fd5b506005546104da90600160b01b900460ff1681565b3480156108f757600080fd5b5061046c6119b6565b34801561090c57600080fd5b5061050060175481565b34801561092257600080fd5b5061050060155481565b34801561093857600080fd5b506104356109473660046134fd565b6119c5565b34801561095857600080fd5b506104356119fe565b34801561096d57600080fd5b5061043561097c3660046135fc565b611a07565b34801561098d57600080fd5b5061043561099c3660046136ab565b611ca1565b3480156109ad57600080fd5b50600654610500565b3480156109c257600080fd5b50610500601a5481565b3480156109d857600080fd5b506104da6109e7366004613631565b611d06565b3480156109f857600080fd5b506014546104a2906001600160a01b031681565b348015610a1857600080fd5b506104da610a27366004613631565b611ddb565b348015610a3857600080fd5b506012546104a2906001600160a01b031681565b348015610a5857600080fd5b506104da610a673660046134fd565b611e43565b348015610a7857600080fd5b506104da610a873660046134fd565b600c6020526000908152604090205460ff1681565b348015610aa857600080fd5b5061050060095481565b348015610abe57600080fd5b5061050060165481565b348015610ad457600080fd5b50610435610ae3366004613678565b611e50565b348015610af457600080fd5b506005546104da90600160a01b900460ff1681565b348015610b1557600080fd5b506104da610b243660046134fd565b6001600160a01b03166000908152600a602052604090205460ff1690565b348015610b4e57600080fd5b50610500610b5d3660046136ab565b611efd565b348015610b6e57600080fd5b5061050060075481565b348015610b8457600080fd5b50610435610b93366004613570565b611f91565b348015610ba457600080fd5b50610500610bb3366004613537565b6001600160a01b03918216600090815260236020908152604080832093909416825291909152205490565b348015610bea57600080fd5b50610435610bf936600461365d565b61203d565b348015610c0a57600080fd5b506104a2610c193660046136ab565b6120eb565b348015610c2a57600080fd5b50610435610c393660046134fd565b612115565b348015610c4a57600080fd5b506013546104a2906001600160a01b031681565b6002546001600160a01b03610100909104163314610c975760405162461bcd60e51b8152600401610c8e906137e2565b60405180910390fd5b6006829055600781905560408051838152602081018390527f3f34134cbdd92374af629b5ba82900de3e5301e7206333e1463e306916507d5691015b60405180910390a15050565b6002546001600160a01b03610100909104163314610d0f5760405162461bcd60e51b8152600401610c8e906137e2565b60128511158015610d21575060128411155b8015610d2e575060128311155b8015610d3b575060128211155b610d6f5760405162461bcd60e51b815260206004820152600560248201526477726f6e6760d81b6044820152606401610c8e565b6015859055601784905560168390556018829055610d9784610d9187866121b3565b906121b3565b6019819055601854610da991906121b3565b601a55601954600d1015610dff5760405162461bcd60e51b815260206004820152601960248201527f546f74616c204255592066656520697320746f6f2068696768000000000000006044820152606401610c8e565b6012601a541115610e525760405162461bcd60e51b815260206004820152601a60248201527f546f74616c2053454c4c2066656520697320746f6f20686967680000000000006044820152606401610c8e565b601b819055610e626004826138a0565b60195410610ea05760405162461bcd60e51b815260206004820152600b60248201526a746f74616c42757946656560a81b6044820152606401610c8e565b604080518681526020810186905290810184905260608101839052608081018290527f881c278b86ef48391462a184ea0f2a579fec4c752524d2982eb0e2c9a956b7a39060a0015b60405180910390a15050505050565b606060008054610f06906139d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610f32906139d5565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b3360008181526023602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020613aea83398151915290610fd29086815260200190565b60405180910390a35060015b92915050565b600082610ff083611efd565b119392505050565b6002546001600160a01b036101009091041633146110285760405162461bcd60e51b8152600401610c8e906137e2565b60055460ff600160a01b90910416151581151514156110595760405162461bcd60e51b8152600401610c8e906137bd565b60058054821515600160a01b0260ff60a01b199091161790556040517f7ff743f3545e37dc045546239e43c5339aa2a94f682e0350554fb0fb044ed376906110a690831515815260200190565b60405180910390a150565b6002546001600160a01b036101009091041633146110e15760405162461bcd60e51b8152600401610c8e906137e2565b601c829055601d81905560408051838152602081018390527f61b037fbf40888c3d344a3dfa6986a7d511feda40cac15b93162e3e21713aed69101610cd3565b6000826001600160a01b0381166111735760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b6044820152606401610c8e565b6001600160a01b038516600090815260236020908152604080832033845290915290205460001914611220576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03881660009081526023825283812033825290915291909120546111fb918590612253565b6001600160a01b03861660009081526023602090815260408083203384529091529020555b61122b85858561227f565b50600195945050505050565b60208054600e546001600160a01b0390811660009081526022909352604080842054600d5490921684528320546112b092916112aa916112a49061127d6012600a6138f7565b61128c9064174876e80061399f565b61129890600019613a2b565b6112a4906000196139be565b90612247565b906121bf565b905090565b6002546001600160a01b036101009091041633146112e55760405162461bcd60e51b8152600401610c8e906137e2565b6112ee816124c0565b50565b3360009081526023602090815260408083206001600160a01b038616845290915281205461131f90836121b3565b3360008181526023602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020613aea8339815191529101610fd2565b61136d33611e43565b6113d25760405162461bcd60e51b815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201526f20746865204d696e74657220726f6c6560801b6064820152608401610c8e565b601f546113df90826121b3565b601f8190556001600160801b0310156113fe576001600160801b03601f555b601f54611438906114116012600a6138f7565b6114209064174876e80061399f565b61142c90600019613a2b565b6112aa906000196139be565b60209081556001600160a01b03831660009081526022909152604090205461146090826121b3565b6001600160a01b0390921660009081526022602052604090209190915550565b6002546001600160a01b036101009091041633146114b05760405162461bcd60e51b8152600401610c8e906137e2565b60055460ff600160b81b90910416151581151514156114e15760405162461bcd60e51b8152600401610c8e906137bd565b60058054821515600160b81b0260ff60b81b199091161790556040517faf6d04245008afdd5ffe9f7ff0100f76147b37509ab650932605cf1d1869f669906110a690831515815260200190565b6112ee3382612502565b6002546001600160a01b036101009091041633146115685760405162461bcd60e51b8152600401610c8e906137e2565b6138408111156115a55760405162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b6044820152606401610c8e565b60088190556040518181527f2b437b36906bbacfbc05b761a7c548a2789a8f89f67286f88e93b04560822bc7906020016110a6565b6002600354141561162d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8e565b6002600355601e5460ff16156116715760405162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b6044820152606401610c8e565b4260095411156116b15760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610c8e565b60006116d06007546112aa600654601f5461265390919063ffffffff16565b90506116db8161265f565b506116e461179a565b6040518181527f612668bb4420df7d3f2fcc122dfd5fd434dc0cb2e1dce1b8180712f9200677119060200160405180910390a1506001600355565b60006112b06020546021546121bf90919063ffffffff16565b602080546001600160a01b038316600090815260229092526040822054610fde916121bf565b6002546001600160a01b0361010090910416331461178e5760405162461bcd60e51b8152600401610c8e906137e2565b611798600061275c565b565b60005b600b548110156112ee57600b81815481106117ba576117ba613a9e565b60009182526020822001546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae99260048084019382900301818387803b15801561180557600080fd5b505af1158015611819573d6000803e3d6000fd5b50505050808061182890613a10565b91505061179d565b6002546001600160a01b036101009091041633146118605760405162461bcd60e51b8152600401610c8e906137e2565b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611898573d6000803e3d6000fd5b506040516001600160a01b03831681527f2f0f983bc447da14da80ef6b41a88ab1ea636129df3a6af92b870934d6802a8590602001610cd3565b6118dd8233836127b6565b6118e78282612502565b5050565b6002546001600160a01b0361010090910416331461191b5760405162461bcd60e51b8152600401610c8e906137e2565b6001600160a01b0382166000908152600a602052604090205460ff161515811515141561195a5760405162461bcd60e51b8152600401610c8e906137bd565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527f6be51401060be42994125d8c96b787433e7a641a3555e3c3c4765e8a950fa37a9101610cd3565b606060018054610f06906139d5565b6002546001600160a01b036101009091041633146119f55760405162461bcd60e51b8152600401610c8e906137e2565b6112ee81612848565b611798336124c0565b6002546001600160a01b03610100909104163314611a375760405162461bcd60e51b8152600401610c8e906137e2565b6001600160a01b0382166000908152600c602052604090205460ff1615158115151415611a9a5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610c8e565b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611b1757600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b038416179055611c65565b600b54600110611b5b5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610c8e565b60005b600b54811015611c6357826001600160a01b0316600b8281548110611b8557611b85613a9e565b6000918252602090912001546001600160a01b03161415611c5157600b8054611baf906001612247565b81548110611bbf57611bbf613a9e565b600091825260209091200154600b80546001600160a01b039092169183908110611beb57611beb613a9e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b805480611c2a57611c2a613a88565b600082815260209020810160001990810180546001600160a01b0319169055019055611c63565b80611c5b81613a10565b915050611b5e565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6002546001600160a01b03610100909104163314611cd15760405162461bcd60e51b8152600401610c8e906137e2565b60098190556040518181527fde97971104f1e2ea739b6fa6bd7a7eb834d3ed54ffa08425c5eb48ed9fbc27b6906020016110a6565b3360009081526023602090815260408083206001600160a01b0386168452909152812054808310611d5a573360009081526023602090815260408083206001600160a01b0388168452909152812055611d89565b611d648184612247565b3360009081526023602090815260408083206001600160a01b03891684529091529020555b3360008181526023602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020613aea833981519152910160405180910390a35060019392505050565b6000826001600160a01b038116611e2d5760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b6044820152606401610c8e565b611e3833858561227f565b506001949350505050565b6000610fde60048361288a565b6002546001600160a01b03610100909104163314611e805760405162461bcd60e51b8152600401610c8e906137e2565b6005805460ff60a81b1916600160a81b85151502179055611eb182611eab836114116012600a6138f7565b90612653565b602155604080518415158152602081018490529081018290527f512cfe1aedabdc06d12a680ace7434d88a9532c8853515536842f5ff52cbe55a906060015b60405180910390a1505050565b600080805b600b54811015611f6157611f4e611f47633b9aca006112aa600b8581548110611f2d57611f2d613a9e565b6000918252602090912001546001600160a01b0316611738565b83906121b3565b5080611f5981613a10565b915050611f02565b50611f8a611f75633b9aca006112aa611237565b6112aa611f83846002612653565b8690612653565b9392505050565b6002546001600160a01b03610100909104163314611fc15760405162461bcd60e51b8152600401610c8e906137e2565b600f80546001600160a01b038581166001600160a01b0319928316811790935560108054868316908416811790915560118054928616929093168217909255604080519384526020840192909252908201527fb923dcdfa226a9163e9324bacc07634c44fc26e1268f8341bc0989d83f4794b890606001611ef0565b6002546001600160a01b0361010090910416331461206d5760405162461bcd60e51b8152600401610c8e906137e2565b60055460ff600160b01b909104161515811515141561209e5760405162461bcd60e51b8152600401610c8e906137bd565b60058054821515600160b01b0260ff60b01b199091161790556040517f76a3b4a2762dae8901450e92a099b166b4ec4b38d2509a67740a4d48fc642460906110a690831515815260200190565b600b81815481106120fb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b036101009091041633146121455760405162461bcd60e51b8152600401610c8e906137e2565b6001600160a01b0381166121aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c8e565b6112ee8161275c565b6000611f8a8284613888565b6000611f8a82846138a0565b6121d5828261288a565b156122225760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610c8e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000611f8a82846139be565b600081848411156122775760405162461bcd60e51b8152600401610c8e9190613768565b505050900390565b6001600160a01b0383166000908152600a6020526040812054819060ff16806122c057506001600160a01b0384166000908152600a602052604090205460ff165b600554909150600160a01b900460ff16806122d85750805b61231a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd081cdd185c9d1959606a1b6044820152606401610c8e565b601e5460ff16156123385761233085858561290d565b915050611f8a565b600061234f6020548561265390919063ffffffff16565b90506123596129cf565b1561236657612366612a49565b6001600160a01b0386166000908152602260205260409020546123899082612247565b6001600160a01b0387166000908152602260205260408120919091556123af8787612bf4565b6123b957816123c4565b6123c4878784612c86565b6001600160a01b0387166000908152602260205260409020549091506123ea90826121b3565b6001600160a01b03808816600081815260226020908152604090912093909355915490891690600080516020613aca8339815191529061242b9085906121bf565b60405190815260200160405180910390a360095442101580156124575750600554600160b01b900460ff165b156124b357612464612d46565b6001600160a01b0387166000908152600c602052604090205460ff161580156124a657506001600160a01b0386166000908152600c602052604090205460ff16155b156124b3576124b361179a565b5060019695505050505050565b6124cb600482612d7a565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6001600160a01b0382166125625760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c8e565b6001600160a01b038216600090815260226020526040902054818110156125d65760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c8e565b6125f56125ee6020548461265390919063ffffffff16565b8290612247565b6001600160a01b038416600090815260226020526040902055601f5461261b9083612247565b601f556040518281526000906001600160a01b03851690600080516020613aca833981519152906020015b60405180910390a3505050565b6000611f8a828461399f565b600042826126ad57807f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2601f5460405161269b91815260200190565b60405180910390a25050601f54919050565b60008312156126d3576126cb6126c284613a3f565b601f5490612247565b601f556126e4565b601f546126e090846121b3565b601f555b601f546001600160801b031015612701576001600160801b03601f555b601f54612714906114116012600a6138f7565b6020556008546127249082613888565b600955601f5460405190815281907f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29060200161269b565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03838116600090815260236020908152604080832093861683529290522054600019811461284257818110156128355760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610c8e565b6128428484848403612dfc565b50505050565b6128536004826121cb565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b0382166128ed5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000806129256020548461265390919063ffffffff16565b6001600160a01b03861660009081526022602052604090205490915061294b9082612247565b6001600160a01b03808716600090815260226020526040808220939093559086168152205461297a90826121b3565b6001600160a01b038086166000818152602260205260409081902093909355915190871690600080516020613aca833981519152906129bc9087815260200190565b60405180910390a3506001949350505050565b336000908152600c602052604081205460ff161580156129f25750601e5460ff16155b8015612a075750600554600160a81b900460ff165b8015612a2957506000612a27601a546019546121b390919063ffffffff16565b115b80156112b057505060215430600090815260226020526040902054101590565b601e5460ff1615612a9c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8e565b601e805460ff19166001179055601a54601954600091612abc91906121b3565b90506000612ace601c54601d54610fe4565b612ada57601554612add565b60005b60208054306000908152602290925260408220549293509091612aff916121bf565b90506000612b1c846112aa612b15866002612653565b8590612653565b90506000612b3d856112aa611f83600260175461265390919063ffffffff16565b90506000612b4f826112a48686612247565b90508215612b6057612b6083612f06565b8115612b7d57601154612b7d9083906001600160a01b03166130eb565b8015612b9a57601054612b9a9082906001600160a01b03166130eb565b6040805185815260208101859052908101839052606081018290527fa4903880285538fa6ffa51cad044f25c39cc7f89aa6cbbda844135ff94827edf9060800160405180910390a15050601e805460ff1916905550505050565b6001600160a01b0382166000908152600a602052604081205460ff1680612c3357506001600160a01b0382166000908152600a602052604090205460ff165b15612c4057506000610fde565b6001600160a01b0383166000908152600c602052604090205460ff1680612c7f57506001600160a01b0382166000908152600c602052604090205460ff165b9050610fde565b6019546001600160a01b0383166000908152600c602052604081205490919060ff1615612cb25750601a545b601b54600090612cc6906112aa8685612653565b30600090815260226020526040902054909150612ce390826121b3565b3060008181526022602090815260409091209290925590546001600160a01b03881690600080516020613aca83398151915290612d219085906121bf565b60405190815260200160405180910390a3612d3c8482612247565b9695505050505050565b601e5460ff16611798576000612d6f6007546112aa600654601f5461265390919063ffffffff16565b90506118e78161265f565b612d84828261288a565b612dda5760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610c8e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038316612e5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c8e565b6001600160a01b038216612ebf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b6001600160a01b038381166000818152602360209081526040808320948716808452948252918290208590559051848152600080516020613aea8339815191529101612646565b6000612f138260026121bf565b90506000612f218383612247565b600554909150600160b81b900460ff1615612f975747612f4183306130eb565b6000612f4d4783612247565b9050612f59838261323c565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56190606001610ee8565b6012546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015612fdb57600080fd5b505afa158015612fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301391906136c4565b905061301f83306132e7565b6012546040516370a0823160e01b81523060048201526000916130a19184916001600160a01b0316906370a082319060240160206040518083038186803b15801561306957600080fd5b505afa15801561307d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a491906136c4565b90506130ad8382613434565b60408051858152602081018390529081018490527fa1b6307d59dd6c9c2989a8f4454e81b33692b042ad395da897b508ac48d2a55690606001610ee8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061312057613120613a9e565b6001600160a01b03928316602091820292909201810191909152601354604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b15801561317457600080fd5b505afa158015613188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ac919061351a565b816001815181106131bf576131bf613a9e565b6001600160a01b039283166020918202929092010152601354604051633b158ab160e11b815291169063762b156290613205908690600090869088904290600401613817565b600060405180830381600087803b15801561321f57600080fd5b505af1158015613233573d6000803e3d6000fd5b50505050505050565b601354600f54604051637c8d9fb960e11b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c4016060604051808303818588803b1580156132a757600080fd5b505af11580156132bb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132e091906136ff565b5050505050565b6040805160038082526080820190925260009160208201606080368337019050509050308160008151811061331e5761331e613a9e565b6001600160a01b03928316602091820292909201810191909152601354604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b15801561337257600080fd5b505afa158015613386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133aa919061351a565b816001815181106133bd576133bd613a9e565b6001600160a01b0392831660209182029290920101526012548251911690829060029081106133ee576133ee613a9e565b6001600160a01b039283166020918202929092010152601354604051635c11d79560e01b8152911690635c11d79590613205908690600090869088904290600401613817565b601354601254600f5460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018690526064810185905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156134b057600080fd5b505af11580156134c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e091906136ff565b803580151581146134f857600080fd5b919050565b60006020828403121561350f57600080fd5b8135611f8a81613ab4565b60006020828403121561352c57600080fd5b8151611f8a81613ab4565b6000806040838503121561354a57600080fd5b823561355581613ab4565b9150602083013561356581613ab4565b809150509250929050565b60008060006060848603121561358557600080fd5b833561359081613ab4565b925060208401356135a081613ab4565b915060408401356135b081613ab4565b809150509250925092565b6000806000606084860312156135d057600080fd5b83356135db81613ab4565b925060208401356135eb81613ab4565b929592945050506040919091013590565b6000806040838503121561360f57600080fd5b823561361a81613ab4565b9150613628602084016134e8565b90509250929050565b6000806040838503121561364457600080fd5b823561364f81613ab4565b946020939093013593505050565b60006020828403121561366f57600080fd5b611f8a826134e8565b60008060006060848603121561368d57600080fd5b613696846134e8565b95602085013595506040909401359392505050565b6000602082840312156136bd57600080fd5b5035919050565b6000602082840312156136d657600080fd5b5051919050565b600080604083850312156136f057600080fd5b50508035926020909101359150565b60008060006060848603121561371457600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561374557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b8181101561379557858101830151858201604001528201613779565b818111156137a7576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a139bdd0818da185b99d95960aa1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138675784516001600160a01b031683529383019391830191600101613842565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561389b5761389b613a5c565b500190565b6000826138af576138af613a72565b500490565b600181815b808511156138ef5781600019048211156138d5576138d5613a5c565b808516156138e257918102915b93841c93908002906138b9565b509250929050565b6000611f8a838360008261390d57506001610fde565b8161391a57506000610fde565b8160018114613930576002811461393a57613956565b6001915050610fde565b60ff84111561394b5761394b613a5c565b50506001821b610fde565b5060208310610133831016604e8410600b8410161715613979575081810a610fde565b61398383836138b4565b806000190482111561399757613997613a5c565b029392505050565b60008160001904831182151516156139b9576139b9613a5c565b500290565b6000828210156139d0576139d0613a5c565b500390565b600181811c908216806139e957607f821691505b60208210811415613a0a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613a2457613a24613a5c565b5060010190565b600082613a3a57613a3a613a72565b500690565b6000600160ff1b821415613a5557613a55613a5c565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146112ee57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212205cf4a29d2d8223ba35ecb410d479f3fef11e58ca90844452eca794d9efa6c72b64736f6c63430008070033