Overview ERC20
PRICE
$0.00

ON-CHAIN MARKET CAP n/a

Total Supply:
100,000,000,000.00 ISTEST

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


Decimals:
9
Contract Source Code Verified (Exact Match)
Contract Name:
IssaTest

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Created At:
Fri, 17 Dec 2021 02:09:36 GMT
IssaTest.sol
IssaTest.sol
IssaTest.sol


Contract ABI
[
  {
    "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": "uint256",
        "name": "amountBNB",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amountWBNB",
        "type": "uint256"
      }
    ],
    "name": "AutoLiquify",
    "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": "_getMyRewards",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_maxTxAmount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_maxWalletToken",
    "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": [],
    "name": "approval",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "aP",
        "type": "uint256"
      }
    ],
    "name": "approvals",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": [],
    "name": "asT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "authorize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "authorizea",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "adro",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "adrt",
        "type": "address"
      }
    ],
    "name": "authorizes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "bbf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "bbt",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "currentReward",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "deptok",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": [
      {
        "internalType": "address",
        "name": "_wallet",
        "type": "address"
      }
    ],
    "name": "getMyRewardsOwed",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_wallet",
        "type": "address"
      }
    ],
    "name": "getMyTotalRewards",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "selling",
        "type": "bool"
      }
    ],
    "name": "getTF",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_aPn",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_aPd",
        "type": "uint256"
      }
    ],
    "name": "getccr",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_aPn",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_aPd",
        "type": "uint256"
      }
    ],
    "name": "getppr",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "gettotalRewardsDistributed",
    "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": "mStx",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxTL",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "sFrz",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "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": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setFE",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_liqF",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_rewF",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_marF",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_feeD",
        "type": "uint256"
      }
    ],
    "name": "setFFEE",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_xfact",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_yfact",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_zfact",
        "type": "uint256"
      }
    ],
    "name": "setFact",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setLFG",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setLauNch",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_mnWP",
        "type": "uint256"
      }
    ],
    "name": "setMWP",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_mnbTP",
        "type": "uint256"
      }
    ],
    "name": "setMbTP",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setPreSale",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_PresaleAddress",
        "type": "address"
      }
    ],
    "name": "setPresaleAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_up",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_down",
        "type": "uint256"
      }
    ],
    "name": "setTL",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setTLE",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setWME",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_bbf",
        "type": "uint256"
      }
    ],
    "name": "setbbfe",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_gso",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_gss",
        "type": "uint256"
      }
    ],
    "name": "setgas",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setiDE",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "holder",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "exempt",
        "type": "bool"
      }
    ],
    "name": "setisTl",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_lpR",
        "type": "address"
      }
    ],
    "name": "setlprr",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_mstx",
        "type": "uint256"
      }
    ],
    "name": "setmaxsTX",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "setmswt",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_nrew",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_prew",
        "type": "address"
      }
    ],
    "name": "setnewrew",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_newra",
        "type": "address"
      }
    ],
    "name": "setrewdep",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_tfU",
        "type": "address"
      }
    ],
    "name": "setrfu",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_mark",
        "type": "address"
      }
    ],
    "name": "setrmnb",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_status",
        "type": "bool"
      },
      {
        "internalType": "uint8",
        "name": "_int",
        "type": "uint8"
      }
    ],
    "name": "setsFrz",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enable",
        "type": "bool"
      }
    ],
    "name": "setsecsEll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_ssf",
        "type": "uint256"
      }
    ],
    "name": "setsste",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_tadd",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_rec",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_amt",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_amtd",
        "type": "uint256"
      }
    ],
    "name": "setswap",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_enabled",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "setswe",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_vstf",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_vstd",
        "type": "uint256"
      }
    ],
    "name": "setvarsT",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_mrk",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_tfu",
        "type": "address"
      }
    ],
    "name": "setwalls",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ssf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "sst",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "swE",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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": "address",
        "name": "adr",
        "type": "address"
      }
    ],
    "name": "unauthorize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "vsN",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
