ETH Price: $2,350.23 (+7.23%)
 

Overview

Max Total Supply

1,000,000,000 CHAMP...

Holders

615 (0.00%)

Transfers

-
108 ( 77.05%)

Market

Price

$0.0002 @ 0.000000 ETH

Onchain Market Cap

$179,530.00

Circulating Supply Market Cap

$179,530.00

Other Info

Token Contract (WITH 8 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

CHAMPZ - Official game token on Base. Web3 RPG game where mushroom warriors defend Arborethia through strategic PvE/PvP battles. Play2Earn ecosystem with daily rewards, NFT characters, and guild warfare.

Contract Source Code Verified (Exact Match)

Contract Name:
Champz

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, MIT license
File 1 of 1 : ChampzToken.sol
// SPDX-License-Identifier: MIT
/**
Game: https://play.champz.world
TG: https://t.me/champzERC
X: https://x.com/ChampzErc
Website: https://champz.world

Champignons of Arborethia is a well designed, free-to-play browser game, that is based around mushrooms who are tasked with defending their Homeland from evil forces. 
The game provides players multiple ways to earn in game, including Ethereum rewards from daily quests for those who hold the $CHAMPZ token.
**/

pragma solidity 0.8.26;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 payable) {
        return payable(msg.sender);
    }

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

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Champz is Ownable, ERC20 {
    using SafeMath for uint256;

    address public WETH;

    string constant _name = "Champz";
    string constant _symbol = "CHAMPZ";
    uint8  constant _decimals = 8; 
    uint256 constant _totalSupply =  1_000_000_000 * (10 ** _decimals);


    event TaxChanged(uint256 buyTaxBP, uint256 sellTaxBP);
    event WhitelistUser(address wallet, bool isWhitelisted);
    event StuckEthCleared(uint256 amount);
    event StuckTokenCleared(address tokenAddress, uint256 amount, address destination);
    event MarketingWalletChanged(address newWallet, address previousWallet);
    event SwapbackChanged(uint256 amount, bool enabled);
    event TradingOpen(bool open);


    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;  
    mapping (address => bool) isWhitelisted;


    uint256 public sellTax = 500;  // in basis points (100 = 1%). Initially set to 5%
    uint256 public buyTax = 500;   // in basis points (100 = 1%). Initially set to 5%
    uint256 public constant TAX_DENOMINATOR = 10000;
    uint256 public constant MAX_TAX = 1000; // in basis points (100 = 1%). Set to 10%

    address public marketingWallet;

    IDEXRouter public router;
    address public pair;
    
    bool public isTradingOpen = false; 
    bool public swapEnabled = false;

    uint256 public swapThreshold = _totalSupply.div(5000);

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor (address _marketingWallet) {
        marketingWallet = _marketingWallet;

        // Base Uniswap V2 Router (works on both Base Sepolia testnet and Base mainnet)
        // Note: On testnet, DEX integration can be set up later via setRouter function
        router = IDEXRouter(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);

        // Try to initialize DEX, but don't fail deployment if router doesn't exist
        try router.WETH() returns (address weth) {
            WETH = weth;
            pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
            ERC20(pair).approve(address(router), type(uint).max);
            _allowances[address(this)][address(router)] = type(uint256).max;
        } catch {
            // Router doesn't exist (testnet), skip DEX setup
            // Can be initialized later with setRouter function
        }

        isWhitelisted[msg.sender] = true;
        isWhitelisted[marketingWallet] = true;
        isWhitelisted[address(this)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }


    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if ( inSwap ) {
          return _basicTransfer(sender, recipient, amount);
        }

        if (shouldSwapBack())  {
          swapBack(); 
        }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = 
          (isWhitelisted[sender] || isWhitelisted[recipient]) ? amount : takeFee(sender, amount, recipient);

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isWhitelisted[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 bp = 0;

        if(recipient == pair) {
            bp = sellTax;
        } else if(sender == pair) {
            bp = buyTax;
        }

        uint256 feeAmount = amount.mul(bp).div(TAX_DENOMINATOR);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);

        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
          && !inSwap
          && swapEnabled
          && _balances[address(this)] >= swapThreshold;
    }
  
    function clearStuckEth() external { 
        uint256 amount = address(this).balance;
        require(amount > 0, "No ETH to transfer");

        payable(marketingWallet).transfer(amount);
        emit StuckEthCleared(amount);
    }

    function clearStuckToken(address tokenAddress, address destination) external onlyOwner {
        uint256 amount = ERC20(tokenAddress).balanceOf(address(this));
        require(amount > 0, "No tokens to transfer");

        ERC20(tokenAddress).transfer(destination, amount);
        emit StuckTokenCleared(tokenAddress, amount, destination);
    }

    function setTax(uint256 buyTaxBP, uint256 sellTaxBP) external onlyOwner {
      require(buyTaxBP <= TAX_DENOMINATOR && sellTaxBP <= TAX_DENOMINATOR, "Tax is too high");
      require(buyTaxBP <= MAX_TAX && sellTaxBP <= MAX_TAX, "Exceeds max tax");

      buyTax = buyTaxBP;
      sellTax = sellTaxBP;

      emit TaxChanged(buyTaxBP, sellTaxBP);
    }
       
    function openTrading() external onlyOwner() {
        require(!isTradingOpen, "Trading is already open");

        router.addLiquidityETH{value: address(this).balance}(
          address(this),
          balanceOf(address(this)),
          0,
          0,
          owner(),
          block.timestamp
        );

        swapEnabled = true;
        isTradingOpen = true;

        emit TradingOpen(true);
    }

    function swapBackManual() external onlyOwner {
        require(balanceOf(address(this)) >= swapThreshold, "Insufficient tokens in contract");
        swapBack();
    }
            
    function swapBack() internal swapping {
        uint256 amountToSwap = swapThreshold;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHMarketing = address(this).balance.sub(balanceBefore);

        (bool tmpSuccess,) = payable(marketingWallet).call{value: amountETHMarketing}("");
        require(tmpSuccess, "Marketing fee transfer failed");
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
      marketingWallet = _marketingWallet;
      address oldMarketingWallet = _marketingWallet;

      emit MarketingWalletChanged(marketingWallet, oldMarketingWallet);
    }

    function setSwapBackSettings(bool _enabled, uint256 _threshold) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _threshold;

        emit SwapbackChanged(_threshold, _enabled);
    }

    function whitelistUser(address _wallet, bool _isWhitelist) external onlyOwner {
        isWhitelisted[_wallet] = _isWhitelist;
        emit WhitelistUser(_wallet, _isWhitelist);
    }

    function airdrop(address[] calldata recipients, uint256[] calldata values) external onlyOwner {
        require(recipients.length == values.length, "recipients and values array length must match");

        for (uint i = 0; i < recipients.length; i++) {
            _basicTransfer(msg.sender, recipients[i], values[i]);
        }
    }
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"},{"indexed":false,"internalType":"address","name":"previousWallet","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StuckEthCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"StuckTokenCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapbackChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyTaxBP","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTaxBP","type":"uint256"}],"name":"TaxChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"open","type":"bool"}],"name":"TradingOpen","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"isWhitelisted","type":"bool"}],"name":"WhitelistUser","type":"event"},{"inputs":[],"name":"MAX_TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TAX_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"destination","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTaxBP","type":"uint256"},{"internalType":"uint256","name":"sellTaxBP","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_isWhitelist","type":"bool"}],"name":"whitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526101f46005556101f46006556000600960146101000a81548160ff0219169083151502179055506000600960156101000a81548160ff0219169083151502179055506100776113886008600a61005a9190610a1a565b633b9aca006100699190610a65565b6107e660201b90919060201c565b600a5534801561008657600080fd5b5060405161494a38038061494a83398181016040528101906100a89190610b0a565b60006100b861083660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734752ba5dbc23f44d87826276bf6fd6b1c372ad24600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561027657506040513d601f19601f820116820180604052508101906102739190610b0a565b60015b156105d45780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034d9190610b0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016103a9929190610b46565b6020604051808303816000875af11580156103c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ec9190610b0a565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016104cb929190610b7e565b6020604051808303816000875af11580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e9190610bdf565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b6001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008600a61070c9190610a1a565b633b9aca0061071b9190610a65565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6107bc9190610a1a565b633b9aca006107cb9190610a65565b6040516107d89190610c0c565b60405180910390a350610d39565b600061082e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061083e60201b60201c565b905092915050565b600033905090565b60008083118290610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c9190610cb7565b60405180910390fd5b50600083856108949190610d08565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561092757808604811115610903576109026108a1565b5b60018516156109125780820291505b8081029050610920856108d0565b94506108e7565b94509492505050565b60008261094057600190506109fc565b8161094e57600090506109fc565b8160018114610964576002811461096e5761099d565b60019150506109fc565b60ff8411156109805761097f6108a1565b5b8360020a915084821115610997576109966108a1565b5b506109fc565b5060208310610133831016604e8410600b84101617156109d25782820a9050838111156109cd576109cc6108a1565b5b6109fc565b6109df84848460016108dd565b925090508184048111156109f6576109f56108a1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000610a2582610a03565b9150610a3083610a0d565b9250610a5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610930565b905092915050565b6000610a7082610a03565b9150610a7b83610a03565b9250828202610a8981610a03565b91508282048414831517610aa057610a9f6108a1565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ad782610aac565b9050919050565b610ae781610acc565b8114610af257600080fd5b50565b600081519050610b0481610ade565b92915050565b600060208284031215610b2057610b1f610aa7565b5b6000610b2e84828501610af5565b91505092915050565b610b4081610acc565b82525050565b6000604082019050610b5b6000830185610b37565b610b686020830184610b37565b9392505050565b610b7881610a03565b82525050565b6000604082019050610b936000830185610b37565b610ba06020830184610b6f565b9392505050565b60008115159050919050565b610bbc81610ba7565b8114610bc757600080fd5b50565b600081519050610bd981610bb3565b92915050565b600060208284031215610bf557610bf4610aa7565b5b6000610c0384828501610bca565b91505092915050565b6000602082019050610c216000830184610b6f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c61578082015181840152602081019050610c46565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c8982610c27565b610c938185610c32565b9350610ca3818560208601610c43565b610cac81610c6d565b840191505092915050565b60006020820190508181036000830152610cd18184610c7e565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610d1382610a03565b9150610d1e83610a03565b925082610d2e57610d2d610cd9565b5b828204905092915050565b613c0280610d486000396000f3fe6080604052600436106102085760003560e01c806389291a8f11610118578063b2bdfa7b116100a0578063dd62ed3e1161006f578063dd62ed3e14610720578063df20fd491461075d578063e531b9ba14610786578063f2fde38b146107af578063f887ea40146107d85761020f565b8063b2bdfa7b1461069c578063b3270501146106c7578063c9567bf9146106de578063cc1776d3146106f55761020f565b8063a0ca3ee1116100e7578063a0ca3ee1146105b5578063a51c9ace146105de578063a8aa1b3114610609578063a9059cbb14610634578063ad5c4648146106715761020f565b806389291a8f1461051d578063893d20e8146105345780638da5cb5b1461055f57806395d89b411461058a5761020f565b8063571ac8b01161019b5780636ddd17131161016a5780636ddd17131461044857806370a0823114610473578063715018a6146104b057806375f0a874146104c757806386a35f25146104f25761020f565b8063571ac8b0146103905780635d098b38146103cd578063667f6526146103f6578063672434821461041f5761020f565b806323b872dd116101d757806323b872dd146102d2578063313ce5671461030f5780634f7041a51461033a57806356a060a2146103655761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a57806318160ddd146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610803565b60405161023691906129c6565b60405180910390f35b34801561024b57600080fd5b50610254610809565b6040516102619190612a71565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612b27565b610846565b60405161029e9190612b82565b60405180910390f35b3480156102b357600080fd5b506102bc610938565b6040516102c991906129c6565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190612b9d565b61095c565b6040516103069190612b82565b60405180910390f35b34801561031b57600080fd5b50610324610b5c565b6040516103319190612c0c565b60405180910390f35b34801561034657600080fd5b5061034f610b65565b60405161035c91906129c6565b60405180910390f35b34801561037157600080fd5b5061037a610b6b565b6040516103879190612b82565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c27565b610b7e565b6040516103c49190612b82565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612c27565b610bb1565b005b34801561040257600080fd5b5061041d60048036038101906104189190612c54565b610ceb565b005b34801561042b57600080fd5b5061044660048036038101906104419190612d4f565b610e71565b005b34801561045457600080fd5b5061045d610fbc565b60405161046a9190612b82565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612c27565b610fcf565b6040516104a791906129c6565b60405180910390f35b3480156104bc57600080fd5b506104c5611018565b005b3480156104d357600080fd5b506104dc61116b565b6040516104e99190612ddf565b60405180910390f35b3480156104fe57600080fd5b50610507611191565b60405161051491906129c6565b60405180910390f35b34801561052957600080fd5b50610532611197565b005b34801561054057600080fd5b50610549611282565b6040516105569190612ddf565b60405180910390f35b34801561056b57600080fd5b50610574611291565b6040516105819190612ddf565b60405180910390f35b34801561059657600080fd5b5061059f6112ba565b6040516105ac9190612a71565b60405180910390f35b3480156105c157600080fd5b506105dc60048036038101906105d79190612e26565b6112f7565b005b3480156105ea57600080fd5b506105f3611420565b60405161060091906129c6565b60405180910390f35b34801561061557600080fd5b5061061e611426565b60405161062b9190612ddf565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612b27565b61144c565b6040516106689190612b82565b60405180910390f35b34801561067d57600080fd5b50610686611461565b6040516106939190612ddf565b60405180910390f35b3480156106a857600080fd5b506106b1611487565b6040516106be9190612ddf565b60405180910390f35b3480156106d357600080fd5b506106dc6114ab565b005b3480156106ea57600080fd5b506106f3611597565b005b34801561070157600080fd5b5061070a6117a8565b60405161071791906129c6565b60405180910390f35b34801561072c57600080fd5b5061074760048036038101906107429190612e66565b6117ae565b60405161075491906129c6565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190612ea6565b611835565b005b34801561079257600080fd5b506107ad60048036038101906107a89190612e66565b611928565b005b3480156107bb57600080fd5b506107d660048036038101906107d19190612c27565b611b3d565b005b3480156107e457600080fd5b506107ed611cfe565b6040516107fa9190612f45565b60405180910390f35b600a5481565b60606040518060400160405280600681526020017f4368616d707a0000000000000000000000000000000000000000000000000000815250905090565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161092691906129c6565b60405180910390a36001905092915050565b60006008600a61094891906130c2565b633b9aca00610957919061310d565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b4857610ac7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d249092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b53848484611d88565b90509392505050565b60006008905090565b60065481565b600960149054906101000a900460ff1681565b6000610baa827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610846565b9050919050565b610bb9612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d9061319b565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008190507fc17db519c06a38e30a448e03e08b3edec28a0a29d239f693ab94a6206a5ca63d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051610cdf9291906131bb565b60405180910390a15050565b610cf3612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d779061319b565b60405180910390fd5b6127108211158015610d9457506127108111155b610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca90613230565b60405180910390fd5b6103e88211158015610de757506103e88111155b610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d9061329c565b60405180910390fd5b81600681905550806005819055507f4ac0d6b0d694ec6c120242feaca94cfb6fbfe646756cd7026301e3a5984f04508282604051610e659291906132bc565b60405180910390a15050565b610e79612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd9061319b565b60405180910390fd5b818190508484905014610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613357565b60405180910390fd5b60005b84849050811015610fb557610fa733868684818110610f7357610f72613377565b5b9050602002016020810190610f889190612c27565b858585818110610f9b57610f9a613377565b5b9050602002013561205d565b508080600101915050610f51565b5050505050565b600960159054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611020612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49061319b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103e881565b6000479050600081116111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d6906133f2565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611247573d6000803e3d6000fd5b507f23c3b8bdd302e8f73256f9a8add190515a3b87e797421b57d66b9c73e6069d168160405161127791906129c6565b60405180910390a150565b600061128c611291565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4348414d505a0000000000000000000000000000000000000000000000000000815250905090565b6112ff612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113839061319b565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f172c431f560dec0b2ec3483b63db2a0094f987bd860b2898631f468a1e7057798282604051611414929190613412565b60405180910390a15050565b61271081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611459338484611d88565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114b3612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061319b565b60405180910390fd5b600a5461154c30610fcf565b101561158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613487565b60405180910390fd5b611595612230565b565b61159f612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116239061319b565b60405180910390fd5b600960149054906101000a900460ff161561167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906134f3565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116c530610fcf565b6000806116d0611291565b426040518863ffffffff1660e01b81526004016116f29695949392919061354e565b60606040518083038185885af1158015611710573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061173591906135c4565b5050506001600960156101000a81548160ff0219169083151502179055506001600960146101000a81548160ff0219169083151502179055507f296696748e8bff2de57be99c0f20d979e0edddc7d22af01e85e72cc7da915283600160405161179e9190612b82565b60405180910390a1565b60055481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61183d612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061319b565b60405180910390fd5b81600960156101000a81548160ff02191690831515021790555080600a819055507faf4af88ff9c9b955318cca1fd2cc5fa00bc28cc3032659f5b0bc5eb311e186fe818360405161191c929190613617565b60405180910390a15050565b611930612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b49061319b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119f89190612ddf565b602060405180830381865afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190613640565b905060008111611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a75906136b9565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611ab99291906136d9565b6020604051808303816000875af1158015611ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afc9190613717565b507fb24060949ceedacdf7a2723b0c74d87e386c3b8aaf6cc2e22ec0d50ec741a667838284604051611b3093929190613744565b60405180910390a1505050565b611b45612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc99061319b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c38906137ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d639190612a71565b60405180910390fd5b5060008385611d7b919061380d565b9050809150509392505050565b6000600b60009054906101000a900460ff1615611db157611daa84848461205d565b905061204e565b611db9612502565b15611dc757611dc6612230565b5b611e50826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d249092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f365750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f4a57611f458584866125d9565b611f4c565b825b9050611fa081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127de90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161204091906129c6565b60405180910390a360019150505b9392505050565b600033905090565b60006120e8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d249092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217d82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127de90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221d91906129c6565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600a5490506000600267ffffffffffffffff81111561226f5761226e613841565b5b60405190808252806020026020018201604052801561229d5781602001602082028036833780820191505090505b50905030816000815181106122b5576122b4613377565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061232657612325613377565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016123c995949392919061392e565b600060405180830381600087803b1580156123e357600080fd5b505af11580156123f7573d6000803e3d6000fd5b505050506000612410824761283c90919063ffffffff16565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161245a906139b9565b60006040518083038185875af1925050503d8060008114612497576040519150601f19603f3d011682016040523d82523d6000602084013e61249c565b606091505b50509050806124e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d790613a1a565b60405180910390fd5b50505050506000600b60006101000a81548160ff021916908315150217905550565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561256f5750600b60009054906101000a900460ff16155b80156125875750600960159054906101000a900460ff165b80156125d45750600a54600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b60008060009050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361263f57600554905061269b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361269a5760065490505b5b60006126c46127106126b6848861288690919063ffffffff16565b61290090919063ffffffff16565b905061271881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127b891906129c6565b60405180910390a36127d3818661283c90919063ffffffff16565b925050509392505050565b60008082846127ed9190613a3a565b905083811015612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282990613aba565b60405180910390fd5b8091505092915050565b600061287e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d24565b905092915050565b600080830361289857600090506128fa565b600082846128a6919061310d565b90508284826128b59190613b09565b146128f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ec90613bac565b60405180910390fd5b809150505b92915050565b600061294283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061294a565b905092915050565b60008083118290612991576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129889190612a71565b60405180910390fd5b50600083856129a09190613b09565b9050809150509392505050565b6000819050919050565b6129c0816129ad565b82525050565b60006020820190506129db60008301846129b7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1b578082015181840152602081019050612a00565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a43826129e1565b612a4d81856129ec565b9350612a5d8185602086016129fd565b612a6681612a27565b840191505092915050565b60006020820190508181036000830152612a8b8184612a38565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac882612a9d565b9050919050565b612ad881612abd565b8114612ae357600080fd5b50565b600081359050612af581612acf565b92915050565b612b04816129ad565b8114612b0f57600080fd5b50565b600081359050612b2181612afb565b92915050565b60008060408385031215612b3e57612b3d612a93565b5b6000612b4c85828601612ae6565b9250506020612b5d85828601612b12565b9150509250929050565b60008115159050919050565b612b7c81612b67565b82525050565b6000602082019050612b976000830184612b73565b92915050565b600080600060608486031215612bb657612bb5612a93565b5b6000612bc486828701612ae6565b9350506020612bd586828701612ae6565b9250506040612be686828701612b12565b9150509250925092565b600060ff82169050919050565b612c0681612bf0565b82525050565b6000602082019050612c216000830184612bfd565b92915050565b600060208284031215612c3d57612c3c612a93565b5b6000612c4b84828501612ae6565b91505092915050565b60008060408385031215612c6b57612c6a612a93565b5b6000612c7985828601612b12565b9250506020612c8a85828601612b12565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612cb957612cb8612c94565b5b8235905067ffffffffffffffff811115612cd657612cd5612c99565b5b602083019150836020820283011115612cf257612cf1612c9e565b5b9250929050565b60008083601f840112612d0f57612d0e612c94565b5b8235905067ffffffffffffffff811115612d2c57612d2b612c99565b5b602083019150836020820283011115612d4857612d47612c9e565b5b9250929050565b60008060008060408587031215612d6957612d68612a93565b5b600085013567ffffffffffffffff811115612d8757612d86612a98565b5b612d9387828801612ca3565b9450945050602085013567ffffffffffffffff811115612db657612db5612a98565b5b612dc287828801612cf9565b925092505092959194509250565b612dd981612abd565b82525050565b6000602082019050612df46000830184612dd0565b92915050565b612e0381612b67565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b60008060408385031215612e3d57612e3c612a93565b5b6000612e4b85828601612ae6565b9250506020612e5c85828601612e11565b9150509250929050565b60008060408385031215612e7d57612e7c612a93565b5b6000612e8b85828601612ae6565b9250506020612e9c85828601612ae6565b9150509250929050565b60008060408385031215612ebd57612ebc612a93565b5b6000612ecb85828601612e11565b9250506020612edc85828601612b12565b9150509250929050565b6000819050919050565b6000612f0b612f06612f0184612a9d565b612ee6565b612a9d565b9050919050565b6000612f1d82612ef0565b9050919050565b6000612f2f82612f12565b9050919050565b612f3f81612f24565b82525050565b6000602082019050612f5a6000830184612f36565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612fe657808604811115612fc257612fc1612f60565b5b6001851615612fd15780820291505b8081029050612fdf85612f8f565b9450612fa6565b94509492505050565b600082612fff57600190506130bb565b8161300d57600090506130bb565b8160018114613023576002811461302d5761305c565b60019150506130bb565b60ff84111561303f5761303e612f60565b5b8360020a91508482111561305657613055612f60565b5b506130bb565b5060208310610133831016604e8410600b84101617156130915782820a90508381111561308c5761308b612f60565b5b6130bb565b61309e8484846001612f9c565b925090508184048111156130b5576130b4612f60565b5b81810290505b9392505050565b60006130cd826129ad565b91506130d883612bf0565b92506131057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612fef565b905092915050565b6000613118826129ad565b9150613123836129ad565b9250828202613131816129ad565b9150828204841483151761314857613147612f60565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131856020836129ec565b91506131908261314f565b602082019050919050565b600060208201905081810360008301526131b481613178565b9050919050565b60006040820190506131d06000830185612dd0565b6131dd6020830184612dd0565b9392505050565b7f54617820697320746f6f20686967680000000000000000000000000000000000600082015250565b600061321a600f836129ec565b9150613225826131e4565b602082019050919050565b600060208201905081810360008301526132498161320d565b9050919050565b7f45786365656473206d6178207461780000000000000000000000000000000000600082015250565b6000613286600f836129ec565b915061329182613250565b602082019050919050565b600060208201905081810360008301526132b581613279565b9050919050565b60006040820190506132d160008301856129b7565b6132de60208301846129b7565b9392505050565b7f726563697069656e747320616e642076616c756573206172726179206c656e6760008201527f7468206d757374206d6174636800000000000000000000000000000000000000602082015250565b6000613341602d836129ec565b915061334c826132e5565b604082019050919050565b6000602082019050818103600083015261337081613334565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b60006133dc6012836129ec565b91506133e7826133a6565b602082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b60006040820190506134276000830185612dd0565b6134346020830184612b73565b9392505050565b7f496e73756666696369656e7420746f6b656e7320696e20636f6e747261637400600082015250565b6000613471601f836129ec565b915061347c8261343b565b602082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134dd6017836129ec565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b6000819050919050565b600061353861353361352e84613513565b612ee6565b6129ad565b9050919050565b6135488161351d565b82525050565b600060c0820190506135636000830189612dd0565b61357060208301886129b7565b61357d604083018761353f565b61358a606083018661353f565b6135976080830185612dd0565b6135a460a08301846129b7565b979650505050505050565b6000815190506135be81612afb565b92915050565b6000806000606084860312156135dd576135dc612a93565b5b60006135eb868287016135af565b93505060206135fc868287016135af565b925050604061360d868287016135af565b9150509250925092565b600060408201905061362c60008301856129b7565b6136396020830184612b73565b9392505050565b60006020828403121561365657613655612a93565b5b6000613664848285016135af565b91505092915050565b7f4e6f20746f6b656e7320746f207472616e736665720000000000000000000000600082015250565b60006136a36015836129ec565b91506136ae8261366d565b602082019050919050565b600060208201905081810360008301526136d281613696565b9050919050565b60006040820190506136ee6000830185612dd0565b6136fb60208301846129b7565b9392505050565b60008151905061371181612dfa565b92915050565b60006020828403121561372d5761372c612a93565b5b600061373b84828501613702565b91505092915050565b60006060820190506137596000830186612dd0565b61376660208301856129b7565b6137736040830184612dd0565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137d76026836129ec565b91506137e28261377b565b604082019050919050565b60006020820190508181036000830152613806816137ca565b9050919050565b6000613818826129ad565b9150613823836129ad565b925082820390508181111561383b5761383a612f60565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138a581612abd565b82525050565b60006138b7838361389c565b60208301905092915050565b6000602082019050919050565b60006138db82613870565b6138e5818561387b565b93506138f08361388c565b8060005b8381101561392157815161390888826138ab565b9750613913836138c3565b9250506001810190506138f4565b5085935050505092915050565b600060a08201905061394360008301886129b7565b613950602083018761353f565b818103604083015261396281866138d0565b90506139716060830185612dd0565b61397e60808301846129b7565b9695505050505050565b600081905092915050565b50565b60006139a3600083613988565b91506139ae82613993565b600082019050919050565b60006139c482613996565b9150819050919050565b7f4d61726b6574696e6720666565207472616e73666572206661696c6564000000600082015250565b6000613a04601d836129ec565b9150613a0f826139ce565b602082019050919050565b60006020820190508181036000830152613a33816139f7565b9050919050565b6000613a45826129ad565b9150613a50836129ad565b9250828201905080821115613a6857613a67612f60565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aa4601b836129ec565b9150613aaf82613a6e565b602082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b14826129ad565b9150613b1f836129ad565b925082613b2f57613b2e613ada565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b966021836129ec565b9150613ba182613b3a565b604082019050919050565b60006020820190508181036000830152613bc581613b89565b905091905056fea2646970667358221220d00f8d91bd219b0f1c24db03eb6e2fe14d60399df61744fbcffc5eb08ad0376c64736f6c634300081a00330000000000000000000000005b7cd234f28e4373ee16b78f47e51a9b558901c2

Deployed Bytecode

0x6080604052600436106102085760003560e01c806389291a8f11610118578063b2bdfa7b116100a0578063dd62ed3e1161006f578063dd62ed3e14610720578063df20fd491461075d578063e531b9ba14610786578063f2fde38b146107af578063f887ea40146107d85761020f565b8063b2bdfa7b1461069c578063b3270501146106c7578063c9567bf9146106de578063cc1776d3146106f55761020f565b8063a0ca3ee1116100e7578063a0ca3ee1146105b5578063a51c9ace146105de578063a8aa1b3114610609578063a9059cbb14610634578063ad5c4648146106715761020f565b806389291a8f1461051d578063893d20e8146105345780638da5cb5b1461055f57806395d89b411461058a5761020f565b8063571ac8b01161019b5780636ddd17131161016a5780636ddd17131461044857806370a0823114610473578063715018a6146104b057806375f0a874146104c757806386a35f25146104f25761020f565b8063571ac8b0146103905780635d098b38146103cd578063667f6526146103f6578063672434821461041f5761020f565b806323b872dd116101d757806323b872dd146102d2578063313ce5671461030f5780634f7041a51461033a57806356a060a2146103655761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a57806318160ddd146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610803565b60405161023691906129c6565b60405180910390f35b34801561024b57600080fd5b50610254610809565b6040516102619190612a71565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612b27565b610846565b60405161029e9190612b82565b60405180910390f35b3480156102b357600080fd5b506102bc610938565b6040516102c991906129c6565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190612b9d565b61095c565b6040516103069190612b82565b60405180910390f35b34801561031b57600080fd5b50610324610b5c565b6040516103319190612c0c565b60405180910390f35b34801561034657600080fd5b5061034f610b65565b60405161035c91906129c6565b60405180910390f35b34801561037157600080fd5b5061037a610b6b565b6040516103879190612b82565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c27565b610b7e565b6040516103c49190612b82565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612c27565b610bb1565b005b34801561040257600080fd5b5061041d60048036038101906104189190612c54565b610ceb565b005b34801561042b57600080fd5b5061044660048036038101906104419190612d4f565b610e71565b005b34801561045457600080fd5b5061045d610fbc565b60405161046a9190612b82565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612c27565b610fcf565b6040516104a791906129c6565b60405180910390f35b3480156104bc57600080fd5b506104c5611018565b005b3480156104d357600080fd5b506104dc61116b565b6040516104e99190612ddf565b60405180910390f35b3480156104fe57600080fd5b50610507611191565b60405161051491906129c6565b60405180910390f35b34801561052957600080fd5b50610532611197565b005b34801561054057600080fd5b50610549611282565b6040516105569190612ddf565b60405180910390f35b34801561056b57600080fd5b50610574611291565b6040516105819190612ddf565b60405180910390f35b34801561059657600080fd5b5061059f6112ba565b6040516105ac9190612a71565b60405180910390f35b3480156105c157600080fd5b506105dc60048036038101906105d79190612e26565b6112f7565b005b3480156105ea57600080fd5b506105f3611420565b60405161060091906129c6565b60405180910390f35b34801561061557600080fd5b5061061e611426565b60405161062b9190612ddf565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612b27565b61144c565b6040516106689190612b82565b60405180910390f35b34801561067d57600080fd5b50610686611461565b6040516106939190612ddf565b60405180910390f35b3480156106a857600080fd5b506106b1611487565b6040516106be9190612ddf565b60405180910390f35b3480156106d357600080fd5b506106dc6114ab565b005b3480156106ea57600080fd5b506106f3611597565b005b34801561070157600080fd5b5061070a6117a8565b60405161071791906129c6565b60405180910390f35b34801561072c57600080fd5b5061074760048036038101906107429190612e66565b6117ae565b60405161075491906129c6565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190612ea6565b611835565b005b34801561079257600080fd5b506107ad60048036038101906107a89190612e66565b611928565b005b3480156107bb57600080fd5b506107d660048036038101906107d19190612c27565b611b3d565b005b3480156107e457600080fd5b506107ed611cfe565b6040516107fa9190612f45565b60405180910390f35b600a5481565b60606040518060400160405280600681526020017f4368616d707a0000000000000000000000000000000000000000000000000000815250905090565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161092691906129c6565b60405180910390a36001905092915050565b60006008600a61094891906130c2565b633b9aca00610957919061310d565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b4857610ac7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d249092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b53848484611d88565b90509392505050565b60006008905090565b60065481565b600960149054906101000a900460ff1681565b6000610baa827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610846565b9050919050565b610bb9612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d9061319b565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008190507fc17db519c06a38e30a448e03e08b3edec28a0a29d239f693ab94a6206a5ca63d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051610cdf9291906131bb565b60405180910390a15050565b610cf3612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d779061319b565b60405180910390fd5b6127108211158015610d9457506127108111155b610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca90613230565b60405180910390fd5b6103e88211158015610de757506103e88111155b610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d9061329c565b60405180910390fd5b81600681905550806005819055507f4ac0d6b0d694ec6c120242feaca94cfb6fbfe646756cd7026301e3a5984f04508282604051610e659291906132bc565b60405180910390a15050565b610e79612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd9061319b565b60405180910390fd5b818190508484905014610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613357565b60405180910390fd5b60005b84849050811015610fb557610fa733868684818110610f7357610f72613377565b5b9050602002016020810190610f889190612c27565b858585818110610f9b57610f9a613377565b5b9050602002013561205d565b508080600101915050610f51565b5050505050565b600960159054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611020612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49061319b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103e881565b6000479050600081116111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d6906133f2565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611247573d6000803e3d6000fd5b507f23c3b8bdd302e8f73256f9a8add190515a3b87e797421b57d66b9c73e6069d168160405161127791906129c6565b60405180910390a150565b600061128c611291565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4348414d505a0000000000000000000000000000000000000000000000000000815250905090565b6112ff612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113839061319b565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f172c431f560dec0b2ec3483b63db2a0094f987bd860b2898631f468a1e7057798282604051611414929190613412565b60405180910390a15050565b61271081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611459338484611d88565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114b3612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115379061319b565b60405180910390fd5b600a5461154c30610fcf565b101561158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613487565b60405180910390fd5b611595612230565b565b61159f612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116239061319b565b60405180910390fd5b600960149054906101000a900460ff161561167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906134f3565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116c530610fcf565b6000806116d0611291565b426040518863ffffffff1660e01b81526004016116f29695949392919061354e565b60606040518083038185885af1158015611710573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061173591906135c4565b5050506001600960156101000a81548160ff0219169083151502179055506001600960146101000a81548160ff0219169083151502179055507f296696748e8bff2de57be99c0f20d979e0edddc7d22af01e85e72cc7da915283600160405161179e9190612b82565b60405180910390a1565b60055481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61183d612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061319b565b60405180910390fd5b81600960156101000a81548160ff02191690831515021790555080600a819055507faf4af88ff9c9b955318cca1fd2cc5fa00bc28cc3032659f5b0bc5eb311e186fe818360405161191c929190613617565b60405180910390a15050565b611930612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b49061319b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119f89190612ddf565b602060405180830381865afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190613640565b905060008111611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a75906136b9565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611ab99291906136d9565b6020604051808303816000875af1158015611ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afc9190613717565b507fb24060949ceedacdf7a2723b0c74d87e386c3b8aaf6cc2e22ec0d50ec741a667838284604051611b3093929190613744565b60405180910390a1505050565b611b45612055565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc99061319b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c38906137ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d639190612a71565b60405180910390fd5b5060008385611d7b919061380d565b9050809150509392505050565b6000600b60009054906101000a900460ff1615611db157611daa84848461205d565b905061204e565b611db9612502565b15611dc757611dc6612230565b5b611e50826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d249092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f365750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f4a57611f458584866125d9565b611f4c565b825b9050611fa081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127de90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161204091906129c6565b60405180910390a360019150505b9392505050565b600033905090565b60006120e8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d249092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217d82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127de90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221d91906129c6565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600a5490506000600267ffffffffffffffff81111561226f5761226e613841565b5b60405190808252806020026020018201604052801561229d5781602001602082028036833780820191505090505b50905030816000815181106122b5576122b4613377565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061232657612325613377565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016123c995949392919061392e565b600060405180830381600087803b1580156123e357600080fd5b505af11580156123f7573d6000803e3d6000fd5b505050506000612410824761283c90919063ffffffff16565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161245a906139b9565b60006040518083038185875af1925050503d8060008114612497576040519150601f19603f3d011682016040523d82523d6000602084013e61249c565b606091505b50509050806124e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d790613a1a565b60405180910390fd5b50505050506000600b60006101000a81548160ff021916908315150217905550565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561256f5750600b60009054906101000a900460ff16155b80156125875750600960159054906101000a900460ff165b80156125d45750600a54600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b60008060009050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361263f57600554905061269b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361269a5760065490505b5b60006126c46127106126b6848861288690919063ffffffff16565b61290090919063ffffffff16565b905061271881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127b891906129c6565b60405180910390a36127d3818661283c90919063ffffffff16565b925050509392505050565b60008082846127ed9190613a3a565b905083811015612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282990613aba565b60405180910390fd5b8091505092915050565b600061287e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d24565b905092915050565b600080830361289857600090506128fa565b600082846128a6919061310d565b90508284826128b59190613b09565b146128f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ec90613bac565b60405180910390fd5b809150505b92915050565b600061294283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061294a565b905092915050565b60008083118290612991576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129889190612a71565b60405180910390fd5b50600083856129a09190613b09565b9050809150509392505050565b6000819050919050565b6129c0816129ad565b82525050565b60006020820190506129db60008301846129b7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1b578082015181840152602081019050612a00565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a43826129e1565b612a4d81856129ec565b9350612a5d8185602086016129fd565b612a6681612a27565b840191505092915050565b60006020820190508181036000830152612a8b8184612a38565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac882612a9d565b9050919050565b612ad881612abd565b8114612ae357600080fd5b50565b600081359050612af581612acf565b92915050565b612b04816129ad565b8114612b0f57600080fd5b50565b600081359050612b2181612afb565b92915050565b60008060408385031215612b3e57612b3d612a93565b5b6000612b4c85828601612ae6565b9250506020612b5d85828601612b12565b9150509250929050565b60008115159050919050565b612b7c81612b67565b82525050565b6000602082019050612b976000830184612b73565b92915050565b600080600060608486031215612bb657612bb5612a93565b5b6000612bc486828701612ae6565b9350506020612bd586828701612ae6565b9250506040612be686828701612b12565b9150509250925092565b600060ff82169050919050565b612c0681612bf0565b82525050565b6000602082019050612c216000830184612bfd565b92915050565b600060208284031215612c3d57612c3c612a93565b5b6000612c4b84828501612ae6565b91505092915050565b60008060408385031215612c6b57612c6a612a93565b5b6000612c7985828601612b12565b9250506020612c8a85828601612b12565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612cb957612cb8612c94565b5b8235905067ffffffffffffffff811115612cd657612cd5612c99565b5b602083019150836020820283011115612cf257612cf1612c9e565b5b9250929050565b60008083601f840112612d0f57612d0e612c94565b5b8235905067ffffffffffffffff811115612d2c57612d2b612c99565b5b602083019150836020820283011115612d4857612d47612c9e565b5b9250929050565b60008060008060408587031215612d6957612d68612a93565b5b600085013567ffffffffffffffff811115612d8757612d86612a98565b5b612d9387828801612ca3565b9450945050602085013567ffffffffffffffff811115612db657612db5612a98565b5b612dc287828801612cf9565b925092505092959194509250565b612dd981612abd565b82525050565b6000602082019050612df46000830184612dd0565b92915050565b612e0381612b67565b8114612e0e57600080fd5b50565b600081359050612e2081612dfa565b92915050565b60008060408385031215612e3d57612e3c612a93565b5b6000612e4b85828601612ae6565b9250506020612e5c85828601612e11565b9150509250929050565b60008060408385031215612e7d57612e7c612a93565b5b6000612e8b85828601612ae6565b9250506020612e9c85828601612ae6565b9150509250929050565b60008060408385031215612ebd57612ebc612a93565b5b6000612ecb85828601612e11565b9250506020612edc85828601612b12565b9150509250929050565b6000819050919050565b6000612f0b612f06612f0184612a9d565b612ee6565b612a9d565b9050919050565b6000612f1d82612ef0565b9050919050565b6000612f2f82612f12565b9050919050565b612f3f81612f24565b82525050565b6000602082019050612f5a6000830184612f36565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612fe657808604811115612fc257612fc1612f60565b5b6001851615612fd15780820291505b8081029050612fdf85612f8f565b9450612fa6565b94509492505050565b600082612fff57600190506130bb565b8161300d57600090506130bb565b8160018114613023576002811461302d5761305c565b60019150506130bb565b60ff84111561303f5761303e612f60565b5b8360020a91508482111561305657613055612f60565b5b506130bb565b5060208310610133831016604e8410600b84101617156130915782820a90508381111561308c5761308b612f60565b5b6130bb565b61309e8484846001612f9c565b925090508184048111156130b5576130b4612f60565b5b81810290505b9392505050565b60006130cd826129ad565b91506130d883612bf0565b92506131057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612fef565b905092915050565b6000613118826129ad565b9150613123836129ad565b9250828202613131816129ad565b9150828204841483151761314857613147612f60565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131856020836129ec565b91506131908261314f565b602082019050919050565b600060208201905081810360008301526131b481613178565b9050919050565b60006040820190506131d06000830185612dd0565b6131dd6020830184612dd0565b9392505050565b7f54617820697320746f6f20686967680000000000000000000000000000000000600082015250565b600061321a600f836129ec565b9150613225826131e4565b602082019050919050565b600060208201905081810360008301526132498161320d565b9050919050565b7f45786365656473206d6178207461780000000000000000000000000000000000600082015250565b6000613286600f836129ec565b915061329182613250565b602082019050919050565b600060208201905081810360008301526132b581613279565b9050919050565b60006040820190506132d160008301856129b7565b6132de60208301846129b7565b9392505050565b7f726563697069656e747320616e642076616c756573206172726179206c656e6760008201527f7468206d757374206d6174636800000000000000000000000000000000000000602082015250565b6000613341602d836129ec565b915061334c826132e5565b604082019050919050565b6000602082019050818103600083015261337081613334565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b60006133dc6012836129ec565b91506133e7826133a6565b602082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b60006040820190506134276000830185612dd0565b6134346020830184612b73565b9392505050565b7f496e73756666696369656e7420746f6b656e7320696e20636f6e747261637400600082015250565b6000613471601f836129ec565b915061347c8261343b565b602082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134dd6017836129ec565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b6000819050919050565b600061353861353361352e84613513565b612ee6565b6129ad565b9050919050565b6135488161351d565b82525050565b600060c0820190506135636000830189612dd0565b61357060208301886129b7565b61357d604083018761353f565b61358a606083018661353f565b6135976080830185612dd0565b6135a460a08301846129b7565b979650505050505050565b6000815190506135be81612afb565b92915050565b6000806000606084860312156135dd576135dc612a93565b5b60006135eb868287016135af565b93505060206135fc868287016135af565b925050604061360d868287016135af565b9150509250925092565b600060408201905061362c60008301856129b7565b6136396020830184612b73565b9392505050565b60006020828403121561365657613655612a93565b5b6000613664848285016135af565b91505092915050565b7f4e6f20746f6b656e7320746f207472616e736665720000000000000000000000600082015250565b60006136a36015836129ec565b91506136ae8261366d565b602082019050919050565b600060208201905081810360008301526136d281613696565b9050919050565b60006040820190506136ee6000830185612dd0565b6136fb60208301846129b7565b9392505050565b60008151905061371181612dfa565b92915050565b60006020828403121561372d5761372c612a93565b5b600061373b84828501613702565b91505092915050565b60006060820190506137596000830186612dd0565b61376660208301856129b7565b6137736040830184612dd0565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137d76026836129ec565b91506137e28261377b565b604082019050919050565b60006020820190508181036000830152613806816137ca565b9050919050565b6000613818826129ad565b9150613823836129ad565b925082820390508181111561383b5761383a612f60565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138a581612abd565b82525050565b60006138b7838361389c565b60208301905092915050565b6000602082019050919050565b60006138db82613870565b6138e5818561387b565b93506138f08361388c565b8060005b8381101561392157815161390888826138ab565b9750613913836138c3565b9250506001810190506138f4565b5085935050505092915050565b600060a08201905061394360008301886129b7565b613950602083018761353f565b818103604083015261396281866138d0565b90506139716060830185612dd0565b61397e60808301846129b7565b9695505050505050565b600081905092915050565b50565b60006139a3600083613988565b91506139ae82613993565b600082019050919050565b60006139c482613996565b9150819050919050565b7f4d61726b6574696e6720666565207472616e73666572206661696c6564000000600082015250565b6000613a04601d836129ec565b9150613a0f826139ce565b602082019050919050565b60006020820190508181036000830152613a33816139f7565b9050919050565b6000613a45826129ad565b9150613a50836129ad565b9250828201905080821115613a6857613a67612f60565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aa4601b836129ec565b9150613aaf82613a6e565b602082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b14826129ad565b9150613b1f836129ad565b925082613b2f57613b2e613ada565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b966021836129ec565b9150613ba182613b3a565b604082019050919050565b60006020820190508181036000830152613bc581613b89565b905091905056fea2646970667358221220d00f8d91bd219b0f1c24db03eb6e2fe14d60399df61744fbcffc5eb08ad0376c64736f6c634300081a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005b7cd234f28e4373ee16b78f47e51a9b558901c2

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x5b7cd234f28e4373Ee16b78F47E51a9B558901c2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005b7cd234f28e4373ee16b78f47e51a9b558901c2


Deployed Bytecode Sourcemap

5321:9533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6714:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8328:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8752:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8058:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9270:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8152:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6301:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6633:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8976:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13831:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12123:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14510:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6674:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8498:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2235:148;;;;;;;;;;;;;:::i;:::-;;6531:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6442:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11518:237;;;;;;;;;;;;;:::i;:::-;;8414:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2021:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8238:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14316:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6388:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6601:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9106:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5397:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1737:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12930:170;;;;;;;;;;;;;:::i;:::-;;12497:425;;;;;;;;;;;;;:::i;:::-;;6214:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8609:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14092:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11763:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2391:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6570:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6714:53;;;;:::o;8328:80::-;8376:13;8400:5;;;;;;;;;;;;;;;;;8393:12;;8328:80;:::o;8752:216::-;8827:4;8879:6;8844:11;:23;8856:10;8844:23;;;;;;;;;;;;;;;:32;8868:7;8844:32;;;;;;;;;;;;;;;:41;;;;8922:7;8901:37;;8910:10;8901:37;;;8931:6;8901:37;;;;;;:::i;:::-;;;;;;;;8956:4;8949:11;;8752:216;;;;:::o;8058:88::-;8113:7;5533:1;5592:2;:15;;;;:::i;:::-;5575:13;:33;;;;:::i;:::-;8124:19;;8058:88;:::o;9270:370::-;9370:4;9425:17;9390:11;:19;9402:6;9390:19;;;;;;;;;;;;;;;:31;9410:10;9390:31;;;;;;;;;;;;;;;;:52;9387:186;;9492:69;9528:6;9492:69;;;;;;;;;;;;;;;;;:11;:19;9504:6;9492:19;;;;;;;;;;;;;;;:31;9512:10;9492:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9458:11;:19;9470:6;9458:19;;;;;;;;;;;;;;;:31;9478:10;9458:31;;;;;;;;;;;;;;;:103;;;;9387:186;9592:40;9606:6;9614:9;9625:6;9592:13;:40::i;:::-;9585:47;;9270:370;;;;;:::o;8152:80::-;8204:5;5533:1;8213:16;;8152:80;:::o;6301:27::-;;;;:::o;6633:33::-;;;;;;;;;;;;;:::o;8976:122::-;9031:4;9055:35;9063:7;9072:17;9055:7;:35::i;:::-;9048:42;;8976:122;;;:::o;13831:253::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13931:16:::1;13913:15;;:34;;;;;;;;;;;;;;;;;;13956:26;13985:16;13956:45;;14017:59;14040:15;;;;;;;;;;;14057:18;14017:59;;;;;;;:::i;:::-;;;;;;;;13904:180;13831:253:::0;:::o;12123:359::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6430:5:::1;12212:8;:27;;:59;;;;;6430:5;12243:9;:28;;12212:59;12204:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;6476:4;12308:8;:19;;:43;;;;;6476:4;12331:9;:20;;12308:43;12300:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12391:8;12382:6;:17;;;;12418:9;12408:7;:19;;;;12443:31;12454:8;12464:9;12443:31;;;;;;;:::i;:::-;;;;;;;;12123:359:::0;;:::o;14510:341::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14644:6:::1;;:13;;14623:10;;:17;;:34;14615:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14725:6;14720:124;14741:10;;:17;;14737:1;:21;14720:124;;;14780:52;14795:10;14807;;14818:1;14807:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14822:6;;14829:1;14822:9;;;;;;;:::i;:::-;;;;;;;;14780:14;:52::i;:::-;;14760:3;;;;;;;14720:124;;;;14510:341:::0;;;;:::o;6674:31::-;;;;;;;;;;;;;:::o;8498:105::-;8564:7;8582:9;:18;8592:7;8582:18;;;;;;;;;;;;;;;;8575:25;;8498:105;;;:::o;2235:148::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2342:1:::1;2305:40;;2326:6;::::0;::::1;;;;;;;;2305:40;;;;;;;;;;;;2373:1;2356:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2235:148::o:0;6531:30::-;;;;;;;;;;;;;:::o;6442:38::-;6476:4;6442:38;:::o;11518:237::-;11564:14;11581:21;11564:38;;11630:1;11621:6;:10;11613:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11675:15;;;;;;;;;;;11667:33;;:41;11701:6;11667:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11724:23;11740:6;11724:23;;;;;;:::i;:::-;;;;;;;;11552:203;11518:237::o;8414:78::-;8466:7;8483;:5;:7::i;:::-;8476:14;;8414:78;:::o;2021:79::-;2059:7;2086:6;;;;;;;;;;;2079:13;;2021:79;:::o;8238:84::-;8288:13;8312:7;;;;;;;;;;;;;;;;;8305:14;;8238:84;:::o;14316:186::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14430:12:::1;14405:13;:22;14419:7;14405:22;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;14458:36;14472:7;14481:12;14458:36;;;;;;;:::i;:::-;;;;;;;;14316:186:::0;;:::o;6388:47::-;6430:5;6388:47;:::o;6601:19::-;;;;;;;;;;;;;:::o;9106:156::-;9186:4;9210:44;9224:10;9236:9;9247:6;9210:13;:44::i;:::-;9203:51;;9106:156;;;;:::o;5397:19::-;;;;;;;;;;;;;:::o;1737:21::-;;;;;;;;;;;;:::o;12930:170::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13022:13:::1;;12994:24;13012:4;12994:9;:24::i;:::-;:41;;12986:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13082:10;:8;:10::i;:::-;12930:170::o:0;12497:425::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12561:13:::1;;;;;;;;;;;12560:14;12552:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12615:6;;;;;;;;;;;:22;;;12645:21;12688:4;12706:24;12724:4;12706:9;:24::i;:::-;12743:1;12757::::0;12771:7:::1;:5;:7::i;:::-;12791:15;12615:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12844:4;12830:11;;:18;;;;;;;;;;;;;;;;;;12875:4;12859:13;;:20;;;;;;;;;;;;;;;;;;12897:17;12909:4;12897:17;;;;;;:::i;:::-;;;;;;;;12497:425::o:0;6214:28::-;;;;:::o;8609:133::-;8693:7;8711:11;:19;8723:6;8711:19;;;;;;;;;;;;;;;:28;8731:7;8711:28;;;;;;;;;;;;;;;;8704:35;;8609:133;;;;:::o;14092:216::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14200:8:::1;14186:11;;:22;;;;;;;;;;;;;;;;;;14235:10;14219:13;:26;;;;14263:37;14279:10;14291:8;14263:37;;;;;;;:::i;:::-;;;;;;;;14092:216:::0;;:::o;11763:352::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11861:14:::1;11884:12;11878:29;;;11916:4;11878:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11861:61;;11950:1;11941:6;:10;11933:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11996:12;11990:28;;;12019:11;12032:6;11990:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12055:52;12073:12;12087:6;12095:11;12055:52;;;;;;;;:::i;:::-;;;;;;;;11850:265;11763:352:::0;;:::o;2391:244::-;2158:12;:10;:12::i;:::-;2148:22;;:6;;;;;;;;;;:22;;;2140:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2500:1:::1;2480:22;;:8;:22;;::::0;2472:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2590:8;2561:38;;2582:6;::::0;::::1;;;;;;;;2561:38;;;;;;;;;;;;2619:8;2610:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2391:244:::0;:::o;6570:24::-;;;;;;;;;;;;;:::o;4533:192::-;4619:7;4652:1;4647;:6;;4655:12;4639:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4679:9;4695:1;4691;:5;;;;:::i;:::-;4679:17;;4716:1;4709:8;;;4533:192;;;;;:::o;9648:666::-;9740:4;9762:6;;;;;;;;;;;9757:87;;;9791:41;9806:6;9814:9;9825:6;9791:14;:41::i;:::-;9784:48;;;;9757:87;9860:16;:14;:16::i;:::-;9856:59;;;9892:10;:8;:10::i;:::-;9856:59;9947:53;9969:6;9947:53;;;;;;;;;;;;;;;;;:9;:17;9957:6;9947:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9927:9;:17;9937:6;9927:17;;;;;;;;;;;;;;;:73;;;;10013:22;10051:13;:21;10065:6;10051:21;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;10076:13;:24;10090:9;10076:24;;;;;;;;;;;;;;;;;;;;;;;;;10051:49;10050:97;;10113:34;10121:6;10129;10137:9;10113:7;:34::i;:::-;10050:97;;;10104:6;10050:97;10013:134;;10183:40;10208:14;10183:9;:20;10193:9;10183:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10160:9;:20;10170:9;10160:20;;;;;;;;;;;;;;;:63;;;;10258:9;10241:43;;10250:6;10241:43;;;10269:14;10241:43;;;;;;:::i;:::-;;;;;;;;10302:4;10295:11;;;9648:666;;;;;;:::o;1458:115::-;1511:15;1554:10;1539:26;;1458:115;:::o;10325:330::-;10418:4;10455:53;10477:6;10455:53;;;;;;;;;;;;;;;;;:9;:17;10465:6;10455:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10435:9;:17;10445:6;10435:17;;;;;;;;;;;;;;;:73;;;;10542:32;10567:6;10542:9;:20;10552:9;10542:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10519:9;:20;10529:9;10519:20;;;;;;;;;;;;;;;:55;;;;10607:9;10590:35;;10599:6;10590:35;;;10618:6;10590:35;;;;;;:::i;:::-;;;;;;;;10643:4;10636:11;;10325:330;;;;;:::o;13120:703::-;6825:4;6816:6;;:13;;;;;;;;;;;;;;;;;;13169:20:::1;13192:13;;13169:36;;13218:21;13256:1;13242:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13218:40;;13287:4;13269;13274:1;13269:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13313:4;;;;;;;;;;;13303;13308:1;13303:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;13330:21;13354;13330:45;;13388:6;;;;;;;;;;;:57;;;13460:12;13487:1;13503:4;13530;13550:15;13388:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13589:26;13618:40;13644:13;13618:21;:25;;:40;;;;:::i;:::-;13589:69;;13672:15;13700;;;;;;;;;;;13692:29;;13729:18;13692:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13671:81;;;13771:10;13763:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13158:665;;;;;6843:5:::0;6834:6;;:14;;;;;;;;;;;;;;;;;;13120:703::o;11305:203::-;11354:4;11392;;;;;;;;;;;11378:18;;:10;:18;;;;:40;;;;;11412:6;;;;;;;;;;;11411:7;11378:40;:66;;;;;11433:11;;;;;;;;;;;11378:66;:122;;;;;11487:13;;11459:9;:24;11477:4;11459:24;;;;;;;;;;;;;;;;:41;;11378:122;11371:129;;11305:203;:::o;10787:510::-;10873:7;10893:10;10906:1;10893:14;;10936:4;;;;;;;;;;;10923:17;;:9;:17;;;10920:124;;10962:7;;10957:12;;10920:124;;;11000:4;;;;;;;;;;;10990:14;;:6;:14;;;10987:57;;11026:6;;11021:11;;10987:57;10920:124;11056:17;11076:35;6430:5;11076:14;11087:2;11076:6;:10;;:14;;;;:::i;:::-;:18;;:35;;;;:::i;:::-;11056:55;;11149:39;11178:9;11149;:24;11167:4;11149:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11122:9;:24;11140:4;11122:24;;;;;;;;;;;;;;;:66;;;;11231:4;11206:42;;11215:6;11206:42;;;11238:9;11206:42;;;;;;:::i;:::-;;;;;;;;11268:21;11279:9;11268:6;:10;;:21;;;;:::i;:::-;11261:28;;;;10787:510;;;;;:::o;4204:181::-;4262:7;4282:9;4298:1;4294;:5;;;;:::i;:::-;4282:17;;4323:1;4318;:6;;4310:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4376:1;4369:8;;;4204:181;;;;:::o;4391:136::-;4449:7;4476:43;4480:1;4483;4476:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4469:50;;4391:136;;;;:::o;4731:250::-;4789:7;4818:1;4813;:6;4809:47;;4843:1;4836:8;;;;4809:47;4868:9;4884:1;4880;:5;;;;:::i;:::-;4868:17;;4913:1;4908;4904;:5;;;;:::i;:::-;:10;4896:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4972:1;4965:8;;;4731:250;;;;;:::o;4987:132::-;5045:7;5072:39;5076:1;5079;5072:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5065:46;;4987:132;;;;:::o;5125:189::-;5211:7;5243:1;5239;:5;5246:12;5231:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5270:9;5286:1;5282;:5;;;;:::i;:::-;5270:17;;5305:1;5298:8;;;5125:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:248::-;804:1;814:113;828:6;825:1;822:13;814:113;;;913:1;908:3;904:11;898:18;894:1;889:3;885:11;878:39;850:2;847:1;843:10;838:15;;814:113;;;961:1;952:6;947:3;943:16;936:27;784:186;722:248;;;:::o;976:102::-;1017:6;1068:2;1064:7;1059:2;1052:5;1048:14;1044:28;1034:38;;976:102;;;:::o;1084:377::-;1172:3;1200:39;1233:5;1200:39;:::i;:::-;1255:71;1319:6;1314:3;1255:71;:::i;:::-;1248:78;;1335:65;1393:6;1388:3;1381:4;1374:5;1370:16;1335:65;:::i;:::-;1425:29;1447:6;1425:29;:::i;:::-;1420:3;1416:39;1409:46;;1176:285;1084:377;;;;:::o;1467:313::-;1580:4;1618:2;1607:9;1603:18;1595:26;;1667:9;1661:4;1657:20;1653:1;1642:9;1638:17;1631:47;1695:78;1768:4;1759:6;1695:78;:::i;:::-;1687:86;;1467:313;;;;:::o;1867:117::-;1976:1;1973;1966:12;1990:117;2099:1;2096;2089:12;2113:126;2150:7;2190:42;2183:5;2179:54;2168:65;;2113:126;;;:::o;2245:96::-;2282:7;2311:24;2329:5;2311:24;:::i;:::-;2300:35;;2245:96;;;:::o;2347:122::-;2420:24;2438:5;2420:24;:::i;:::-;2413:5;2410:35;2400:63;;2459:1;2456;2449:12;2400:63;2347:122;:::o;2475:139::-;2521:5;2559:6;2546:20;2537:29;;2575:33;2602:5;2575:33;:::i;:::-;2475:139;;;;:::o;2620:122::-;2693:24;2711:5;2693:24;:::i;:::-;2686:5;2683:35;2673:63;;2732:1;2729;2722:12;2673:63;2620:122;:::o;2748:139::-;2794:5;2832:6;2819:20;2810:29;;2848:33;2875:5;2848:33;:::i;:::-;2748:139;;;;:::o;2893:474::-;2961:6;2969;3018:2;3006:9;2997:7;2993:23;2989:32;2986:119;;;3024:79;;:::i;:::-;2986:119;3144:1;3169:53;3214:7;3205:6;3194:9;3190:22;3169:53;:::i;:::-;3159:63;;3115:117;3271:2;3297:53;3342:7;3333:6;3322:9;3318:22;3297:53;:::i;:::-;3287:63;;3242:118;2893:474;;;;;:::o;3373:90::-;3407:7;3450:5;3443:13;3436:21;3425:32;;3373:90;;;:::o;3469:109::-;3550:21;3565:5;3550:21;:::i;:::-;3545:3;3538:34;3469:109;;:::o;3584:210::-;3671:4;3709:2;3698:9;3694:18;3686:26;;3722:65;3784:1;3773:9;3769:17;3760:6;3722:65;:::i;:::-;3584:210;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;;:::i;:::-;4931:119;5089:1;5114:53;5159:7;5150:6;5139:9;5135:22;5114:53;:::i;:::-;5104:63;;5060:117;4855:329;;;;:::o;5190:474::-;5258:6;5266;5315:2;5303:9;5294:7;5290:23;5286:32;5283:119;;;5321:79;;:::i;:::-;5283:119;5441:1;5466:53;5511:7;5502:6;5491:9;5487:22;5466:53;:::i;:::-;5456:63;;5412:117;5568:2;5594:53;5639:7;5630:6;5619:9;5615:22;5594:53;:::i;:::-;5584:63;;5539:118;5190:474;;;;;:::o;5670:117::-;5779:1;5776;5769:12;5793:117;5902:1;5899;5892:12;5916:117;6025:1;6022;6015:12;6056:568;6129:8;6139:6;6189:3;6182:4;6174:6;6170:17;6166:27;6156:122;;6197:79;;:::i;:::-;6156:122;6310:6;6297:20;6287:30;;6340:18;6332:6;6329:30;6326:117;;;6362:79;;:::i;:::-;6326:117;6476:4;6468:6;6464:17;6452:29;;6530:3;6522:4;6514:6;6510:17;6500:8;6496:32;6493:41;6490:128;;;6537:79;;:::i;:::-;6490:128;6056:568;;;;;:::o;6647:::-;6720:8;6730:6;6780:3;6773:4;6765:6;6761:17;6757:27;6747:122;;6788:79;;:::i;:::-;6747:122;6901:6;6888:20;6878:30;;6931:18;6923:6;6920:30;6917:117;;;6953:79;;:::i;:::-;6917:117;7067:4;7059:6;7055:17;7043:29;;7121:3;7113:4;7105:6;7101:17;7091:8;7087:32;7084:41;7081:128;;;7128:79;;:::i;:::-;7081:128;6647:568;;;;;:::o;7221:934::-;7343:6;7351;7359;7367;7416:2;7404:9;7395:7;7391:23;7387:32;7384:119;;;7422:79;;:::i;:::-;7384:119;7570:1;7559:9;7555:17;7542:31;7600:18;7592:6;7589:30;7586:117;;;7622:79;;:::i;:::-;7586:117;7735:80;7807:7;7798:6;7787:9;7783:22;7735:80;:::i;:::-;7717:98;;;;7513:312;7892:2;7881:9;7877:18;7864:32;7923:18;7915:6;7912:30;7909:117;;;7945:79;;:::i;:::-;7909:117;8058:80;8130:7;8121:6;8110:9;8106:22;8058:80;:::i;:::-;8040:98;;;;7835:313;7221:934;;;;;;;:::o;8161:118::-;8248:24;8266:5;8248:24;:::i;:::-;8243:3;8236:37;8161:118;;:::o;8285:222::-;8378:4;8416:2;8405:9;8401:18;8393:26;;8429:71;8497:1;8486:9;8482:17;8473:6;8429:71;:::i;:::-;8285:222;;;;:::o;8513:116::-;8583:21;8598:5;8583:21;:::i;:::-;8576:5;8573:32;8563:60;;8619:1;8616;8609:12;8563:60;8513:116;:::o;8635:133::-;8678:5;8716:6;8703:20;8694:29;;8732:30;8756:5;8732:30;:::i;:::-;8635:133;;;;:::o;8774:468::-;8839:6;8847;8896:2;8884:9;8875:7;8871:23;8867:32;8864:119;;;8902:79;;:::i;:::-;8864:119;9022:1;9047:53;9092:7;9083:6;9072:9;9068:22;9047:53;:::i;:::-;9037:63;;8993:117;9149:2;9175:50;9217:7;9208:6;9197:9;9193:22;9175:50;:::i;:::-;9165:60;;9120:115;8774:468;;;;;:::o;9248:474::-;9316:6;9324;9373:2;9361:9;9352:7;9348:23;9344:32;9341:119;;;9379:79;;:::i;:::-;9341:119;9499:1;9524:53;9569:7;9560:6;9549:9;9545:22;9524:53;:::i;:::-;9514:63;;9470:117;9626:2;9652:53;9697:7;9688:6;9677:9;9673:22;9652:53;:::i;:::-;9642:63;;9597:118;9248:474;;;;;:::o;9728:468::-;9793:6;9801;9850:2;9838:9;9829:7;9825:23;9821:32;9818:119;;;9856:79;;:::i;:::-;9818:119;9976:1;10001:50;10043:7;10034:6;10023:9;10019:22;10001:50;:::i;:::-;9991:60;;9947:114;10100:2;10126:53;10171:7;10162:6;10151:9;10147:22;10126:53;:::i;:::-;10116:63;;10071:118;9728:468;;;;;:::o;10202:60::-;10230:3;10251:5;10244:12;;10202:60;;;:::o;10268:142::-;10318:9;10351:53;10369:34;10378:24;10396:5;10378:24;:::i;:::-;10369:34;:::i;:::-;10351:53;:::i;:::-;10338:66;;10268:142;;;:::o;10416:126::-;10466:9;10499:37;10530:5;10499:37;:::i;:::-;10486:50;;10416:126;;;:::o;10548:144::-;10616:9;10649:37;10680:5;10649:37;:::i;:::-;10636:50;;10548:144;;;:::o;10698:167::-;10803:55;10852:5;10803:55;:::i;:::-;10798:3;10791:68;10698:167;;:::o;10871:258::-;10982:4;11020:2;11009:9;11005:18;10997:26;;11033:89;11119:1;11108:9;11104:17;11095:6;11033:89;:::i;:::-;10871:258;;;;:::o;11135:180::-;11183:77;11180:1;11173:88;11280:4;11277:1;11270:15;11304:4;11301:1;11294:15;11321:102;11363:8;11410:5;11407:1;11403:13;11382:34;;11321:102;;;:::o;11429:848::-;11490:5;11497:4;11521:6;11512:15;;11545:5;11536:14;;11559:712;11580:1;11570:8;11567:15;11559:712;;;11675:4;11670:3;11666:14;11660:4;11657:24;11654:50;;;11684:18;;:::i;:::-;11654:50;11734:1;11724:8;11720:16;11717:451;;;12149:4;12142:5;12138:16;12129:25;;11717:451;12199:4;12193;12189:15;12181:23;;12229:32;12252:8;12229:32;:::i;:::-;12217:44;;11559:712;;;11429:848;;;;;;;:::o;12283:1073::-;12337:5;12528:8;12518:40;;12549:1;12540:10;;12551:5;;12518:40;12577:4;12567:36;;12594:1;12585:10;;12596:5;;12567:36;12663:4;12711:1;12706:27;;;;12747:1;12742:191;;;;12656:277;;12706:27;12724:1;12715:10;;12726:5;;;12742:191;12787:3;12777:8;12774:17;12771:43;;;12794:18;;:::i;:::-;12771:43;12843:8;12840:1;12836:16;12827:25;;12878:3;12871:5;12868:14;12865:40;;;12885:18;;:::i;:::-;12865:40;12918:5;;;12656:277;;13042:2;13032:8;13029:16;13023:3;13017:4;13014:13;13010:36;12992:2;12982:8;12979:16;12974:2;12968:4;12965:12;12961:35;12945:111;12942:246;;;13098:8;13092:4;13088:19;13079:28;;13133:3;13126:5;13123:14;13120:40;;;13140:18;;:::i;:::-;13120:40;13173:5;;12942:246;13213:42;13251:3;13241:8;13235:4;13232:1;13213:42;:::i;:::-;13198:57;;;;13287:4;13282:3;13278:14;13271:5;13268:25;13265:51;;;13296:18;;:::i;:::-;13265:51;13345:4;13338:5;13334:16;13325:25;;12283:1073;;;;;;:::o;13362:281::-;13420:5;13444:23;13462:4;13444:23;:::i;:::-;13436:31;;13488:25;13504:8;13488:25;:::i;:::-;13476:37;;13532:104;13569:66;13559:8;13553:4;13532:104;:::i;:::-;13523:113;;13362:281;;;;:::o;13649:410::-;13689:7;13712:20;13730:1;13712:20;:::i;:::-;13707:25;;13746:20;13764:1;13746:20;:::i;:::-;13741:25;;13801:1;13798;13794:9;13823:30;13841:11;13823:30;:::i;:::-;13812:41;;14002:1;13993:7;13989:15;13986:1;13983:22;13963:1;13956:9;13936:83;13913:139;;14032:18;;:::i;:::-;13913:139;13697:362;13649:410;;;;:::o;14065:182::-;14205:34;14201:1;14193:6;14189:14;14182:58;14065:182;:::o;14253:366::-;14395:3;14416:67;14480:2;14475:3;14416:67;:::i;:::-;14409:74;;14492:93;14581:3;14492:93;:::i;:::-;14610:2;14605:3;14601:12;14594:19;;14253:366;;;:::o;14625:419::-;14791:4;14829:2;14818:9;14814:18;14806:26;;14878:9;14872:4;14868:20;14864:1;14853:9;14849:17;14842:47;14906:131;15032:4;14906:131;:::i;:::-;14898:139;;14625:419;;;:::o;15050:332::-;15171:4;15209:2;15198:9;15194:18;15186:26;;15222:71;15290:1;15279:9;15275:17;15266:6;15222:71;:::i;:::-;15303:72;15371:2;15360:9;15356:18;15347:6;15303:72;:::i;:::-;15050:332;;;;;:::o;15388:165::-;15528:17;15524:1;15516:6;15512:14;15505:41;15388:165;:::o;15559:366::-;15701:3;15722:67;15786:2;15781:3;15722:67;:::i;:::-;15715:74;;15798:93;15887:3;15798:93;:::i;:::-;15916:2;15911:3;15907:12;15900:19;;15559:366;;;:::o;15931:419::-;16097:4;16135:2;16124:9;16120:18;16112:26;;16184:9;16178:4;16174:20;16170:1;16159:9;16155:17;16148:47;16212:131;16338:4;16212:131;:::i;:::-;16204:139;;15931:419;;;:::o;16356:165::-;16496:17;16492:1;16484:6;16480:14;16473:41;16356:165;:::o;16527:366::-;16669:3;16690:67;16754:2;16749:3;16690:67;:::i;:::-;16683:74;;16766:93;16855:3;16766:93;:::i;:::-;16884:2;16879:3;16875:12;16868:19;;16527:366;;;:::o;16899:419::-;17065:4;17103:2;17092:9;17088:18;17080:26;;17152:9;17146:4;17142:20;17138:1;17127:9;17123:17;17116:47;17180:131;17306:4;17180:131;:::i;:::-;17172:139;;16899:419;;;:::o;17324:332::-;17445:4;17483:2;17472:9;17468:18;17460:26;;17496:71;17564:1;17553:9;17549:17;17540:6;17496:71;:::i;:::-;17577:72;17645:2;17634:9;17630:18;17621:6;17577:72;:::i;:::-;17324:332;;;;;:::o;17662:232::-;17802:34;17798:1;17790:6;17786:14;17779:58;17871:15;17866:2;17858:6;17854:15;17847:40;17662:232;:::o;17900:366::-;18042:3;18063:67;18127:2;18122:3;18063:67;:::i;:::-;18056:74;;18139:93;18228:3;18139:93;:::i;:::-;18257:2;18252:3;18248:12;18241:19;;17900:366;;;:::o;18272:419::-;18438:4;18476:2;18465:9;18461:18;18453:26;;18525:9;18519:4;18515:20;18511:1;18500:9;18496:17;18489:47;18553:131;18679:4;18553:131;:::i;:::-;18545:139;;18272:419;;;:::o;18697:180::-;18745:77;18742:1;18735:88;18842:4;18839:1;18832:15;18866:4;18863:1;18856:15;18883:168;19023:20;19019:1;19011:6;19007:14;19000:44;18883:168;:::o;19057:366::-;19199:3;19220:67;19284:2;19279:3;19220:67;:::i;:::-;19213:74;;19296:93;19385:3;19296:93;:::i;:::-;19414:2;19409:3;19405:12;19398:19;;19057:366;;;:::o;19429:419::-;19595:4;19633:2;19622:9;19618:18;19610:26;;19682:9;19676:4;19672:20;19668:1;19657:9;19653:17;19646:47;19710:131;19836:4;19710:131;:::i;:::-;19702:139;;19429:419;;;:::o;19854:320::-;19969:4;20007:2;19996:9;19992:18;19984:26;;20020:71;20088:1;20077:9;20073:17;20064:6;20020:71;:::i;:::-;20101:66;20163:2;20152:9;20148:18;20139:6;20101:66;:::i;:::-;19854:320;;;;;:::o;20180:181::-;20320:33;20316:1;20308:6;20304:14;20297:57;20180:181;:::o;20367:366::-;20509:3;20530:67;20594:2;20589:3;20530:67;:::i;:::-;20523:74;;20606:93;20695:3;20606:93;:::i;:::-;20724:2;20719:3;20715:12;20708:19;;20367:366;;;:::o;20739:419::-;20905:4;20943:2;20932:9;20928:18;20920:26;;20992:9;20986:4;20982:20;20978:1;20967:9;20963:17;20956:47;21020:131;21146:4;21020:131;:::i;:::-;21012:139;;20739:419;;;:::o;21164:173::-;21304:25;21300:1;21292:6;21288:14;21281:49;21164:173;:::o;21343:366::-;21485:3;21506:67;21570:2;21565:3;21506:67;:::i;:::-;21499:74;;21582:93;21671:3;21582:93;:::i;:::-;21700:2;21695:3;21691:12;21684:19;;21343:366;;;:::o;21715:419::-;21881:4;21919:2;21908:9;21904:18;21896:26;;21968:9;21962:4;21958:20;21954:1;21943:9;21939:17;21932:47;21996:131;22122:4;21996:131;:::i;:::-;21988:139;;21715:419;;;:::o;22140:85::-;22185:7;22214:5;22203:16;;22140:85;;;:::o;22231:158::-;22289:9;22322:61;22340:42;22349:32;22375:5;22349:32;:::i;:::-;22340:42;:::i;:::-;22322:61;:::i;:::-;22309:74;;22231:158;;;:::o;22395:147::-;22490:45;22529:5;22490:45;:::i;:::-;22485:3;22478:58;22395:147;;:::o;22548:807::-;22797:4;22835:3;22824:9;22820:19;22812:27;;22849:71;22917:1;22906:9;22902:17;22893:6;22849:71;:::i;:::-;22930:72;22998:2;22987:9;22983:18;22974:6;22930:72;:::i;:::-;23012:80;23088:2;23077:9;23073:18;23064:6;23012:80;:::i;:::-;23102;23178:2;23167:9;23163:18;23154:6;23102:80;:::i;:::-;23192:73;23260:3;23249:9;23245:19;23236:6;23192:73;:::i;:::-;23275;23343:3;23332:9;23328:19;23319:6;23275:73;:::i;:::-;22548:807;;;;;;;;;:::o;23361:143::-;23418:5;23449:6;23443:13;23434:22;;23465:33;23492:5;23465:33;:::i;:::-;23361:143;;;;:::o;23510:663::-;23598:6;23606;23614;23663:2;23651:9;23642:7;23638:23;23634:32;23631:119;;;23669:79;;:::i;:::-;23631:119;23789:1;23814:64;23870:7;23861:6;23850:9;23846:22;23814:64;:::i;:::-;23804:74;;23760:128;23927:2;23953:64;24009:7;24000:6;23989:9;23985:22;23953:64;:::i;:::-;23943:74;;23898:129;24066:2;24092:64;24148:7;24139:6;24128:9;24124:22;24092:64;:::i;:::-;24082:74;;24037:129;23510:663;;;;;:::o;24179:320::-;24294:4;24332:2;24321:9;24317:18;24309:26;;24345:71;24413:1;24402:9;24398:17;24389:6;24345:71;:::i;:::-;24426:66;24488:2;24477:9;24473:18;24464:6;24426:66;:::i;:::-;24179:320;;;;;:::o;24505:351::-;24575:6;24624:2;24612:9;24603:7;24599:23;24595:32;24592:119;;;24630:79;;:::i;:::-;24592:119;24750:1;24775:64;24831:7;24822:6;24811:9;24807:22;24775:64;:::i;:::-;24765:74;;24721:128;24505:351;;;;:::o;24862:171::-;25002:23;24998:1;24990:6;24986:14;24979:47;24862:171;:::o;25039:366::-;25181:3;25202:67;25266:2;25261:3;25202:67;:::i;:::-;25195:74;;25278:93;25367:3;25278:93;:::i;:::-;25396:2;25391:3;25387:12;25380:19;;25039:366;;;:::o;25411:419::-;25577:4;25615:2;25604:9;25600:18;25592:26;;25664:9;25658:4;25654:20;25650:1;25639:9;25635:17;25628:47;25692:131;25818:4;25692:131;:::i;:::-;25684:139;;25411:419;;;:::o;25836:332::-;25957:4;25995:2;25984:9;25980:18;25972:26;;26008:71;26076:1;26065:9;26061:17;26052:6;26008:71;:::i;:::-;26089:72;26157:2;26146:9;26142:18;26133:6;26089:72;:::i;:::-;25836:332;;;;;:::o;26174:137::-;26228:5;26259:6;26253:13;26244:22;;26275:30;26299:5;26275:30;:::i;:::-;26174:137;;;;:::o;26317:345::-;26384:6;26433:2;26421:9;26412:7;26408:23;26404:32;26401:119;;;26439:79;;:::i;:::-;26401:119;26559:1;26584:61;26637:7;26628:6;26617:9;26613:22;26584:61;:::i;:::-;26574:71;;26530:125;26317:345;;;;:::o;26668:442::-;26817:4;26855:2;26844:9;26840:18;26832:26;;26868:71;26936:1;26925:9;26921:17;26912:6;26868:71;:::i;:::-;26949:72;27017:2;27006:9;27002:18;26993:6;26949:72;:::i;:::-;27031;27099:2;27088:9;27084:18;27075:6;27031:72;:::i;:::-;26668:442;;;;;;:::o;27116:225::-;27256:34;27252:1;27244:6;27240:14;27233:58;27325:8;27320:2;27312:6;27308:15;27301:33;27116:225;:::o;27347:366::-;27489:3;27510:67;27574:2;27569:3;27510:67;:::i;:::-;27503:74;;27586:93;27675:3;27586:93;:::i;:::-;27704:2;27699:3;27695:12;27688:19;;27347:366;;;:::o;27719:419::-;27885:4;27923:2;27912:9;27908:18;27900:26;;27972:9;27966:4;27962:20;27958:1;27947:9;27943:17;27936:47;28000:131;28126:4;28000:131;:::i;:::-;27992:139;;27719:419;;;:::o;28144:194::-;28184:4;28204:20;28222:1;28204:20;:::i;:::-;28199:25;;28238:20;28256:1;28238:20;:::i;:::-;28233:25;;28282:1;28279;28275:9;28267:17;;28306:1;28300:4;28297:11;28294:37;;;28311:18;;:::i;:::-;28294:37;28144:194;;;;:::o;28344:180::-;28392:77;28389:1;28382:88;28489:4;28486:1;28479:15;28513:4;28510:1;28503:15;28530:114;28597:6;28631:5;28625:12;28615:22;;28530:114;;;:::o;28650:184::-;28749:11;28783:6;28778:3;28771:19;28823:4;28818:3;28814:14;28799:29;;28650:184;;;;:::o;28840:132::-;28907:4;28930:3;28922:11;;28960:4;28955:3;28951:14;28943:22;;28840:132;;;:::o;28978:108::-;29055:24;29073:5;29055:24;:::i;:::-;29050:3;29043:37;28978:108;;:::o;29092:179::-;29161:10;29182:46;29224:3;29216:6;29182:46;:::i;:::-;29260:4;29255:3;29251:14;29237:28;;29092:179;;;;:::o;29277:113::-;29347:4;29379;29374:3;29370:14;29362:22;;29277:113;;;:::o;29426:732::-;29545:3;29574:54;29622:5;29574:54;:::i;:::-;29644:86;29723:6;29718:3;29644:86;:::i;:::-;29637:93;;29754:56;29804:5;29754:56;:::i;:::-;29833:7;29864:1;29849:284;29874:6;29871:1;29868:13;29849:284;;;29950:6;29944:13;29977:63;30036:3;30021:13;29977:63;:::i;:::-;29970:70;;30063:60;30116:6;30063:60;:::i;:::-;30053:70;;29909:224;29896:1;29893;29889:9;29884:14;;29849:284;;;29853:14;30149:3;30142:10;;29550:608;;;29426:732;;;;:::o;30164:831::-;30427:4;30465:3;30454:9;30450:19;30442:27;;30479:71;30547:1;30536:9;30532:17;30523:6;30479:71;:::i;:::-;30560:80;30636:2;30625:9;30621:18;30612:6;30560:80;:::i;:::-;30687:9;30681:4;30677:20;30672:2;30661:9;30657:18;30650:48;30715:108;30818:4;30809:6;30715:108;:::i;:::-;30707:116;;30833:72;30901:2;30890:9;30886:18;30877:6;30833:72;:::i;:::-;30915:73;30983:3;30972:9;30968:19;30959:6;30915:73;:::i;:::-;30164:831;;;;;;;;:::o;31001:147::-;31102:11;31139:3;31124:18;;31001:147;;;;:::o;31154:114::-;;:::o;31274:398::-;31433:3;31454:83;31535:1;31530:3;31454:83;:::i;:::-;31447:90;;31546:93;31635:3;31546:93;:::i;:::-;31664:1;31659:3;31655:11;31648:18;;31274:398;;;:::o;31678:379::-;31862:3;31884:147;32027:3;31884:147;:::i;:::-;31877:154;;32048:3;32041:10;;31678:379;;;:::o;32063:179::-;32203:31;32199:1;32191:6;32187:14;32180:55;32063:179;:::o;32248:366::-;32390:3;32411:67;32475:2;32470:3;32411:67;:::i;:::-;32404:74;;32487:93;32576:3;32487:93;:::i;:::-;32605:2;32600:3;32596:12;32589:19;;32248:366;;;:::o;32620:419::-;32786:4;32824:2;32813:9;32809:18;32801:26;;32873:9;32867:4;32863:20;32859:1;32848:9;32844:17;32837:47;32901:131;33027:4;32901:131;:::i;:::-;32893:139;;32620:419;;;:::o;33045:191::-;33085:3;33104:20;33122:1;33104:20;:::i;:::-;33099:25;;33138:20;33156:1;33138:20;:::i;:::-;33133:25;;33181:1;33178;33174:9;33167:16;;33202:3;33199:1;33196:10;33193:36;;;33209:18;;:::i;:::-;33193:36;33045:191;;;;:::o;33242:177::-;33382:29;33378:1;33370:6;33366:14;33359:53;33242:177;:::o;33425:366::-;33567:3;33588:67;33652:2;33647:3;33588:67;:::i;:::-;33581:74;;33664:93;33753:3;33664:93;:::i;:::-;33782:2;33777:3;33773:12;33766:19;;33425:366;;;:::o;33797:419::-;33963:4;34001:2;33990:9;33986:18;33978:26;;34050:9;34044:4;34040:20;34036:1;34025:9;34021:17;34014:47;34078:131;34204:4;34078:131;:::i;:::-;34070:139;;33797:419;;;:::o;34222:180::-;34270:77;34267:1;34260:88;34367:4;34364:1;34357:15;34391:4;34388:1;34381:15;34408:185;34448:1;34465:20;34483:1;34465:20;:::i;:::-;34460:25;;34499:20;34517:1;34499:20;:::i;:::-;34494:25;;34538:1;34528:35;;34543:18;;:::i;:::-;34528:35;34585:1;34582;34578:9;34573:14;;34408:185;;;;:::o;34599:220::-;34739:34;34735:1;34727:6;34723:14;34716:58;34808:3;34803:2;34795:6;34791:15;34784:28;34599:220;:::o;34825:366::-;34967:3;34988:67;35052:2;35047:3;34988:67;:::i;:::-;34981:74;;35064:93;35153:3;35064:93;:::i;:::-;35182:2;35177:3;35173:12;35166:19;;34825:366;;;:::o;35197:419::-;35363:4;35401:2;35390:9;35386:18;35378:26;;35450:9;35444:4;35440:20;35436:1;35425:9;35421:17;35414:47;35478:131;35604:4;35478:131;:::i;:::-;35470:139;;35197:419;;;:::o

Swarm Source

ipfs://d00f8d91bd219b0f1c24db03eb6e2fe14d60399df61744fbcffc5eb08ad0376c
Loading...
Loading
Loading...
Loading
[ 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.