Overview ERC20
PRICE
$0.00

ON-CHAIN MARKET CAP n/a

Total Supply:
1,000,000,000,000,000.00 GME

Holders:
520
Profile Summary
Blockchain:
C-Chain (43114)


Decimals:
9
Contract Source Code Verified (Partial Match)
Contract Name:
NodeGameGovernance

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Created At:
Sat, 18 Dec 2021 18:30:43 GMT
NodeGameGovernance.sol
NodeGameGovernance.sol
NodeGameGovernance.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_dexRouter",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_wAVAX",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_distributor",
        "type": "address"
      }
    ],
    "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": "uint256",
        "name": "amountAVAX",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountBOG",
        "type": "uint256"
      }
    ],
    "name": "AutoLiquify",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "duration",
        "type": "uint256"
      }
    ],
    "name": "BuybackMultiplierActive",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "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": "MASK",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "Sweep",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WAVAX",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "_isFree",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_maxTxAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_maxWallet",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "approveMax",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "authorize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "autoBuybackEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "autoLiquidityReceiver",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      }
    ],
    "name": "checkFree",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "clearBuybackMultiplier",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "distributor",
    "outputs": [
      {
        "internalType": "contract IDividendDistributor",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "distributorAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "gameFeeReceiver",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": "getMultipliedFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "selling",
        "type": "bool"
      }
    ],
    "name": "getTotalFee",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "isAuthorized",
    "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": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "isOwner",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "launch",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "launchedAt",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "launchedAtTimestamp",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pair",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "router",
    "outputs": [
      {
        "internalType": "contract IDEXRouter",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_cap",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_period",
        "type": "uint256"
      }
    ],
    "name": "setAutoBuybackSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numerator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "denominator",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "length",
        "type": "uint256"
      }
    ],
    "name": "setBuybackMultiplierSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_minPeriod",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_minDistribution",
        "type": "uint256"
      }
    ],
    "name": "setDistributionCriteria",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "gas",
        "type": "uint256"
      }
    ],
    "name": "setDistributorSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_autoLiquidityReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_gameFeeReceiver",
        "type": "address"
      }
    ],
    "name": "setFeeReceivers",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_liquidityFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_buybackFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_reflectionFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_gameFee",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_feeDenominator",
        "type": "uint256"
      }
    ],
    "name": "setFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      }
    ],
    "name": "setFree",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setIsDividendExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setIsFeeExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setIsTxLimitExempt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "setMaxWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "setSwapBackSettings",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_target",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_denominator",
        "type": "uint256"
      }
    ],
    "name": "setTargetLiquidity",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "setTxLimit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swapThreshold",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address payable",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "triggerBuybackMultiplier",
        "type": "bool"
      }
    ],
    "name": "triggerZeusBuyback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      }
    ],
    "name": "unSetFree",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "unauthorize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