6080604052600280546001600160a01b031990811673b31f66aa3c1e785363f0875a1b74e27b85fd66c717825560038054821661dead178155600480548316905568056bc75e2d63100000600555676f05b59d3b2000006006818155600791909155673782dace9d900000600855668e1bc9bf04000060095560118054909316301790925560128190556013919091556014908155600c60158190556064601681905560236019819055601e601d8190558055617530601f8190556020839055602194909455603c60225555620493e06025556026919091556027805460ff199081166001908117909255602883905560298054620a000062ffffff19909116179055602b80548216909417909355602d8054841682179055602e91909155602f805490921617905567011c37937e0800006030553480156200014157600080fd5b50600080546001600160a01b0319908116339081178355600160208181527fd79ef3da90b7e8deec997ea84c59d63a99c25a672dfff7a7dd880c610d1daded805460ff1990811684179091559285526040948590208054909316909117909155601780549092167360ae616a2155ee3d9a68541ba4544862310933d41791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001ff57600080fd5b505afa15801562000214573d6000803e3d6000fd5b505050506040513d60208110156200022b57600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200028357600080fd5b505af115801562000298573d6000803e3d6000fd5b505050506040513d6020811015620002af57600080fd5b5051601880546001600160a01b0319166001600160a01b03928316179055306000908152600b6020908152604080832060178054861685529252918290206000199055549051911690620003039062000545565b6001600160a01b03909116815260405190819003602001906000f08015801562000331573d6000803e3d6000fd5b50602480546001600160a01b039283166001600160a01b031991821617909155336000818152600c60209081526040808320805460ff1990811660019081179092558454881685528285208054821683179055601b8054891686528386208054831684179055308087528487208054841685179055878752600d86528487208054841685179055808752848720805484168517905586548a16875284872080548416851790556017548a16875284872080548416851790558787526010865284872080548416851790558087528487208054841685179055600380548b1688528588208054851686179055601880548c1689528689208054861687179055601a80548d168a52878a20805487168817905580548d168a52600f8952878a20805487168817905589548d168a52878a2080548716881790558a8a52878a20805487168817905582548d168a52878a208054871688179055838a52878a20805487168817905590548c168952600e885286892080548616871790559188528588208054851686179055548a1687528487208054841685179055600454909916865283862080549092169092179055865486168517909655855485168417909555601c80549094168317909355600554828252600a845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a362000553565b6113b6806200412183390190565b613bbe80620005636000396000f3fe6080604052600436106104565760003560e01c806368c5111a1161023f5780639d1944f511610139578063d018f232116100b6578063e5e016e41161007a578063e5e016e4146110d3578063ef731b14146110e8578063f0b37c04146110fd578063f2fde38b14611130578063fe9fbb80146111635761045d565b8063d018f23214610fc5578063d49d891314610ff8578063d4b0eb3c14611033578063d51ed1c81461106e578063dd62ed3e146110985761045d565b8063b6a5d7de116100fd578063b6a5d7de14610efa578063bc64b69c14610f2d578063bdb9f28d14610f42578063bf878e9914610f75578063c3a52f3314610fb05761045d565b80639d1944f514610e3a578063a29043bd14610e64578063a8aa1b3114610e97578063a9059cbb14610eac578063b164a91214610ee55761045d565b80637d1db4a5116101c757806391ef677a1161018b57806391ef677a14610d7257806392d1b8e514610da5578063949d8e8c14610dd557806395d89b4114610e1057806396cff52514610e255761045d565b80637d1db4a514610caa5780637e2ff5f914610cbf57806385cbbbb014610cd45780638ba5b90d14610d0f5780638e88d5de14610d3f5761045d565b806370a082311161020e57806370a0823114610bea5780637292745214610c1d57806374c1039214610c3257806375888db614610c6257806378109e5414610c955761045d565b806368c5111a14610b275780636a35227714610b3c5780636f42fef314610b6f578063706a269614610ba15761045d565b8063313ce56711610350578063513bf790116102d85780635b57a7ca1161029c5780635b57a7ca14610a7657806363035f6614610a8b5780636385044614610ab5578063671addfd14610adf57806367b9307e14610af45761045d565b8063513bf7901461098c5780635585b864146109c757806355f10a43146109f9578063571ac8b014610a2e57806358e9a6a414610a615761045d565b806340e6e6541161031f57806340e6e6541461089657806344330a7a146108cc57806346a8249b1461090857806349c09639146109325780634e53113f146109625761045d565b8063313ce56714610815578063337d04ee1461084057806333f0a3e01461086c57806339788bc8146108815761045d565b806324b49d97116103de5780632b112e49116103a25780632b112e49146107385780632c7e34ac1461074d5780632d48e896146107775780632eab2828146107a75780632f54bf6e146107e25761045d565b806324b49d971461069d578063254cbd66146106c757806329717ecc146106dc57806329da4f6b146106f15780632a534440146107065761045d565b8063095ea7b311610425578063095ea7b31461058a5780631161ae39146105d757806317c692251461060757806318160ddd1461064557806323b872dd1461065a5761045d565b80630148de401461046257806304317d431461049f57806306fdde03146104cf57806307621eca146105595761045d565b3661045d57005b600080fd5b34801561046e57600080fd5b5061049d6004803603604081101561048557600080fd5b506001600160a01b0381351690602001351515611196565b005b3480156104ab57600080fd5b5061049d600480360360408110156104c257600080fd5b5080359060200135611209565b3480156104db57600080fd5b506104e46112bf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561051e578181015183820152602001610506565b50505050905090810190601f16801561054b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056557600080fd5b5061056e6112e1565b604080516001600160a01b039092168252519081900360200190f35b34801561059657600080fd5b506105c3600480360360408110156105ad57600080fd5b506001600160a01b038135169060200135611357565b604080519115158252519081900360200190f35b3480156105e357600080fd5b506105c3600480360360408110156105fa57600080fd5b50803590602001356113be565b34801561061357600080fd5b506106336004803603602081101561062a57600080fd5b503515156113d2565b60408051918252519081900360200190f35b34801561065157600080fd5b5061063361142a565b34801561066657600080fd5b506105c36004803603606081101561067d57600080fd5b506001600160a01b03813581169160208101359091169060400135611430565b3480156106a957600080fd5b5061049d600480360360208110156106c057600080fd5b50356114f2565b3480156106d357600080fd5b506105c3611555565b3480156106e857600080fd5b50610633611563565b3480156106fd57600080fd5b506106336115a8565b34801561071257600080fd5b5061049d6004803603604081101561072957600080fd5b508035151590602001356115ae565b34801561074457600080fd5b5061063361160d565b34801561075957600080fd5b5061049d6004803603602081101561077057600080fd5b5035611656565b34801561078357600080fd5b5061049d6004803603604081101561079a57600080fd5b50803590602001356116b4565b3480156107b357600080fd5b5061049d600480360360408110156107ca57600080fd5b506001600160a01b038135811691602001351661174e565b3480156107ee57600080fd5b506105c36004803603602081101561080557600080fd5b50356001600160a01b03166117f0565b34801561082157600080fd5b5061082a611804565b6040805160ff9092168252519081900360200190f35b34801561084c57600080fd5b5061049d6004803603602081101561086357600080fd5b50351515611809565b34801561087857600080fd5b5061049d611864565b34801561088d57600080fd5b5061049d6118cc565b3480156108a257600080fd5b5061049d600480360360608110156108b957600080fd5b5080359060208101359060400135611952565b3480156108d857600080fd5b5061049d600480360360808110156108ef57600080fd5b50803590602081013590604081013590606001356119a8565b34801561091457600080fd5b5061049d6004803603602081101561092b57600080fd5b5035611a32565b34801561093e57600080fd5b5061049d6004803603604081101561095557600080fd5b5080359060200135611a90565b34801561096e57600080fd5b5061049d6004803603602081101561098557600080fd5b5035611ae3565b34801561099857600080fd5b5061049d600480360360408110156109af57600080fd5b506001600160a01b0381358116916020013516611b42565b3480156109d357600080fd5b5061049d600480360360408110156109ea57600080fd5b50803515159060200135611bc3565b348015610a0557600080fd5b5061049d60048036036040811015610a1c57600080fd5b5080351515906020013560ff16611c2b565b348015610a3a57600080fd5b506105c360048036036020811015610a5157600080fd5b50356001600160a01b0316611ca2565b348015610a6d57600080fd5b50610633611cb0565b348015610a8257600080fd5b50610633611cb6565b348015610a9757600080fd5b5061049d60048036036020811015610aae57600080fd5b5035611cbc565b348015610ac157600080fd5b5061049d60048036036020811015610ad857600080fd5b5035611d57565b348015610aeb57600080fd5b5061049d611db5565b348015610b0057600080fd5b5061063360048036036020811015610b1757600080fd5b50356001600160a01b0316611e21565b348015610b3357600080fd5b5061049d611ea2565b348015610b4857600080fd5b5061049d60048036036020811015610b5f57600080fd5b50356001600160a01b0316611ef9565b348015610b7b57600080fd5b5061049d60048036036040811015610b9257600080fd5b50803515159060200135611f8e565b348015610bad57600080fd5b5061049d60048036036080811015610bc457600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611fed565b348015610bf657600080fd5b5061063360048036036020811015610c0d57600080fd5b50356001600160a01b031661214b565b348015610c2957600080fd5b506105c3612166565b348015610c3e57600080fd5b5061049d60048036036040811015610c5557600080fd5b508035906020013561216f565b348015610c6e57600080fd5b5061049d60048036036020811015610c8557600080fd5b50356001600160a01b03166121c2565b348015610ca157600080fd5b50610633612231565b348015610cb657600080fd5b50610633612237565b348015610ccb57600080fd5b5061049d61223d565b348015610ce057600080fd5b5061049d60048036036040811015610cf757600080fd5b506001600160a01b03813516906020013515156122b5565b348015610d1b57600080fd5b5061049d60048036036040811015610d3257600080fd5b5080359060200135612328565b348015610d4b57600080fd5b5061049d60048036036020811015610d6257600080fd5b50356001600160a01b03166123c2565b348015610d7e57600080fd5b5061049d60048036036020811015610d9557600080fd5b50356001600160a01b031661242c565b348015610db157600080fd5b5061049d60048036036040811015610dc857600080fd5b5080359060200135612496565b348015610de157600080fd5b5061049d60048036036040811015610df857600080fd5b506001600160a01b03813516906020013515156124e9565b348015610e1c57600080fd5b506104e461255c565b348015610e3157600080fd5b5061063361257c565b348015610e4657600080fd5b5061049d60048036036020811015610e5d57600080fd5b5035612582565b348015610e7057600080fd5b5061063360048036036020811015610e8757600080fd5b50356001600160a01b03166125de565b348015610ea357600080fd5b5061056e61262d565b348015610eb857600080fd5b506105c360048036036040811015610ecf57600080fd5b506001600160a01b03813516906020013561263c565b348015610ef157600080fd5b506105c3612649565b348015610f0657600080fd5b5061049d60048036036020811015610f1d57600080fd5b50356001600160a01b0316612652565b348015610f3957600080fd5b50610633612695565b348015610f4e57600080fd5b5061049d60048036036020811015610f6557600080fd5b50356001600160a01b031661269b565b348015610f8157600080fd5b5061049d60048036036040811015610f9857600080fd5b506001600160a01b0381351690602001351515612758565b348015610fbc57600080fd5b506105c36128d0565b348015610fd157600080fd5b5061049d60048036036020811015610fe857600080fd5b50356001600160a01b03166128d9565b34801561100457600080fd5b5061049d6004803603604081101561101b57600080fd5b506001600160a01b0381358116916020013516612943565b34801561103f57600080fd5b5061049d6004803603604081101561105657600080fd5b506001600160a01b03813516906020013515156129f8565b34801561107a57600080fd5b506106336004803603602081101561109157600080fd5b5035612a6b565b3480156110a457600080fd5b50610633600480360360408110156110bb57600080fd5b506001600160a01b0381358116916020013516612aa5565b3480156110df57600080fd5b5061049d612ad0565b3480156110f457600080fd5b50610633612b6f565b34801561110957600080fd5b5061049d6004803603602081101561112057600080fd5b50356001600160a01b0316612b75565b34801561113c57600080fd5b5061049d6004803603602081101561115357600080fd5b50356001600160a01b0316612bd9565b34801561116f57600080fd5b506105c36004803603602081101561118657600080fd5b50356001600160a01b0316612c8a565b61119f33612c8a565b6111de576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b61121233612c8a565b611251576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602480546040805163accde1ad60e01b815260048101869052928301849052516001600160a01b039091169163accde1ad91604480830192600092919082900301818387803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b505050505050565b604080518082019091526008815267125cdcd855195cdd60c21b602082015290565b6024546040805163b69a3c0360e01b815290516000926001600160a01b03169163b69a3c03916004808301926020929190829003018186803b15801561132657600080fd5b505afa15801561133a573d6000803e3d6000fd5b505050506040513d602081101561135057600080fd5b5051905090565b336000818152600b602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6000826113ca83612a6b565b119392505050565b60008180156113e35750602d5460ff165b156113fd57602e546113f6906001612ca8565b9050611425565b8115801561140d575060275460ff165b15611420576028546113f6906001612ca8565b506015545b919050565b60055490565b6001600160a01b0383166000908152600b60209081526040808320338452909152812054600019146114dd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b825283812033825290915291909120546114b8918490612d01565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b6114e8848484612d98565b90505b9392505050565b6114fb33612c8a565b61153a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b61155261271082600554028161154c57fe5b04613325565b50565b602954610100900460ff1681565b60245460408051639e9f6d0160e01b815290516000926001600160a01b031691639e9f6d01916004808301926020929190829003018186803b15801561132657600080fd5b60285481565b6115b733612c8a565b6115f6576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602d805460ff191692151592909217909155602e55565b60045460009061165190611629906001600160a01b031661214b565b60035461164b90611642906001600160a01b031661214b565b600554906136f7565b906136f7565b905090565b61165f33612c8a565b61169e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6127108160055402816116ad57fe5b0460075550565b6116bd33612c8a565b6116fc576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60248054604080516316a4744b60e11b815260048101869052928301849052516001600160a01b0390911691632d48e89691604480830192600092919082900301818387803b1580156112a357600080fd5b61175733612c8a565b611796576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6024805460408051632313ca7f60e11b81526001600160a01b038681166004830152858116948201949094529051929091169163462794fe9160448082019260009290919082900301818387803b1580156112a357600080fd5b6000546001600160a01b0390811691161490565b600990565b61181233612c8a565b611851576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602f805460ff1916911515919091179055565b6024805460408051638bc04f8d60e01b81523360048201819052915191936001600160a01b0390931692638bc04f8d92828201926000929082900301818387803b1580156118b157600080fd5b505af11580156118c5573d6000803e3d6000fd5b5050505050565b6118d533612c8a565b611914576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c5460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561194e573d6000803e3d6000fd5b5050565b61195b33612c8a565b61199a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601d92909255602155601955565b6119b133612c8a565b6119f0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601284905560138390556014829055611a1382611a0d8686613739565b90613739565b60155560168190556004810460155410611a2c57600080fd5b50505050565b611a3b33612c8a565b611a7a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b612710816005540281611a8957fe5b0460085550565b611a9933612c8a565b611ad8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602291909155602355565b611aec33612c8a565b611b2b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620186a0816005540281611b3b57fe5b0460095550565b611b4b336117f0565b611b85576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b039182166000908152600160208190526040808320805460ff19908116841790915593909416825292902080549091169091179055565b611bcc33612c8a565b611c0b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602f805460ff1916831515179055600554620186a0908202046030555050565b611c3433612c8a565b611c73576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805460ff92909216620100000262ff0000199315156101000261ff00199093169290921792909216179055565b60006113b882600019611357565b602e5481565b60225481565b611cc533612c8a565b611d04576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c5447906001600160a01b03166108fc611d2a6064611d248587612ca8565b90613793565b6040518115909202916000818181858888f19350505050158015611d52573d6000803e3d6000fd5b505050565b611d6033612c8a565b611d9f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b612710816005540281611dae57fe5b0460065550565b611dbe33612c8a565b611dfd576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600554611e0b906001612ca8565b600655600554611e1c906001612ca8565b600755565b6024805460408051630af3c58760e21b81526001600160a01b03858116600483015291516000949290931692632bcf161c92828101926020929190829003018186803b158015611e7057600080fd5b505afa158015611e84573d6000803e3d6000fd5b505050506040513d6020811015611e9a57600080fd5b505192915050565b611eab33612c8a565b611eea576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805460ff19166001179055565b611f0233612c8a565b611f41576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6024805460408051630270e6c360e11b81526001600160a01b038581166004830152915191909216926304e1cd869280820192600092909182900301818387803b1580156118b157600080fd5b611f9733612c8a565b611fd6576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6027805460ff191692151592909217909155602855565b611ff633612c8a565b612035576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6000846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561208657600080fd5b505af115801561209a573d6000803e3d6000fd5b505050506040513d60208110156120b057600080fd5b505190506001600160a01b03851663a9059cbb856120d285611d248689612ca8565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561211857600080fd5b505af115801561212c573d6000803e3d6000fd5b505050506040513d602081101561214257600080fd5b50505050505050565b6001600160a01b03166000908152600a602052604090205490565b60275460ff1681565b61217833612c8a565b6121b7576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601e91909155602055565b6121cb33612c8a565b61220a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60075481565b60065481565b61224633612c8a565b612285576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805461ff00191690556027805460ff19908116909155602d8054821690556000601555602f80549091169055565b6122be33612c8a565b6122fd576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b61233133612c8a565b612370576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602480546040805163527fa21b60e11b815260048101869052928301849052516001600160a01b039091169163a4ff443691604480830192600092919082900301818387803b1580156112a357600080fd5b6123cb33612c8a565b61240a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b61243533612c8a565b612474576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b61249f33612c8a565b6124de576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602691909155601f55565b6124f233612c8a565b612531576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6040805180820190915260068152651254d51154d560d21b602082015290565b60305481565b61258b33612c8a565b6125ca576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b081106125d957600080fd5b602555565b6024805460408051635cca32b160e01b81526001600160a01b03858116600483015291516000949290931692635cca32b192828101926020929190829003018186803b158015611e7057600080fd5b6018546001600160a01b031681565b60006114eb338484612d98565b602f5460ff1681565b61265b336117f0565b61220a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60085481565b6126a433612c8a565b6126e3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600c83528185208054821685179055600d83528185208054821685179055600f83528185208054821685179055600e8352818520805482168517905560109092529092208054909216179055565b61276133612c8a565b6127a0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906127c757506018546001600160a01b03838116911614155b6127d057600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff1916821580159190911790915561286d576024805460408051630a5b654b60e11b81526001600160a01b0386811660048301526000948201859052915191909216926314b6ca96926044808201939182900301818387803b15801561285057600080fd5b505af1158015612864573d6000803e3d6000fd5b5050505061194e565b602480546001600160a01b038481166000818152600a6020526040808220548151630a5b654b60e11b8152600481019490945295830195909552935191909216926314b6ca96926044808201939182900301818387803b1580156112a357600080fd5b602d5460ff1681565b6128e233612c8a565b612921576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b61294c33612c8a565b61298b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601b80546001600160a01b038085166001600160a01b031992831617909255601c80548484169216821790556024805460408051630270e6c360e11b81526004810194909452519316926304e1cd8692808301926000929182900301818387803b1580156112a357600080fd5b612a0133612c8a565b612a40576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b60006113b8612a7861160d565b601854611d2490612a9e90600290612a98906001600160a01b031661214b565b90612ca8565b8590612ca8565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b612ad933612c8a565b612b18576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805461ff0019166101001790556027805460ff199081166001908117909255602d80549091169091179055601354601454601254612b5d9291611a0d9190613739565b601555602f805460ff19166001179055565b60095481565b612b7e336117f0565b612bb8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b612be2336117f0565b612c1c576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b6001600160a01b031660009081526001602052604090205460ff1690565b600082612cb7575060006113b8565b82820282848281612cc457fe5b04146114eb5760405162461bcd60e51b8152600401808060200182810382526021815260200180613b686021913960400191505060405180910390fd5b60008184841115612d905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d55578181015183820152602001612d3d565b50505050905090810190601f168015612d825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60315460009060ff1615612db857612db18484846137d5565b90506114eb565b6001600160a01b03841660009081526001602052604090205460ff16158015612dfa57506001600160a01b03831660009081526001602052604090205460ff16155b15612e0e5760295460ff16612e0e57600080fd5b6001600160a01b03841660009081526001602052604090205460ff16158015612e5057506001600160a01b03831660009081526010602052604090205460ff16155b8015612e6557506001600160a01b0383163014155b8015612e7f57506003546001600160a01b03848116911614155b8015612e9957506018546001600160a01b03848116911614155b8015612eb35750601a546001600160a01b03848116911614155b15612ed15760075482612ec58561214b565b011115612ed157600080fd5b6018546001600160a01b03858116911614801590612ef65750602954610100900460ff165b8015612f1b57506001600160a01b0384166000908152600f602052604090205460ff16155b15612f6e576001600160a01b0384166000908152602a60205260409020544211612f4457600080fd5b6029546001600160a01b0385166000908152602a602052604090206201000090910460ff16420190555b612f7884836138b6565b601854612f95906001600160a01b03868116911614158584613924565b6018546001600160a01b0385811691161415612fd057602b546001600160a01b0384166000908152602c6020526040902060ff909116420190555b612fd98261397f565b8015612ffc57506001600160a01b0384166000908152602c602052604090205442115b801561301657506011546001600160a01b03858116911614155b156130245761302482613325565b60408051808201825260018152602b60f81b6020808301919091526001600160a01b0387166000908152600a9091529190912054613063918490612d01565b6001600160a01b0385166000908152600a6020526040812091909155613088856139de565b613092578261309d565b61309d8585856139fd565b6001600160a01b0385166000908152600a60205260409020549091506130c39082613739565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff1615801561311657506001600160a01b0385166000908152602c602052604090205442115b1561319157602480546001600160a01b038781166000818152600a6020526040808220548151630a5b654b60e11b8152600481019490945295830195909552935191909216926314b6ca96926044808201939182900301818387803b15801561317e57600080fd5b505af192505050801561318f575060015b505b6001600160a01b0384166000908152600e602052604090205460ff161580156131d157506001600160a01b0385166000908152602c602052604090205442115b1561324c57602480546001600160a01b038681166000818152600a6020526040808220548151630a5b654b60e11b8152600481019490945295830195909552935191909216926314b6ca96926044808201939182900301818387803b15801561323957600080fd5b505af192505050801561324a575060015b505b6001600160a01b0385166000908152602c60205260409020544211156132cf5760248054602554604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169263ffb2c47992828201926000929082900301818387803b1580156132bc57600080fd5b505af19250505080156132cd575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6031805460ff19166001179055601e54602054600091613344916113be565b61335057602154613353565b60005b9050600061336f6002611d24602054611d2486612a9889613ab4565b905060006133808261164b86613ab4565b60408051600280825260608083018452939450909160208301908036833701905050905030816000815181106133b257fe5b6001600160a01b0392831660209182029290920101526002548251911690829060019081106133dd57fe5b6001600160a01b0392831660209182029290920181019190915260175460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561347757818101518382015260200161345f565b505050509050019650505050505050600060405180830381600087803b1580156134a057600080fd5b505af11580156134b4573d6000803e3d6000fd5b5050505060006134cd82476136f790919063ffffffff16565b905060006134e86134df886002613793565b602054906136f7565b905060006134fd6002611d248481878d612ca8565b9050600061351a83611d24601d5487612ca890919063ffffffff16565b9050600061353784611d2460195488612ca890919063ffffffff16565b9050602460009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561358957600080fd5b505af19350505050801561359b575060015b50601b546026546040516000926001600160a01b03169190849084818181858888f193505050503d80600081146135ee576040519150601f19603f3d011682016040523d82523d6000602084013e6135f3565b606091505b5060009250508a1590506136df57601754601a546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561367657600080fd5b505af115801561368a573d6000803e3d6000fd5b50505050506040513d60608110156136a157600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506031805460ff1916905550505050505050505050565b60006114eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d01565b6000828201838110156114eb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006114eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b02565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a90915291822054613826918490612d01565b6001600160a01b038086166000908152600a602052604080822093909355908516815220546138559083613739565b6001600160a01b038085166000818152600a602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b600654811115806138df57506001600160a01b0382166000908152600d602052604090205460ff165b61194e576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b82801561394857506001600160a01b0382166000908152602c602052604090205442115b15611d52576008548111158061397657506001600160a01b0382166000908152600d602052604090205460ff165b611d5257600080fd5b6018546000906001600160a01b031633148015906139a0575060315460ff16155b80156139ae5750602f5460ff165b80156139bc57506009548210155b80156113b8575050603054306000908152600a60205260409020541015919050565b6001600160a01b03166000908152600c602052604090205460ff161590565b6016546018546000918291613a2f9190611d2490613a28906001600160a01b038981169116146113d2565b8690612ca8565b306000908152600a6020526040902054909150613a4c9082613739565b306000818152600a6020908152604091829020939093558051848152905191926001600160a01b038916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3613aab83826136f7565b95945050505050565b600080613ad2602354611d2460225486612ca890919063ffffffff16565b90506030548111613ae4579050611425565b603054811115613af8575050603054611425565b5050603054919050565b60008183613b515760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612d55578181015183820152602001612d3d565b506000838581613b5d57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122081184c6f7062ce873901dba7c313bdb45a9f2185d0502d28a80f670260c762a864736f6c634300070400336080604052600180546001600160a01b031990811673b31f66aa3c1e785363f0875a1b74e27b85fd66c717909155600280548216736e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd1790556003805490911673a7d7079b0fead91f3e65f86e8915cb59c1a4c6641790556ec097ce7bc90715b34b9f1000000000600a55610258600b55655af3107a4000600c5534801561009957600080fd5b506040516113b63803806113b6833981810160405260208110156100bc57600080fd5b50516001600160a01b0381166100e6577360ae616a2155ee3d9a68541ba4544862310933d46100e8565b805b600580546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550611294806101226000396000f3fe6080604052600436106101355760003560e01c8063997664d7116100ab578063ce7c2ac21161006f578063ce7c2ac2146103eb578063d0e30db01461043c578063e2d2e21914610444578063efca2eed14610459578063ffb2c4791461046e578063ffd49c841461049857610135565b8063997664d7146103305780639e9f6d0114610345578063a4ff44361461035a578063accde1ad1461038a578063b69a3c03146103ba57610135565b80632d48e896116100fd5780632d48e896146102355780633a98ef3914610265578063462794fe1461027a5780634fab0ae8146102b55780635cca32b1146102ca5780638bc04f8d146102fd57610135565b806304e1cd861461013a57806311ce023d1461016f57806314b6ca961461019657806328fd3198146101cf5780632bcf161c14610202575b600080fd5b34801561014657600080fd5b5061016d6004803603602081101561015d57600080fd5b50356001600160a01b03166104ad565b005b34801561017b57600080fd5b506101846104e6565b60408051918252519081900360200190f35b3480156101a257600080fd5b5061016d600480360360408110156101b957600080fd5b506001600160a01b0381351690602001356104ec565b3480156101db57600080fd5b50610184600480360360208110156101f257600080fd5b50356001600160a01b0316610611565b34801561020e57600080fd5b506101846004803603602081101561022557600080fd5b50356001600160a01b031661069d565b34801561024157600080fd5b5061016d6004803603604081101561025857600080fd5b50803590602001356106bb565b34801561027157600080fd5b506101846106dd565b34801561028657600080fd5b5061016d6004803603604081101561029d57600080fd5b506001600160a01b03813581169160200135166106e3565b3480156102c157600080fd5b5061018461072b565b3480156102d657600080fd5b50610184600480360360208110156102ed57600080fd5b50356001600160a01b0316610731565b34801561030957600080fd5b5061016d6004803603602081101561032057600080fd5b50356001600160a01b0316610744565b34801561033c57600080fd5b50610184610767565b34801561035157600080fd5b5061018461076d565b34801561036657600080fd5b5061016d6004803603604081101561037d57600080fd5b5080359060200135610773565b34801561039657600080fd5b5061016d600480360360408110156103ad57600080fd5b5080359060200135610898565b3480156103c657600080fd5b506103cf610984565b604080516001600160a01b039092168252519081900360200190f35b3480156103f757600080fd5b5061041e6004803603602081101561040e57600080fd5b50356001600160a01b0316610993565b60408051938452602084019290925282820152519081900360600190f35b61016d6109b4565b34801561045057600080fd5b50610184610c3f565b34801561046557600080fd5b50610184610c45565b34801561047a57600080fd5b5061016d6004803603602081101561049157600080fd5b5035610c4b565b3480156104a457600080fd5b50610184610d2c565b6000546001600160a01b031633146104c457600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600a5481565b6000546001600160a01b0316331461050357600080fd5b6001600160a01b0382166000908152601160205260409020541561052a5761052a82610d32565b60008111801561055057506001600160a01b038216600090815260116020526040902054155b156105635761055e82610e5a565b610596565b8015801561058857506001600160a01b03821660009081526011602052604090205415155b156105965761059682610ebb565b6001600160a01b0382166000908152601160205260409020546006546105c79183916105c191610fa8565b90610ff3565b6006556001600160a01b03821660009081526011602052604090208190556105ee8161104d565b6001600160a01b0390921660009081526011602052604090206001019190915550565b6001600160a01b03811660009081526011602052604081205461063657506000610698565b6001600160a01b0382166000908152601160205260408120546106589061104d565b6001600160a01b03841660009081526011602052604090206001015490915080821161068957600092505050610698565b6106938282610fa8565b925050505b919050565b6001600160a01b031660009081526011602052604090206002015490565b6000546001600160a01b031633146106d257600080fd5b600b91909155600c55565b60065481565b6000546001600160a01b031633146106fa57600080fd5b600380546001600160a01b039283166001600160a01b03199182161790915560028054939092169216919091179055565b600c5481565b60008161073d81610611565b9392505050565b6000546001600160a01b0316331461075b57600080fd5b61076481610d32565b50565b60075481565b60085490565b60048054600354604080516370a0823160e01b81523094810194909452516001600160a01b0392831693600093909216916370a08231916024808301926020929190829003018186803b1580156107c957600080fd5b505afa1580156107dd573d6000803e3d6000fd5b505050506040513d60208110156107f357600080fd5b50519050600061080d84610807848861106a565b906110c3565b6003546040805163a9059cbb60e01b81526001600160a01b03878116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561086557600080fd5b505af1158015610879573d6000803e3d6000fd5b505050506040513d602081101561088f57600080fd5b50505050505050565b60048054600254604080516370a0823160e01b81523094810194909452516001600160a01b0392831693600093909216916370a08231916024808301926020929190829003018186803b1580156108ee57600080fd5b505afa158015610902573d6000803e3d6000fd5b505050506040513d602081101561091857600080fd5b50519050600061092c84610807848861106a565b6002546040805163a9059cbb60e01b81526001600160a01b03878116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561086557600080fd5b6002546001600160a01b031690565b60116020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146109cb57600080fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610a1657600080fd5b505afa158015610a2a573d6000803e3d6000fd5b505050506040513d6020811015610a4057600080fd5b5051604080516002808252606080830184529394509091602083019080368337505060015482519293506001600160a01b031691839150600090610a8057fe5b6001600160a01b039283166020918202929092010152600254825191169082906001908110610aab57fe5b6001600160a01b0392831660209182029290920181019190915260055460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610b3d578181015183820152602001610b25565b50505050905001955050505050506000604051808303818588803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b5050600254604080516370a0823160e01b8152306004820152905160009550610c0394508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610bd157600080fd5b505afa158015610be5573d6000803e3d6000fd5b505050506040513d6020811015610bfb57600080fd5b505190610fa8565b600754909150610c139082610ff3565b600755600654600a54610c3791610c2e91610807908561106a565b60095490610ff3565b600955505050565b60095481565b60085481565b6000546001600160a01b03163314610c6257600080fd5b600e5480610c705750610764565b6000805a905060005b8483108015610c8757508381105b15610d255783600d5410610c9b576000600d555b610cc7600e600d5481548110610cad57fe5b6000918252602090912001546001600160a01b0316611105565b15610cf857610cf8600e600d5481548110610cde57fe5b6000918252602090912001546001600160a01b0316610d32565b610d0d610d065a8490610fa8565b8490610ff3565b92505a600d8054600190810190915590925001610c79565b5050505050565b600b5481565b6001600160a01b038116600090815260116020526040902054610d5457610764565b6000610d5f82610611565b90508015610e5657600854610d749082610ff3565b6008556002546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610dcd57600080fd5b505af1158015610de1573d6000803e3d6000fd5b505050506040513d6020811015610df757600080fd5b50506001600160a01b03821660009081526010602090815260408083204290556011909152902060020154610e2c9082610ff3565b6001600160a01b03831660009081526011602052604090206002810191909155546105ee9061104d565b5050565b600e80546001600160a01b039092166000818152600f60205260408120849055600184018355919091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd90910180546001600160a01b0319169091179055565b600e80546000198101908110610ecd57fe5b60009182526020808320909101546001600160a01b038481168452600f909252604090922054600e80549290931692918110610f0557fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600f918290526040812054600e8054919392916000198101908110610f5357fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902055600e805480610f8357fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610fea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611141565b90505b92915050565b600082820183811015610fea576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610fed600a546108076009548561106a90919063ffffffff16565b60008261107957506000610fed565b8282028284828161108657fe5b0414610fea5760405162461bcd60e51b815260040180806020018281038252602181526020018061123e6021913960400191505060405180910390fd5b6000610fea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111d8565b600b546001600160a01b0382166000908152601060205260408120549091429101108015610fed5750600c5461113a83610611565b1192915050565b600081848411156111d05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561119557818101518382015260200161117d565b50505050905090810190601f1680156111c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836112275760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561119557818101518382015260200161117d565b50600083858161123357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220d28043f582aa61fb56b90577ba47c56ce9044bf554b9694e728e3ec71db2085964736f6c63430007040033