Loading
[ { "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" } ]
60806040526005805463ffffffff60a01b19166201000160a81b179055660114dbbe53a46760065567016345785d8a0000600755613840600881905562000047904262000cb0565b600955600d805461dead6001600160a01b031991821617909155600e805482169055600f8054730acd97149364f40ff70fd2ad744facb5286fe1019083168117909155601080548316821790556011805483169091179055601280547382dcec6aa3c8bfe2c96d40d8805ee0da1570864392169190911790556005601581905560168190556003601781905560188290556200010991620000f59080620006d5602090811b620021e917901c565b620006d560201b620021e91790919060201c565b6019556200012a601854601954620006d560201b620021e91790919060201c565b601a556064601b8190556032601c55601d556103e86200014d6012600a62000d2b565b6200015e9064174876e80062000de7565b6200016c9060001962000e7e565b6200017a9060001962000e09565b62000186919062000ccb565b6021553480156200019657600080fd5b50604080518082018252600681526552656261736560d01b6020808301918252835180850190945260038452624b4b4b60e81b908401528151919291601291620001e4916000919062000bb4565b508151620001fa90600190602085019062000bb4565b506002805460ff191660ff92909216919091179055506200022490506200021e3390565b620006ec565b6001600355620002343362000746565b601380546001600160a01b031916732d99abd9008dc933ff5c0cd271b88309593ab9219081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200029457600080fd5b505afa158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000c5a565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032c57600080fd5b505afa15801562000341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000367919062000c5a565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620003af57600080fd5b505af1158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000c5a565b601480546001600160a01b0319166001600160a01b039290921691821790556200041690600162000798565b60125460135460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b1580156200046857600080fd5b505af11580156200047d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a3919062000c8c565b5060125460405163095ea7b360e01b815230600482015260001960248201526001600160a01b039091169063095ea7b390604401602060405180830381600087803b158015620004f257600080fd5b505af115801562000507573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052d919062000c8c565b503060008181526023602090815260408083206013546001600160a01b0390811685529252808320600019908190556014549092168352808320829055928252919020556200057f6012600a62000d2b565b620005909064174876e80062000de7565b601f55620005a16012600a62000d2b565b620005b29064174876e80062000de7565b620005c09060001962000e7e565b620005ce9060001962000e09565b33600090815260226020526040902055601f546200063590620005f46012600a62000d2b565b620006059064174876e80062000de7565b620006139060001962000e7e565b620006219060001962000e09565b62000a9360201b620021f51790919060201c565b60209081556010546001600160a01b039081166000908152600a835260408082208054600160ff199182168117909255601154909416835281832080548516821790553083528183208054851682179055338084528284208054909516909117909355601f549051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000eed565b6000620006e3828462000cb0565b90505b92915050565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200076181600462000aa160201b620022011790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6002546001600160a01b03610100909104163314620007fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff1615158115151415620008635760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620007f5565b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155620008e257600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b03841617905562000a57565b600b54600110620009285760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620007f5565b60005b600b5481101562000a5557826001600160a01b0316600b828154811062000956576200095662000ed7565b6000918252602090912001546001600160a01b0316141562000a4057600b620009946001600b8054905062000b2160201b6200227d1790919060201c565b81548110620009a757620009a762000ed7565b600091825260209091200154600b80546001600160a01b039092169183908110620009d657620009d662000ed7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b80548062000a185762000a1862000ec1565b600082815260209020810160001990810180546001600160a01b031916905501905562000a55565b8062000a4c8162000e60565b9150506200092b565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000620006e3828462000ccb565b62000aad828262000b2f565b1562000afc5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401620007f5565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000620006e3828462000e09565b60006001600160a01b03821662000b945760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401620007f5565b506001600160a01b03166000908152602091909152604090205460ff1690565b82805462000bc29062000e23565b90600052602060002090601f01602090048101928262000be6576000855562000c31565b82601f1062000c0157805160ff191683800117855562000c31565b8280016001018555821562000c31579182015b8281111562000c3157825182559160200191906001019062000c14565b5062000c3f92915062000c43565b5090565b5b8082111562000c3f576000815560010162000c44565b60006020828403121562000c6d57600080fd5b81516001600160a01b038116811462000c8557600080fd5b9392505050565b60006020828403121562000c9f57600080fd5b8151801515811462000c8557600080fd5b6000821982111562000cc65762000cc662000e95565b500190565b60008262000cdd5762000cdd62000eab565b500490565b600181815b8085111562000d2357816000190482111562000d075762000d0762000e95565b8085161562000d1557918102915b93841c939080029062000ce7565b509250929050565b6000620006e3838360008262000d4457506001620006e6565b8162000d5357506000620006e6565b816001811462000d6c576002811462000d775762000d97565b6001915050620006e6565b60ff84111562000d8b5762000d8b62000e95565b50506001821b620006e6565b5060208310610133831016604e8410600b841016171562000dbc575081810a620006e6565b62000dc8838362000ce2565b806000190482111562000ddf5762000ddf62000e95565b029392505050565b600081600019048311821515161562000e045762000e0462000e95565b500290565b60008282101562000e1e5762000e1e62000e95565b500390565b600181811c9082168062000e3857607f821691505b6020821081141562000e5a57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000e775762000e7762000e95565b5060010190565b60008262000e905762000e9062000eab565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b613b8a8062000efd6000396000f3fe6080604052600436106104095760003560e01c80637d4b501711610213578063a8aa1b3111610123578063d4399790116100ab578063dd62ed3e1161007a578063dd62ed3e14610b98578063e15beb8014610bde578063e1d5584c14610bfe578063f2fde38b14610c1e578063f887ea4014610c3e57600080fd5b8063d439979014610b09578063d51ed1c814610b42578063d7832b1114610b62578063d7c0103214610b7857600080fd5b8063b62496f5116100f2578063b62496f514610a6c578063bc7e68a314610a9c578063cc32d17614610ab2578063d088935814610ac8578063d1fce26414610ae857600080fd5b8063a8aa1b31146109ec578063a9059cbb14610a0c578063a98ad46c14610a2c578063aa271e1a14610a4c57600080fd5b80639763eec4116101a65780639a7a23d6116101755780639a7a23d6146109615780639ae7372d146109815780639cf59d7f146109a15780639d9241ec146109b6578063a457c2d7146109cc57600080fd5b80639763eec41461090057806398118cb414610916578063983b2d561461092c578063986502751461094c57600080fd5b80638ebfc796116101e25780638ebfc796146108aa5780639079f932146108ca57806392f6576e1461079c57806395d89b41146108eb57600080fd5b80637d4b50171461083b5780638102c5701461085b57806389375abf146108715780638da5cb5b1461088757600080fd5b8063313ce5671161031957806361a9d1b1116102a157806370a082311161027057806370a08231146107b1578063715018a6146107d1578063753d02a1146107e6578063764d72bf146107fb57806379cc67901461081b57600080fd5b806361a9d1b1146107515780636d351d1a146107665780636ddd17131461077b5780636def69e11461079c57600080fd5b806342966c68116102e857806342966c68146106c657806344c59e7f146106e65780634cd9ddf2146106fb5780634d709adf1461071b57806359b107b91461073b57600080fd5b8063313ce56714610644578063395093511461066657806340c10f191461068657806342762cbb146106a657600080fd5b80631276089b1161039c578063201e79911161036b578063201e7991146105af57806323b872dd146105cf578063264d26dd146105ef5780632b112e491461060f5780633092afd51461062457600080fd5b80631276089b14610543578063180b0d7e1461056357806318160ddd1461057957806318a755691461058e57600080fd5b8063095ea7b3116103d8578063095ea7b3146104ba5780630af08314146104ea5780630e30b8501461050e5780631161ae391461052357600080fd5b806301b168271461041557806304a66b481461043757806306fdde031461045757806308b1fd8f1461048257600080fd5b3661041057005b600080fd5b34801561042157600080fd5b50610435610430366004613728565b610c5e565b005b34801561044357600080fd5b50610435610452366004613778565b610cdf565b34801561046357600080fd5b5061046c610ef7565b60405161047991906137b3565b60405180910390f35b34801561048e57600080fd5b506010546104a2906001600160a01b031681565b6040516001600160a01b039091168152602001610479565b3480156104c657600080fd5b506104da6104d536600461367c565b610f89565b6040519015158152602001610479565b3480156104f657600080fd5b5061050060065481565b604051908152602001610479565b34801561051a57600080fd5b50610500600d81565b34801561052f57600080fd5b506104da61053e366004613728565b610fe4565b34801561054f57600080fd5b5061043561055e3660046136a8565b610ff8565b34801561056f57600080fd5b50610500601b5481565b34801561058557600080fd5b50601f54610500565b34801561059a57600080fd5b506005546104da90600160b81b900460ff1681565b3480156105bb57600080fd5b506104356105ca366004613728565b6110b1565b3480156105db57600080fd5b506104da6105ea366004613606565b611121565b3480156105fb57600080fd5b50600f546104a2906001600160a01b031681565b34801561061b57600080fd5b50610500611237565b34801561063057600080fd5b5061043561063f366004613548565b6112b5565b34801561065057600080fd5b5060025460405160ff9091168152602001610479565b34801561067257600080fd5b506104da61068136600461367c565b6112f1565b34801561069257600080fd5b506104356106a136600461367c565b611364565b3480156106b257600080fd5b506104356106c13660046136a8565b6114b6565b3480156106d257600080fd5b506104356106e13660046136f6565b611564565b3480156106f257600080fd5b50600754610500565b34801561070757600080fd5b506104356107163660046136f6565b61156e565b34801561072757600080fd5b506005546104a2906001600160a01b031681565b34801561074757600080fd5b5061050060195481565b34801561075d57600080fd5b50610435611610565b34801561077257600080fd5b50610500611755565b34801561078757600080fd5b506005546104da90600160a81b900460ff1681565b3480156107a857600080fd5b50610500601281565b3480156107bd57600080fd5b506105006107cc366004613548565b61176e565b3480156107dd57600080fd5b50610435611794565b3480156107f257600080fd5b506104356117d0565b34801561080757600080fd5b50610435610816366004613548565b611866565b34801561082757600080fd5b5061043561083636600461367c565b611908565b34801561084757600080fd5b506011546104a2906001600160a01b031681565b34801561086757600080fd5b5061050060185481565b34801561087d57600080fd5b5061050060085481565b34801561089357600080fd5b5060025461010090046001600160a01b03166104a2565b3480156108b657600080fd5b506104356108c5366004613647565b611921565b3480156108d657600080fd5b506005546104da90600160b01b900460ff1681565b3480156108f757600080fd5b5061046c6119ec565b34801561090c57600080fd5b5061050060175481565b34801561092257600080fd5b5061050060155481565b34801561093857600080fd5b50610435610947366004613548565b6119fb565b34801561095857600080fd5b50610435611a34565b34801561096d57600080fd5b5061043561097c366004613647565b611a3d565b34801561098d57600080fd5b5061043561099c3660046136f6565b611cd7565b3480156109ad57600080fd5b50600654610500565b3480156109c257600080fd5b50610500601a5481565b3480156109d857600080fd5b506104da6109e736600461367c565b611d3c565b3480156109f857600080fd5b506014546104a2906001600160a01b031681565b348015610a1857600080fd5b506104da610a2736600461367c565b611e11565b348015610a3857600080fd5b506012546104a2906001600160a01b031681565b348015610a5857600080fd5b506104da610a67366004613548565b611e79565b348015610a7857600080fd5b506104da610a87366004613548565b600c6020526000908152604090205460ff1681565b348015610aa857600080fd5b5061050060095481565b348015610abe57600080fd5b5061050060165481565b348015610ad457600080fd5b50610435610ae33660046136c3565b611e86565b348015610af457600080fd5b506005546104da90600160a01b900460ff1681565b348015610b1557600080fd5b506104da610b24366004613548565b6001600160a01b03166000908152600a602052604090205460ff1690565b348015610b4e57600080fd5b50610500610b5d3660046136f6565b611f33565b348015610b6e57600080fd5b5061050060075481565b348015610b8457600080fd5b50610435610b933660046135bb565b611fc7565b348015610ba457600080fd5b50610500610bb3366004613582565b6001600160a01b03918216600090815260236020908152604080832093909416825291909152205490565b348015610bea57600080fd5b50610435610bf93660046136a8565b612073565b348015610c0a57600080fd5b506104a2610c193660046136f6565b612121565b348015610c2a57600080fd5b50610435610c39366004613548565b61214b565b348015610c4a57600080fd5b506013546104a2906001600160a01b031681565b6002546001600160a01b03610100909104163314610c975760405162461bcd60e51b8152600401610c8e9061382d565b60405180910390fd5b6006829055600781905560408051838152602081018390527f3f34134cbdd92374af629b5ba82900de3e5301e7206333e1463e306916507d5691015b60405180910390a15050565b6002546001600160a01b03610100909104163314610d0f5760405162461bcd60e51b8152600401610c8e9061382d565b60128511158015610d21575060128411155b8015610d2e575060128311155b8015610d3b575060128211155b610d6f5760405162461bcd60e51b815260206004820152600560248201526477726f6e6760d81b6044820152606401610c8e565b6015859055601784905560168390556018829055610d9784610d9187866121e9565b906121e9565b6019819055601854610da991906121e9565b601a55601954600d1015610dff5760405162461bcd60e51b815260206004820152601960248201527f546f74616c204255592066656520697320746f6f2068696768000000000000006044820152606401610c8e565b6012601a541115610e525760405162461bcd60e51b815260206004820152601a60248201527f546f74616c2053454c4c2066656520697320746f6f20686967680000000000006044820152606401610c8e565b601b819055610e626004826138eb565b60195410610ea05760405162461bcd60e51b815260206004820152600b60248201526a746f74616c42757946656560a81b6044820152606401610c8e565b604080518681526020810186905290810184905260608101839052608081018290527f881c278b86ef48391462a184ea0f2a579fec4c752524d2982eb0e2c9a956b7a39060a0015b60405180910390a15050505050565b606060008054610f0690613a20565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3290613a20565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b3360008181526023602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020613b3583398151915290610fd29086815260200190565b60405180910390a35060015b92915050565b600082610ff083611f33565b119392505050565b6002546001600160a01b036101009091041633146110285760405162461bcd60e51b8152600401610c8e9061382d565b60055460ff600160a01b90910416151581151514156110595760405162461bcd60e51b8152600401610c8e90613808565b60058054821515600160a01b0260ff60a01b199091161790556040517f7ff743f3545e37dc045546239e43c5339aa2a94f682e0350554fb0fb044ed376906110a690831515815260200190565b60405180910390a150565b6002546001600160a01b036101009091041633146110e15760405162461bcd60e51b8152600401610c8e9061382d565b601c829055601d81905560408051838152602081018390527f61b037fbf40888c3d344a3dfa6986a7d511feda40cac15b93162e3e21713aed69101610cd3565b6000826001600160a01b0381166111735760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b6044820152606401610c8e565b6001600160a01b038516600090815260236020908152604080832033845290915290205460001914611220576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03881660009081526023825283812033825290915291909120546111fb918590612289565b6001600160a01b03861660009081526023602090815260408083203384529091529020555b61122b8585856122b5565b50600195945050505050565b60208054600e546001600160a01b0390811660009081526022909352604080842054600d5490921684528320546112b092916112aa916112a49061127d6012600a613942565b61128c9064174876e8006139ea565b61129890600019613a76565b6112a490600019613a09565b9061227d565b906121f5565b905090565b6002546001600160a01b036101009091041633146112e55760405162461bcd60e51b8152600401610c8e9061382d565b6112ee816124f6565b50565b3360009081526023602090815260408083206001600160a01b038616845290915281205461131f90836121e9565b3360008181526023602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020613b358339815191529101610fd2565b61136d33611e79565b6113d25760405162461bcd60e51b815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201526f20746865204d696e74657220726f6c6560801b6064820152608401610c8e565b601f546113df90826121e9565b601f8190556001600160801b0310156113fe576001600160801b03601f555b601f54611438906114116012600a613942565b6114209064174876e8006139ea565b61142c90600019613a76565b6112aa90600019613a09565b602081905561146b9061144c908390612538565b6001600160a01b038416600090815260226020526040902054906121e9565b6001600160a01b038316600081815260226020526040808220939093559151909190600080516020613b15833981519152906114aa9085815260200190565b60405180910390a35050565b6002546001600160a01b036101009091041633146114e65760405162461bcd60e51b8152600401610c8e9061382d565b60055460ff600160b81b90910416151581151514156115175760405162461bcd60e51b8152600401610c8e90613808565b60058054821515600160b81b0260ff60b81b199091161790556040517faf6d04245008afdd5ffe9f7ff0100f76147b37509ab650932605cf1d1869f669906110a690831515815260200190565b6112ee3382612544565b6002546001600160a01b0361010090910416331461159e5760405162461bcd60e51b8152600401610c8e9061382d565b6138408111156115db5760405162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b6044820152606401610c8e565b60088190556040518181527f2b437b36906bbacfbc05b761a7c548a2789a8f89f67286f88e93b04560822bc7906020016110a6565b600260035414156116635760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8e565b6002600355601e5460ff16156116a75760405162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b6044820152606401610c8e565b4260095411156116e75760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610c8e565b60006117066007546112aa600654601f5461253890919063ffffffff16565b9050611711816126aa565b5061171a6117d0565b6040518181527f612668bb4420df7d3f2fcc122dfd5fd434dc0cb2e1dce1b8180712f9200677119060200160405180910390a1506001600355565b60006112b06020546021546121f590919063ffffffff16565b602080546001600160a01b038316600090815260229092526040822054610fde916121f5565b6002546001600160a01b036101009091041633146117c45760405162461bcd60e51b8152600401610c8e9061382d565b6117ce60006127a7565b565b60005b600b548110156112ee57600b81815481106117f0576117f0613ae9565b60009182526020822001546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae99260048084019382900301818387803b15801561183b57600080fd5b505af115801561184f573d6000803e3d6000fd5b50505050808061185e90613a5b565b9150506117d3565b6002546001600160a01b036101009091041633146118965760405162461bcd60e51b8152600401610c8e9061382d565b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156118ce573d6000803e3d6000fd5b506040516001600160a01b03831681527f2f0f983bc447da14da80ef6b41a88ab1ea636129df3a6af92b870934d6802a8590602001610cd3565b611913823383612801565b61191d8282612544565b5050565b6002546001600160a01b036101009091041633146119515760405162461bcd60e51b8152600401610c8e9061382d565b6001600160a01b0382166000908152600a602052604090205460ff16151581151514156119905760405162461bcd60e51b8152600401610c8e90613808565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527f6be51401060be42994125d8c96b787433e7a641a3555e3c3c4765e8a950fa37a9101610cd3565b606060018054610f0690613a20565b6002546001600160a01b03610100909104163314611a2b5760405162461bcd60e51b8152600401610c8e9061382d565b6112ee81612893565b6117ce336124f6565b6002546001600160a01b03610100909104163314611a6d5760405162461bcd60e51b8152600401610c8e9061382d565b6001600160a01b0382166000908152600c602052604090205460ff1615158115151415611ad05760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610c8e565b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611b4d57600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b038416179055611c9b565b600b54600110611b915760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610c8e565b60005b600b54811015611c9957826001600160a01b0316600b8281548110611bbb57611bbb613ae9565b6000918252602090912001546001600160a01b03161415611c8757600b8054611be590600161227d565b81548110611bf557611bf5613ae9565b600091825260209091200154600b80546001600160a01b039092169183908110611c2157611c21613ae9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b805480611c6057611c60613ad3565b600082815260209020810160001990810180546001600160a01b0319169055019055611c99565b80611c9181613a5b565b915050611b94565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6002546001600160a01b03610100909104163314611d075760405162461bcd60e51b8152600401610c8e9061382d565b60098190556040518181527fde97971104f1e2ea739b6fa6bd7a7eb834d3ed54ffa08425c5eb48ed9fbc27b6906020016110a6565b3360009081526023602090815260408083206001600160a01b0386168452909152812054808310611d90573360009081526023602090815260408083206001600160a01b0388168452909152812055611dbf565b611d9a818461227d565b3360009081526023602090815260408083206001600160a01b03891684529091529020555b3360008181526023602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020613b35833981519152910160405180910390a35060019392505050565b6000826001600160a01b038116611e635760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b6044820152606401610c8e565b611e6e3385856122b5565b506001949350505050565b6000610fde6004836128d5565b6002546001600160a01b03610100909104163314611eb65760405162461bcd60e51b8152600401610c8e9061382d565b6005805460ff60a81b1916600160a81b85151502179055611ee782611ee1836114116012600a613942565b90612538565b602155604080518415158152602081018490529081018290527f512cfe1aedabdc06d12a680ace7434d88a9532c8853515536842f5ff52cbe55a906060015b60405180910390a1505050565b600080805b600b54811015611f9757611f84611f7d633b9aca006112aa600b8581548110611f6357611f63613ae9565b6000918252602090912001546001600160a01b031661176e565b83906121e9565b5080611f8f81613a5b565b915050611f38565b50611fc0611fab633b9aca006112aa611237565b6112aa611fb9846002612538565b8690612538565b9392505050565b6002546001600160a01b03610100909104163314611ff75760405162461bcd60e51b8152600401610c8e9061382d565b600f80546001600160a01b038581166001600160a01b0319928316811790935560108054868316908416811790915560118054928616929093168217909255604080519384526020840192909252908201527fb923dcdfa226a9163e9324bacc07634c44fc26e1268f8341bc0989d83f4794b890606001611f26565b6002546001600160a01b036101009091041633146120a35760405162461bcd60e51b8152600401610c8e9061382d565b60055460ff600160b01b90910416151581151514156120d45760405162461bcd60e51b8152600401610c8e90613808565b60058054821515600160b01b0260ff60b01b199091161790556040517f76a3b4a2762dae8901450e92a099b166b4ec4b38d2509a67740a4d48fc642460906110a690831515815260200190565b600b818154811061213157600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b0361010090910416331461217b5760405162461bcd60e51b8152600401610c8e9061382d565b6001600160a01b0381166121e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c8e565b6112ee816127a7565b6000611fc082846138d3565b6000611fc082846138eb565b61220b82826128d5565b156122585760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610c8e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000611fc08284613a09565b600081848411156122ad5760405162461bcd60e51b8152600401610c8e91906137b3565b505050900390565b6001600160a01b0383166000908152600a6020526040812054819060ff16806122f657506001600160a01b0384166000908152600a602052604090205460ff165b600554909150600160a01b900460ff168061230e5750805b6123505760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd081cdd185c9d1959606a1b6044820152606401610c8e565b601e5460ff161561236e57612366858585612958565b915050611fc0565b60006123856020548561253890919063ffffffff16565b905061238f612a1a565b1561239c5761239c612a94565b6001600160a01b0386166000908152602260205260409020546123bf908261227d565b6001600160a01b0387166000908152602260205260408120919091556123e58787612c3f565b6123ef57816123fa565b6123fa878784612cd1565b6001600160a01b03871660009081526022602052604090205490915061242090826121e9565b6001600160a01b03808816600081815260226020908152604090912093909355915490891690600080516020613b15833981519152906124619085906121f5565b60405190815260200160405180910390a3600954421015801561248d5750600554600160b01b900460ff165b156124e95761249a612d91565b6001600160a01b0387166000908152600c602052604090205460ff161580156124dc57506001600160a01b0386166000908152600c602052604090205460ff16155b156124e9576124e96117d0565b5060019695505050505050565b612501600482612dc5565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000611fc082846139ea565b6001600160a01b0382166125a45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c8e565b6001600160a01b038216600090815260226020526040902054818110156126185760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c8e565b6126376126306020548461253890919063ffffffff16565b829061227d565b6001600160a01b038416600090815260226020526040902055601f5461265d908361227d565b601f819055612672906114116012600a613942565b60209081556040518381526000916001600160a01b03861691600080516020613b1583398151915291015b60405180910390a3505050565b600042826126f857807f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2601f546040516126e691815260200190565b60405180910390a25050601f54919050565b600083121561271e5761271661270d84613a8a565b601f549061227d565b601f5561272f565b601f5461272b90846121e9565b601f555b601f546001600160801b03101561274c576001600160801b03601f555b601f5461275f906114116012600a613942565b60205560085461276f90826138d3565b600955601f5460405190815281907f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2906020016126e6565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03838116600090815260236020908152604080832093861683529290522054600019811461288d57818110156128805760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610c8e565b61288d8484848403612e47565b50505050565b61289e600482612201565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b0382166129385760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000806129706020548461253890919063ffffffff16565b6001600160a01b038616600090815260226020526040902054909150612996908261227d565b6001600160a01b0380871660009081526022602052604080822093909355908616815220546129c590826121e9565b6001600160a01b038086166000818152602260205260409081902093909355915190871690600080516020613b1583398151915290612a079087815260200190565b60405180910390a3506001949350505050565b336000908152600c602052604081205460ff16158015612a3d5750601e5460ff16155b8015612a525750600554600160a81b900460ff165b8015612a7457506000612a72601a546019546121e990919063ffffffff16565b115b80156112b057505060215430600090815260226020526040902054101590565b601e5460ff1615612ae75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8e565b601e805460ff19166001179055601a54601954600091612b0791906121e9565b90506000612b19601c54601d54610fe4565b612b2557601554612b28565b60005b60208054306000908152602290925260408220549293509091612b4a916121f5565b90506000612b67846112aa612b60866002612538565b8590612538565b90506000612b88856112aa611fb9600260175461253890919063ffffffff16565b90506000612b9a826112a4868661227d565b90508215612bab57612bab83612f51565b8115612bc857601154612bc89083906001600160a01b0316613136565b8015612be557601054612be59082906001600160a01b0316613136565b6040805185815260208101859052908101839052606081018290527fa4903880285538fa6ffa51cad044f25c39cc7f89aa6cbbda844135ff94827edf9060800160405180910390a15050601e805460ff1916905550505050565b6001600160a01b0382166000908152600a602052604081205460ff1680612c7e57506001600160a01b0382166000908152600a602052604090205460ff165b15612c8b57506000610fde565b6001600160a01b0383166000908152600c602052604090205460ff1680612cca57506001600160a01b0382166000908152600c602052604090205460ff165b9050610fde565b6019546001600160a01b0383166000908152600c602052604081205490919060ff1615612cfd5750601a545b601b54600090612d11906112aa8685612538565b30600090815260226020526040902054909150612d2e90826121e9565b3060008181526022602090815260409091209290925590546001600160a01b03881690600080516020613b1583398151915290612d6c9085906121f5565b60405190815260200160405180910390a3612d87848261227d565b9695505050505050565b601e5460ff166117ce576000612dba6007546112aa600654601f5461253890919063ffffffff16565b905061191d816126aa565b612dcf82826128d5565b612e255760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610c8e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038316612ea95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c8e565b6001600160a01b038216612f0a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b6001600160a01b038381166000818152602360209081526040808320948716808452948252918290208590559051848152600080516020613b35833981519152910161269d565b6000612f5e8260026121f5565b90506000612f6c838361227d565b600554909150600160b81b900460ff1615612fe25747612f8c8330613136565b6000612f98478361227d565b9050612fa48382613287565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56190606001610ee8565b6012546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561302657600080fd5b505afa15801561303a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305e919061370f565b905061306a8330613332565b6012546040516370a0823160e01b81523060048201526000916130ec9184916001600160a01b0316906370a082319060240160206040518083038186803b1580156130b457600080fd5b505afa1580156130c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a4919061370f565b90506130f8838261347f565b60408051858152602081018390529081018490527fa1b6307d59dd6c9c2989a8f4454e81b33692b042ad395da897b508ac48d2a55690606001610ee8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061316b5761316b613ae9565b6001600160a01b03928316602091820292909201810191909152601354604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b1580156131bf57600080fd5b505afa1580156131d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f79190613565565b8160018151811061320a5761320a613ae9565b6001600160a01b039283166020918202929092010152601354604051633b158ab160e11b815291169063762b156290613250908690600090869088904290600401613862565b600060405180830381600087803b15801561326a57600080fd5b505af115801561327e573d6000803e3d6000fd5b50505050505050565b601354600f54604051637c8d9fb960e11b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c4016060604051808303818588803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061332b919061374a565b5050505050565b6040805160038082526080820190925260009160208201606080368337019050509050308160008151811061336957613369613ae9565b6001600160a01b03928316602091820292909201810191909152601354604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b1580156133bd57600080fd5b505afa1580156133d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f59190613565565b8160018151811061340857613408613ae9565b6001600160a01b03928316602091820292909201015260125482519116908290600290811061343957613439613ae9565b6001600160a01b039283166020918202929092010152601354604051635c11d79560e01b8152911690635c11d79590613250908690600090869088904290600401613862565b601354601254600f5460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018690526064810185905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156134fb57600080fd5b505af115801561350f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332b919061374a565b8035801515811461354357600080fd5b919050565b60006020828403121561355a57600080fd5b8135611fc081613aff565b60006020828403121561357757600080fd5b8151611fc081613aff565b6000806040838503121561359557600080fd5b82356135a081613aff565b915060208301356135b081613aff565b809150509250929050565b6000806000606084860312156135d057600080fd5b83356135db81613aff565b925060208401356135eb81613aff565b915060408401356135fb81613aff565b809150509250925092565b60008060006060848603121561361b57600080fd5b833561362681613aff565b9250602084013561363681613aff565b929592945050506040919091013590565b6000806040838503121561365a57600080fd5b823561366581613aff565b915061367360208401613533565b90509250929050565b6000806040838503121561368f57600080fd5b823561369a81613aff565b946020939093013593505050565b6000602082840312156136ba57600080fd5b611fc082613533565b6000806000606084860312156136d857600080fd5b6136e184613533565b95602085013595506040909401359392505050565b60006020828403121561370857600080fd5b5035919050565b60006020828403121561372157600080fd5b5051919050565b6000806040838503121561373b57600080fd5b50508035926020909101359150565b60008060006060848603121561375f57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561379057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156137e0578581018301518582016040015282016137c4565b818111156137f2576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a139bdd0818da185b99d95960aa1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138b25784516001600160a01b03168352938301939183019160010161388d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156138e6576138e6613aa7565b500190565b6000826138fa576138fa613abd565b500490565b600181815b8085111561393a57816000190482111561392057613920613aa7565b8085161561392d57918102915b93841c9390800290613904565b509250929050565b6000611fc0838360008261395857506001610fde565b8161396557506000610fde565b816001811461397b5760028114613985576139a1565b6001915050610fde565b60ff84111561399657613996613aa7565b50506001821b610fde565b5060208310610133831016604e8410600b84101617156139c4575081810a610fde565b6139ce83836138ff565b80600019048211156139e2576139e2613aa7565b029392505050565b6000816000190483118215151615613a0457613a04613aa7565b500290565b600082821015613a1b57613a1b613aa7565b500390565b600181811c90821680613a3457607f821691505b60208210811415613a5557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613a6f57613a6f613aa7565b5060010190565b600082613a8557613a85613abd565b500690565b6000600160ff1b821415613aa057613aa0613aa7565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146112ee57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212204a5c7dc0dcdd2999d5e7781482a04da8c25f41e33757455d7ef9f96b33deefb364736f6c63430008070033