6080604052600280546001600160a01b031990811673d586e7f844cea2f87f50152665bcbc2c279d8d701790915560038054821673b31f66aa3c1e785363f0875a1b74e27b85fd66c717905560048054821661dead9081179091556005805483169055600680549092161790556200007a6009600a62000670565b6200008d9066038d7ea4c680006200072f565b600755620000ad6014600754620004ff60201b620015a21790919060201c565b600855620000cd6014600754620004ff60201b620015a21790919060201c565b600955610320601055600060115561012c6012819055601355606460148190556105dc601555612710601655601880546001600160a01b03199081167302ec628f447e36708638edd2d5b6adb4198433ca179091556019805490911673c0c88faf5f7b1045a75f6a88c5b98a47038098f8178155601a55601b81905560c86020556021556107086023556024805460ff199081169091556207a120602d55602e8054909116600117905560075462000189906107d09062000606565b602f553480156200019957600080fd5b5060405162002d9d38038062002d9d833981016040819052620001bc91620005bd565b60008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601c805483166001600160a01b038881169182179092556003805490941691871691909117909255825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b1580156200024657600080fd5b505afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620005a0565b6040516364e329cb60e11b81526001600160a01b038481166004830152306024830152919091169063c9c6539690604401602060405180830381600087803b158015620002cd57600080fd5b505af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003089190620005a0565b601d80546001600160a01b0319166001600160a01b03928316179055600754306000908152600b60209081526040808320601c8054871685529083529281902093909355905482516339d94ae160e11b815292519316926373b295c2926004808201939291829003018186803b1580156200038257600080fd5b505afa15801562000397573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bd9190620005a0565b600380546001600160a01b039283166001600160a01b031991821617909155602b80548484169083168117909155602c805483169091179055336000818152600c60209081526040808320805460ff199081166001908117909255600d84528285208054821683179055601d5488168552600e8452828520805482168317905530855282852080548216831790556004549097168452818420805488168217905584845260259092529091208054909416179092556017805490911690911790556007546200048e90849062000516565b50601d54600754620004aa916001600160a01b03169062000516565b50600754336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505062000767565b60006200050d828462000606565b90505b92915050565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620005729086815260200190565b60405180910390a350600192915050565b80516001600160a01b03811681146200059b57600080fd5b919050565b600060208284031215620005b2578081fd5b6200050d8262000583565b600080600060608486031215620005d2578182fd5b620005dd8462000583565b9250620005ed6020850162000583565b9150620005fd6040850162000583565b90509250925092565b6000826200062257634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620006685781600019048211156200064c576200064c62000751565b808516156200065a57918102915b93841c93908002906200062c565b509250929050565b60006200050d60ff8416836000826200068c5750600162000510565b816200069b5750600062000510565b8160018114620006b45760028114620006bf57620006df565b600191505062000510565b60ff841115620006d357620006d362000751565b50506001821b62000510565b5060208310610133831016604e8410600b841016171562000704575081810a62000510565b62000710838362000627565b806000190482111562000727576200072762000751565b029392505050565b60008160001904831182151516156200074c576200074c62000751565b500290565b634e487b7160e01b600052601160045260246000fd5b61262680620007776000396000f3fe60806040526004361061037a5760003560e01c80637d1db4a5116101d1578063c6d2577d11610102578063f0b37c04116100a0578063f708a64f1161006f578063f708a64f14610a63578063f84ba65d14610a83578063f887ea4014610aa3578063fe9fbb8014610ac357600080fd5b8063f0b37c04146109e3578063f1f3bca314610a03578063f2fde38b14610a23578063f5cfec0a14610a4357600080fd5b8063d806d12f116100dc578063d806d12f14610944578063dd62ed3e14610959578063df20fd491461099f578063e91f214e146109bf57600080fd5b8063c6d2577d146108ee578063ca33e64c14610904578063d51ed1c81461092457600080fd5b8063a51af4c51161016f578063b210b06d11610149578063b210b06d14610883578063b6a5d7de14610898578063bf56b371146108b8578063bfe10928146108ce57600080fd5b8063a51af4c514610823578063a8aa1b3114610843578063a9059cbb1461086357600080fd5b806389ef69f6116101ab57806389ef69f61461079757806395d89b41146107b75780639d1944f5146107e3578063a4b45c001461080357600080fd5b80637d1db4a51461074d57806382247ec014610763578063893d20e81461077957600080fd5b80632d48e896116102ab5780635c85974f116102495780636ddd1713116102235780636ddd1713146106c85780637088fb7f146106e257806370a08231146106f757806373b295c21461072d57600080fd5b80635c85974f146106685780635d0044ca14610688578063658d4b7f146106a857600080fd5b80633425c001116102855780633425c001146105d65780633bb8a8d4146105f65780634fad8b8614610610578063571ac8b01461064857600080fd5b80632d48e8961461056b5780632f54bf6e1461058b578063313ce567146105ba57600080fd5b80631161ae39116103185780632375ce40116102f25780632375ce40146104e657806323b872dd14610506578063296020e7146105265780632b112e491461055657600080fd5b80631161ae391461049157806318160ddd146104b1578063201e7991146104c657600080fd5b806304a66b481161035457806304a66b48146103e657806306fdde031461040657806307c89fe814610441578063095ea7b31461047157600080fd5b806301339c21146103865780630445b6671461039d578063048c7baf146103c657600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ae3565b005b3480156103a957600080fd5b506103b3602f5481565b6040519081526020015b60405180910390f35b3480156103d257600080fd5b5061039b6103e13660046122e3565b610b62565b3480156103f257600080fd5b5061039b6104013660046123ce565b610bb0565b34801561041257600080fd5b506040805180820190915260098152684e6f64652047616d6560b81b60208201525b6040516103bd9190612480565b34801561044d57600080fd5b5061046161045c3660046121bb565b610c26565b60405190151581526020016103bd565b34801561047d57600080fd5b5061046161048c366004612283565b610c74565b34801561049d57600080fd5b506104616104ac366004612355565b610ce0565b3480156104bd57600080fd5b506007546103b3565b3480156104d257600080fd5b5061039b6104e1366004612355565b610cf4565b3480156104f257600080fd5b5061039b610501366004612376565b610d24565b34801561051257600080fd5b5061046161052136600461220f565b610d79565b34801561053257600080fd5b506104616105413660046121bb565b600f6020526000908152604090205460ff1681565b34801561056257600080fd5b506103b3610e3d565b34801561057757600080fd5b5061039b610586366004612355565b610e8f565b34801561059757600080fd5b506104616105a63660046121bb565b6000546001600160a01b0391821691161490565b3480156105c657600080fd5b50604051600981526020016103bd565b3480156105e257600080fd5b5061039b6105f13660046121bb565b610f1e565b34801561060257600080fd5b506024546104619060ff1681565b34801561061c57600080fd5b50601854610630906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561065457600080fd5b506104616106633660046121bb565b610f69565b34801561067457600080fd5b5061039b61068336600461231b565b610f7d565b34801561069457600080fd5b5061039b6106a336600461231b565b610fc3565b3480156106b457600080fd5b5061039b6106c336600461224f565b611009565b3480156106d457600080fd5b50602e546104619060ff1681565b3480156106ee57600080fd5b5061039b611059565b34801561070357600080fd5b506103b36107123660046121bb565b6001600160a01b03166000908152600a602052604090205490565b34801561073957600080fd5b50600354610630906001600160a01b031681565b34801561075957600080fd5b506103b360085481565b34801561076f57600080fd5b506103b360095481565b34801561078557600080fd5b506000546001600160a01b0316610630565b3480156107a357600080fd5b5061039b6107b23660046121bb565b6110b6565b3480156107c357600080fd5b50604080518082019091526003815262474d4560e81b6020820152610434565b3480156107ef57600080fd5b5061039b6107fe36600461231b565b611104565b34801561080f57600080fd5b5061039b61081e3660046121d7565b61113d565b34801561082f57600080fd5b50602c54610630906001600160a01b031681565b34801561084f57600080fd5b50601d54610630906001600160a01b031681565b34801561086f57600080fd5b5061046161087e366004612283565b611190565b34801561088f57600080fd5b5061039b61119d565b3480156108a457600080fd5b5061039b6108b33660046121bb565b6111c9565b3480156108c457600080fd5b506103b3601e5481565b3480156108da57600080fd5b50602b54610630906001600160a01b031681565b3480156108fa57600080fd5b506103b3601f5481565b34801561091057600080fd5b50601754610630906001600160a01b031681565b34801561093057600080fd5b506103b361093f36600461231b565b61121a565b34801561095057600080fd5b506015546103b3565b34801561096557600080fd5b506103b36109743660046121d7565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b3480156109ab57600080fd5b5061039b6109ba3660046122c8565b61125e565b3480156109cb57600080fd5b506103b36fffffffffffffffffffffffffffffffff81565b3480156109ef57600080fd5b5061039b6109fe3660046121bb565b61129a565b348015610a0f57600080fd5b506103b3610a1e3660046122ae565b6112e5565b348015610a2f57600080fd5b5061039b610a3e3660046121bb565b61131a565b348015610a4f57600080fd5b5061039b610a5e366004612333565b6113b0565b348015610a6f57600080fd5b5061039b610a7e36600461224f565b611430565b348015610a8f57600080fd5b5061039b610a9e36600461224f565b611534565b348015610aaf57600080fd5b50601c54610630906001600160a01b031681565b348015610acf57600080fd5b50610461610ade3660046121bb565b611584565b610aec33611584565b610b115760405162461bcd60e51b8152600401610b08906124f3565b60405180910390fd5b601e5415610b585760405162461bcd60e51b8152602060048201526014602482015273416c7265616479206c61756e6368656420626f6960601b6044820152606401610b08565b43601e5542601f55565b610b6b33611584565b610b875760405162461bcd60e51b8152600401610b08906124f3565b6024805460ff191694151594909417909355602691909155600060275560285560295543602a55565b610bb933611584565b610bd55760405162461bcd60e51b8152600401610b08906124f3565b6010859055601184905560128390556013829055610bff82610bf9858189896115ae565b906115ae565b6015556016819055610c1260048261256c565b60155410610c1f57600080fd5b5050505050565b600080546001600160a01b03163314610c515760405162461bcd60e51b8152600401610b08906124d3565b506001600160a01b0381166000908152600f602052604090205460ff165b919050565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ccf9086815260200190565b60405180910390a350600192915050565b600082610cec8361121a565b119392505050565b610cfd33611584565b610d195760405162461bcd60e51b8152600401610b08906124f3565b601a91909155601b55565b610d2d33611584565b610d495760405162461bcd60e51b8152600401610b08906124f3565b6002610d55838561256c565b11158015610d6257508183115b610d6b57600080fd5b602092909255602155602355565b6007546001600160a01b0384166000908152600b60209081526040808320338452909152812054909114610e28576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610e039184906115ba565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610e338484846115e6565b90505b9392505050565b6005546001600160a01b03166000908152600a6020526040812054610e8a906004546001600160a01b03166000908152600a6020526040902054610e8490600754906119d3565b906119d3565b905090565b610e9833611584565b610eb45760405162461bcd60e51b8152600401610b08906124f3565b602b546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610f0257600080fd5b505af1158015610f16573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610f485760405162461bcd60e51b8152600401610b08906124d3565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000610f7782600754610c74565b92915050565b610f8633611584565b610fa25760405162461bcd60e51b8152600401610b08906124f3565b6103e8600754610fb2919061256c565b811015610fbe57600080fd5b600855565b610fcc33611584565b610fe85760405162461bcd60e51b8152600401610b08906124f3565b6103e8600754610ff8919061256c565b81101561100457600080fd5b600955565b61101233611584565b61102e5760405162461bcd60e51b8152600401610b08906124f3565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110835760405162461bcd60e51b8152600401610b08906124d3565b6040514790339082156108fc029083906000818181858888f193505050501580156110b2573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146110e05760405162461bcd60e51b8152600401610b08906124d3565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b61110d33611584565b6111295760405162461bcd60e51b8152600401610b08906124f3565b620b71b0811061113857600080fd5b602d55565b61114633611584565b6111625760405162461bcd60e51b8152600401610b08906124f3565b601780546001600160a01b039384166001600160a01b03199182161790915560188054929093169116179055565b6000610e363384846115e6565b6111a633611584565b6111c25760405162461bcd60e51b8152600401610b08906124f3565b6000602255565b6000546001600160a01b031633146111f35760405162461bcd60e51b8152600401610b08906124d3565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610f77611227610e3d565b601d546001600160a01b03166000908152600a6020526040902054611258906112519060026119df565b85906119df565b906115a2565b61126733611584565b6112835760405162461bcd60e51b8152600401610b08906124f3565b602e805460ff191692151592909217909155602f55565b6000546001600160a01b031633146112c45760405162461bcd60e51b8152600401610b08906124d3565b6001600160a01b03166000908152600160205260409020805460ff19169055565b600043601e5460016112f79190612554565b1061130457505060155490565b811561131257505060155490565b505060155490565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610b08906124d3565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6113b933611584565b6113d55760405162461bcd60e51b8152600401610b08906124f3565b6004546113ec9083906001600160a01b03166119eb565b80156110b257426022556023546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15050565b61143933611584565b6114555760405162461bcd60e51b8152600401610b08906124f3565b6001600160a01b038216301480159061147c5750601d546001600160a01b03838116911614155b61148557600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff191682158015919091179091556114eb57602b54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610ee8565b602b546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610ee8565b61153d33611584565b6115595760405162461bcd60e51b8152600401610b08906124f3565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610e36828461256c565b6000610e368284612554565b600081848411156115de5760405162461bcd60e51b8152600401610b089190612480565b505050900390565b60305460009060ff1615611606576115ff848484611b10565b9050610e36565b601d547360ae616a2155ee3d9a68541ba4544862310933d4906000906001600160a01b038681169116148061164c5750816001600160a01b0316856001600160a01b0316145b90506116588685611bb3565b8015801561167f57506001600160a01b0385166000908152600f602052604090205460ff16155b156116f8576009546001600160a01b0386166000908152600a60205260409020546116ab908690612554565b106116f85760405162461bcd60e51b815260206004820152601d60248201527f4d61782077616c6c657420686173206265656e207472696767657265640000006044820152606401610b08565b801561172857611706611c1c565b1561171357611713611c6b565b61171b61204e565b15611728576117286120a9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600a909152919091205461177a9186906115ba565b6001600160a01b0387166000908152600a6020908152604080832093909355600c90529081205460ff16156117af57846117ba565b6117ba8787876120f0565b6001600160a01b0387166000908152600a60205260409020549091506117e090826115ae565b6001600160a01b038088166000908152600a6020908152604080832094909455918a168152600e909152205460ff1661188457602b546001600160a01b038881166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561187157600080fd5b505af1925050508015611882575060015b505b6001600160a01b0386166000908152600e602052604090205460ff1661191557602b546001600160a01b038781166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190257600080fd5b505af1925050508015611913575060015b505b602b54602d546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c4799161194d9160040190815260200190565b600060405180830381600087803b15801561196757600080fd5b505af1925050508015611978575060015b50856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119be91815260200190565b60405180910390a35060019695505050505050565b6000610e3682846125ab565b6000610e36828461258c565b6030805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090611a4757634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611a8957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601c5460405163c57559dd60e01b815291169063c57559dd908590611acf9060009086908890429060040161244b565b6000604051808303818588803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b50506030805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a90915291822054611b619184906115ba565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611b9090836115ae565b6001600160a01b0384166000908152600a60205260409020555060019392505050565b60085481111580611bdc57506001600160a01b0382166000908152600d602052604090205460ff165b6110b25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b08565b601d546000906001600160a01b03163314801590611c3d575060305460ff16155b8015611c4b5750602e5460ff165b8015610e8a575050602f54306000908152600a6020526040902054101590565b6030805460ff19166001179055601a54601b54600091611c8a91610ce0565b611c9657601054611c99565b60005b90506000611cbd600261125860155461125886602f546119df90919063ffffffff16565b90506000611cd682602f546119d390919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611d1e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600354825191169082906001908110611d5d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601c54604051633b158ab160e11b81524792919091169063762b156290611da7908690600090879030904290600401612518565b600060405180830381600087803b158015611dc157600080fd5b505af1158015611dd5573d6000803e3d6000fd5b505050506000611dee82476119d390919063ffffffff16565b90506000611e09611e008860026115a2565b601554906119d3565b90506000611e1e60026112588481878d6119df565b90506000611e3b83611258601254876119df90919063ffffffff16565b90506000611e5884611258601354886119df90919063ffffffff16565b90506000611e7585611258601454896119df90919063ffffffff16565b9050602b60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611ec757600080fd5b505af193505050508015611ed9575060015b506018546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f14573d6000803e3d6000fd5b506019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f4f573d6000803e3d6000fd5b50891561203757601c54601754604051637c8d9fb960e11b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290869060c4016060604051808303818588803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ffa91906123a1565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506030805460ff19169055505050505050505050565b601d546000906001600160a01b0316331480159061206f575060305460ff16155b801561207d575060245460ff165b8015612098575043602954602a546120959190612554565b11155b8015610e8a57505060285447101590565b6028546004546120c291906001600160a01b03166119eb565b43602a556028546027546120d5916115ae565b602781905560265410156120ee576024805460ff191690555b565b601654601d54600091829161212291906112589061211b906001600160a01b038981169116146112e5565b86906119df565b306000908152600a602052604090205490915061213f90826115ae565b306000818152600a6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121909085815260200190565b60405180910390a36121a283826119d3565b95945050505050565b80358015158114610c6f57600080fd5b6000602082840312156121cc578081fd5b8135610e36816125d8565b600080604083850312156121e9578081fd5b82356121f4816125d8565b91506020830135612204816125d8565b809150509250929050565b600080600060608486031215612223578081fd5b833561222e816125d8565b9250602084013561223e816125d8565b929592945050506040919091013590565b60008060408385031215612261578182fd5b823561226c816125d8565b915061227a602084016121ab565b90509250929050565b60008060408385031215612295578182fd5b82356122a0816125d8565b946020939093013593505050565b6000602082840312156122bf578081fd5b610e36826121ab565b600080604083850312156122da578182fd5b6122a0836121ab565b600080600080608085870312156122f8578081fd5b612301856121ab565b966020860135965060408601359560600135945092505050565b60006020828403121561232c578081fd5b5035919050565b60008060408385031215612345578182fd5b8235915061227a602084016121ab565b60008060408385031215612367578182fd5b50508035926020909101359150565b60008060006060848603121561238a578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156123b5578283fd5b8351925060208401519150604084015190509250925092565b600080600080600060a086880312156123e5578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000815180845260208085019450808401835b838110156124405781516001600160a01b03168752958201959082019060010161241b565b509495945050505050565b8481526080602082015260006124646080830186612408565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b818110156124ac57858101830151858201604001528201612490565b818111156124bd5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b85815284602082015260a06040820152600061253760a0830186612408565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612567576125676125c2565b500190565b60008261258757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156125a6576125a66125c2565b500290565b6000828210156125bd576125bd6125c2565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146125ed57600080fd5b5056fea2646970667358221220db509d8087c03e447cacf34ac14ab5c08a5a060503de3b685348ead6fad95f3d64736f6c6343000804003300000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d4000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000004167408aff88e82b103d392203f984df0d0124f9