ETH Price: $3,416.42 (-6.81%)
Gas: 9.94 Gwei

Token

Student Athlete Inu (SAI)
 

Overview

Max Total Supply

1,000,000,000,000 SAI

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
822,591,440.88 SAI

Value
$0.00
0x66e15865ac57db9c39b27c6b0366e10ef6774070
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:
SAI

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-01
*/

/**
 * 
 * 
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/

pragma solidity ^0.8.4;

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if(a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract SAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = "Student Athlete Inu";
    string private constant _symbol = "SAI";
    
    uint256 private minContractTokensToSwap = 1e9 * 10**9;
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 0;
    uint256 private _teamFee = 12;
    uint256 private _liquidityFeePercentage = 10;
    uint256 private launchBlock = 0;
    uint256 private _maxWalletSize = 1e10 * 10**9;

    uint256 private _buyFee = 89;
    uint256 private _sellFee = 25;
    uint256 private _transferFee = 10;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;

    address payable private _devWallet;
    address payable private _marketingWallet;
    address payable private _treasuryWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noTaxMode = false;
    bool private _swapAll = false;
    bool private _takeFeeFromTransfer = false;
    bool private inSwap = false;

    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event Response(bool feeSent, bool marketingSent, bool treasurySent);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable devWallet, address payable marketingWallet, address payable treasuryWallet) {
        _devWallet = devWallet;
        _marketingWallet = marketingWallet;
        _treasuryWallet = treasuryWallet;
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[treasuryWallet] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[devWallet] = true;
        _isExcludedFromMaxWallet[marketingWallet] = true;
        _isExcludedFromMaxWallet[treasuryWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);

            if (block.number <= launchBlock + 5) {
                if (from != uniswapV2Pair && from != address(uniswapV2Router)) {
                    _bots[from] = true;
                } else if (to != uniswapV2Pair && to != address(uniswapV2Router)) {
                    _bots[to] = true;
                }
            }

            if(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to]) {
                require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _teamFee = _buyFee;
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                _teamFee = _sellFee;

                if(contractTokenBalance > minContractTokensToSwap) {
                    if(!_swapAll) {
                        contractTokenBalance = minContractTokensToSwap;
                    }

                    if (_liquidityFeePercentage > 0) {
                        swapAndLiquify(contractTokenBalance);
                    } else {
                        swapWithoutLiquify(contractTokenBalance);
                    }                         
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _noTaxMode) {
            takeFee = false;
        }

        if(!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) {
            if (_takeFeeFromTransfer) {
                _teamFee = _transferFee;
            } else {
                takeFee = false;
            }
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 teamFeePercentage = 100 - _liquidityFeePercentage;
        uint256 amtForLiquidity = contractTokenBalance.mul(_liquidityFeePercentage).div(100);
        uint256 halfLiq = amtForLiquidity.div(2);

        uint256 amountToSwapForETH = contractTokenBalance.sub(halfLiq);
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 feeBalance = ethBalance.mul(teamFeePercentage).div(100);
        sendETHToFee(feeBalance);

        uint256 ethForLiquidity = ethBalance - feeBalance;

        if (halfLiq > 0 && ethForLiquidity > 0) {
            // add liquidity
            addLiquidity(halfLiq, ethForLiquidity);

            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, amtForLiquidity);
        }
    }

    function swapWithoutLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }

    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
        );
    }

    function manualSwapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        (bool dev, ) = _devWallet.call{value: amount.div(4)}("");
        (bool marketing, ) = _marketingWallet.call{value: amount.div(4)}("");
        (bool treasury, ) = _treasuryWallet.call{value: amount.div(2)}("");

        emit Response(dev, marketing, treasury);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        launchBlock = block.number;
        automatedMarketMakerPairs[uniswapV2Pair] = true;
    }
    
    function setMarketingWallet (address payable marketing) external onlyOwner {
        _isExcludedFromFee[_marketingWallet] = false;
        _marketingWallet = marketing;
        _isExcludedFromFee[marketing] = true;
    }

    function setDevWallet (address payable dev) external onlyOwner() {
        _isExcludedFromFee[_devWallet] = false;
        _devWallet = dev;
        _isExcludedFromFee[dev] = true;
    }

    function setTreasuryWallet (address payable treasury) external onlyOwner() {
        _isExcludedFromFee[_treasuryWallet] = false;
        _treasuryWallet = treasury;
        _isExcludedFromFee[treasury] = true;
    }

    function excludeFromFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = false;
    }

    function isExcludedToFee(address ad) public view returns (bool) {
        return _isExcludedFromFee[ad];
    }

    function excludeFromMaxWallet(address[] calldata ads, bool onoff) public onlyOwner {
        for (uint i = 0; i < ads.length; i++) {
            _isExcludedFromMaxWallet[ads[i]] = onoff;
        }
    }
    
    function isExcludedMaxWallet(address ad) public view returns (bool) {
        return _isExcludedFromMaxWallet[ad];
    }
    
    function setNoTaxMode(bool onoff) external onlyOwner {
        _noTaxMode = onoff;
    }

    function setTakeFeeFromTransfer(bool onoff) external onlyOwner {
        _takeFeeFromTransfer = onoff;
    }
    
    function setBuyFee(uint256 buy) external onlyOwner {
        require(buy <= 20, "Buy fee must be less than 20");
        _buyFee = buy;
    }

    function setSellFee(uint256 sell) external onlyOwner {
        require(sell <= 20, "Sell fee must be less than 20");
        _sellFee = sell;
    }

    function setTransferFee(uint256 fee) external onlyOwner {
        require(fee <= 20, "Transfer fee must be less than 20");
        _transferFee = fee;
    }
        
    function setTaxFee(uint256 tax) external onlyOwner {
        require(tax <= 5, "tax must be less than 5");
        _taxFee = tax;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
		require(_liquidityFeePercentage >= 0 && _liquidityFeePercentage <= 100, "liquidity fee percentage must be between 0 to 100");
        _liquidityFeePercentage = liquidityFee;
    }

    function setMinContractTokensToSwap(uint256 numToken) external onlyOwner {
        minContractTokensToSwap = numToken * 10**9;
    }

    function setMaxWallet(uint256 amt) external onlyOwner {
        _maxWalletSize = amt * 10**9;
    }

    function setSwapAll(bool onoff) external onlyOwner {
        _swapAll = onoff;
    }
    
    function setBots(address[] calldata bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        manualSwapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"devWallet","type":"address"},{"internalType":"address payable","name":"marketingWallet","type":"address"},{"internalType":"address payable","name":"treasuryWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"bool","name":"feeSent","type":"bool"},{"indexed":false,"internalType":"bool","name":"marketingSent","type":"bool"},{"indexed":false,"internalType":"bool","name":"treasurySent","type":"bool"}],"name":"Response","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":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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedToFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"dev","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTakeFeeFromTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"treasury","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000859565b6000196200002c9190620007e0565b600855670de0b6b3a7640000600a556000600b55600c8055600a600d556000600e55678ac7230489e80000600f5560596010556019601155600a601255600b54601355600c546014556000601960146101000a81548160ff0219169083151502179055506000601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506000601960176101000a81548160ff0219169083151502179055506000601960186101000a81548160ff0219169083151502179055503480156200010957600080fd5b506040516200645f3803806200645f83398181016040528101906200012f919062000756565b6000620001416200070e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002b96200070e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200030d6200071660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620004d46200071660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006956200070e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006fd9190620007c3565b60405180910390a35050506200090e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200075081620008f4565b92915050565b600080600060608486031215620007725762000771620008ef565b5b600062000782868287016200073f565b935050602062000795868287016200073f565b9250506040620007a8868287016200073f565b9150509250925092565b620007bd816200084f565b82525050565b6000602082019050620007da6000830184620007b2565b92915050565b6000620007ed826200084f565b9150620007fa836200084f565b92508282101562000810576200080f62000891565b5b828203905092915050565b600062000828826200082f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000866826200084f565b915062000873836200084f565b925082620008865762000885620008c0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008ff816200081b565b81146200090b57600080fd5b50565b615b41806200091e6000396000f3fe6080604052600436106102295760003560e01c80638b4cee0811610123578063c1187569116100ab578063db8aeab11161006f578063db8aeab1146107ba578063db92dbb6146107e3578063dd62ed3e1461080e578063de30aad11461084b578063e1ab04c91461087457610230565b8063c118756914610711578063c3c8cd801461073a578063c4081a4c14610751578063c9567bf91461077a578063cf0848f71461079157610230565b806395d89b41116100f257806395d89b411461062e5780639a7a23d614610659578063a8602fea14610682578063a9059cbb146106ab578063b515566a146106e857610230565b80638b4cee08146105885780638da5cb5b146105b15780638ee88c53146105dc5780638f02bb5b1461060557610230565b8063313ce567116101b15780635d098b38116101755780635d098b38146104b75780636fc3eaec146104e057806370a08231146104f7578063715018a614610534578063844f30fb1461054b57610230565b8063313ce567146103d45780633bbac579146103ff578063437823ec1461043c5780634b740b16146104655780635d0044ca1461048e57610230565b806318160ddd116101f857806318160ddd146102ef5780631f53ac021461031a57806323b872dd14610343578063273123b71461038057806327f3a72a146103a957610230565b806306fdde0314610235578063095ea7b3146102605780630cc835a31461029d57806312dfbd33146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108b1565b6040516102579190614f87565b60405180910390f35b34801561026c57600080fd5b50610287600480360381019061028291906148e9565b6108ee565b6040516102949190614f35565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190614a30565b61090c565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190614a30565b6109ef565b005b3480156102fb57600080fd5b50610304610a9d565b60405161031191906151e9565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c91906147e9565b610aae565b005b34801561034f57600080fd5b5061036a60048036038101906103659190614856565b610c59565b6040516103779190614f35565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a2919061478f565b610d32565b005b3480156103b557600080fd5b506103be610e22565b6040516103cb91906151e9565b60405180910390f35b3480156103e057600080fd5b506103e9610e32565b6040516103f69190615295565b60405180910390f35b34801561040b57600080fd5b506104266004803603810190610421919061478f565b610e3b565b6040516104339190614f35565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e91906147e9565b610e91565b005b34801561047157600080fd5b5061048c600480360381019061048791906149d6565b610f81565b005b34801561049a57600080fd5b506104b560048036038101906104b09190614a30565b611033565b005b3480156104c357600080fd5b506104de60048036038101906104d991906147e9565b6110e1565b005b3480156104ec57600080fd5b506104f561128c565b005b34801561050357600080fd5b5061051e6004803603810190610519919061478f565b611332565b60405161052b91906151e9565b60405180910390f35b34801561054057600080fd5b50610549611383565b005b34801561055757600080fd5b50610572600480360381019061056d919061478f565b6114d6565b60405161057f9190614f35565b60405180910390f35b34801561059457600080fd5b506105af60048036038101906105aa9190614a30565b61152c565b005b3480156105bd57600080fd5b506105c661160f565b6040516105d39190614e67565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190614a30565b611638565b005b34801561061157600080fd5b5061062c60048036038101906106279190614a30565b61172c565b005b34801561063a57600080fd5b5061064361180f565b6040516106509190614f87565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b91906148a9565b61184c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906147e9565b611980565b005b3480156106b757600080fd5b506106d260048036038101906106cd91906148e9565b611b2b565b6040516106df9190614f35565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a9190614929565b611b49565b005b34801561071d57600080fd5b50610738600480360381019061073391906149d6565b611d83565b005b34801561074657600080fd5b5061074f611e35565b005b34801561075d57600080fd5b5061077860048036038101906107739190614a30565b611ee3565b005b34801561078657600080fd5b5061078f611fc6565b005b34801561079d57600080fd5b506107b860048036038101906107b391906147e9565b61255e565b005b3480156107c657600080fd5b506107e160048036038101906107dc9190614976565b61264e565b005b3480156107ef57600080fd5b506107f8612788565b60405161080591906151e9565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190614816565b6127ba565b60405161084291906151e9565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d91906149d6565b612841565b005b34801561088057600080fd5b5061089b6004803603810190610896919061478f565b6128f3565b6040516108a89190614f35565b60405180910390f35b60606040518060400160405280601381526020017f53747564656e74204174686c65746520496e7500000000000000000000000000815250905090565b60006109026108fb612949565b8484612951565b6001905092915050565b610914612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099890615109565b60405180910390fd5b60148111156109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc906150c9565b60405180910390fd5b8060108190555050565b6109f7612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b90615109565b60405180910390fd5b633b9aca0081610a949190615397565b600a8190555050565b6000683635c9adc5dea00000905090565b610ab6612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90615109565b60405180910390fd5b600060056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610c66848484612b1c565b610d2784610c72612949565b610d2285604051806060016040528060288152602001615ae460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cd8612949565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134909092919063ffffffff16565b612951565b600190509392505050565b610d3a612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90615109565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610e2d30611332565b905090565b60006009905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e99612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90615109565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f89612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90615109565b60405180910390fd5b80601960156101000a81548160ff02191690831515021790555050565b61103b612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90615109565b60405180910390fd5b633b9aca00816110d89190615397565b600f8190555050565b6110e9612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90615109565b60405180910390fd5b600060056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611294612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890615109565b60405180910390fd5b600047905061132f816134f4565b50565b600061137c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613718565b9050919050565b61138b612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90615109565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611534612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890615109565b60405180910390fd5b6014811115611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc906150a9565b60405180910390fd5b8060118190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611640612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490615109565b60405180910390fd5b6000600d54101580156116e357506064600d5411155b611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990615089565b60405180910390fd5b80600d8190555050565b611734612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890615109565b60405180910390fd5b6014811115611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc90615049565b60405180910390fd5b8060128190555050565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b611854612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d890615109565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990615029565b60405180910390fd5b61197c8282613786565b5050565b611988612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c90615109565b60405180910390fd5b600060056000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611b3f611b38612949565b8484612b1c565b6001905092915050565b611b51612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590615109565b60405180910390fd5b60005b82829050811015611d7e57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611c3857611c37615578565b5b9050602002016020810190611c4d919061478f565b73ffffffffffffffffffffffffffffffffffffffff1614158015611ce65750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611cb857611cb7615578565b5b9050602002016020810190611ccd919061478f565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611d6b57600160076000858585818110611d0457611d03615578565b5b9050602002016020810190611d19919061478f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611d76906154d1565b915050611be1565b505050565b611d8b612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0f90615109565b60405180910390fd5b80601960176101000a81548160ff02191690831515021790555050565b611e3d612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190615109565b60405180910390fd5b6000611ed530611332565b9050611ee0816137e1565b50565b611eeb612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90615109565b60405180910390fd5b6005811115611fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb390615069565b60405180910390fd5b80600b8190555050565b611fce612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290615109565b60405180910390fd5b601960149054906101000a900460ff16156120ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a2906151a9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061213b30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612951565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561218157600080fd5b505afa158015612195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b991906147bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561221b57600080fd5b505afa15801561222f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225391906147bc565b6040518363ffffffff1660e01b8152600401612270929190614e82565b602060405180830381600087803b15801561228a57600080fd5b505af115801561229e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c291906147bc565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061234b30611332565b60008061235661160f565b426040518863ffffffff1660e01b815260040161237896959493929190614ed4565b6060604051808303818588803b15801561239157600080fd5b505af11580156123a5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123ca9190614a5d565b505050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161246c929190614eab565b602060405180830381600087803b15801561248657600080fd5b505af115801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be9190614a03565b506001601960146101000a81548160ff02191690831515021790555043600e819055506001601a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612566612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90615109565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612656612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126da90615109565b60405180910390fd5b60005b8383905081101561278257816006600086868581811061270957612708615578565b5b905060200201602081019061271e919061478f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061277a906154d1565b9150506126e6565b50505050565b60006127b5601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611332565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612849612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cd90615109565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b890615189565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2890614fe9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b0f91906151e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8390615149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf390614fa9565b60405180910390fd5b60008111612c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3690615129565b60405180910390fd5b612c4761160f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612cb55750612c8561160f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156132e457600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d5e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d6757600080fd5b6005600e54612d769190615310565b4311612f9657601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e285750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612e8a576001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612f95565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612f365750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f94576001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561303e5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561309c57600f548161305084611332565b61305a9190615310565b111561309b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309290615169565b60405180910390fd5b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156131475750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561319d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131fb57601960149054906101000a900460ff166131f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131e8906151c9565b60405180910390fd5b601054600c819055505b600061320630611332565b9050601960189054906101000a900460ff161580156132735750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561328b5750601960149054906101000a900460ff165b156132e257601154600c81905550600a548111156132e157601960169054906101000a900460ff166132bd57600a5490505b6000600d5411156132d6576132d181613a69565b6132e0565b6132df81613bdb565b5b5b5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061338b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806133a25750601960159054906101000a900460ff165b156133ac57600090505b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134505750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561347e57601960179054906101000a900460ff161561347857601254600c8190555061347d565b600090505b5b61348a84848484613c36565b50505050565b60008383111582906134d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134cf9190614f87565b60405180910390fd5b50600083856134e791906153f1565b9050809150509392505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613543600484613c6390919063ffffffff16565b60405161354f90614e52565b60006040518083038185875af1925050503d806000811461358c576040519150601f19603f3d011682016040523d82523d6000602084013e613591565b606091505b505090506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135e4600485613c6390919063ffffffff16565b6040516135f090614e52565b60006040518083038185875af1925050503d806000811461362d576040519150601f19603f3d011682016040523d82523d6000602084013e613632565b606091505b505090506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613685600286613c6390919063ffffffff16565b60405161369190614e52565b60006040518083038185875af1925050503d80600081146136ce576040519150601f19603f3d011682016040523d82523d6000602084013e6136d3565b606091505b505090507f87331ab4876e21cfb9f6c68f69209cc294cb4b26abf5144477d1599bf074221783838360405161370a93929190614f50565b60405180910390a150505050565b600060085482111561375f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375690614fc9565b60405180910390fd5b6000613769613cad565b905061377e8184613c6390919063ffffffff16565b915050919050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601960186101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613819576138186155a7565b5b6040519080825280602002602001820160405280156138475781602001602082028036833780820191505090505b509050308160008151811061385f5761385e615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561390157600080fd5b505afa158015613915573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061393991906147bc565b8160018151811061394d5761394c615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139b430601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612951565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a18959493929190615204565b600060405180830381600087803b158015613a3257600080fd5b505af1158015613a46573d6000803e3d6000fd5b50505050506000601960186101000a81548160ff02191690831515021790555050565b6001601960186101000a81548160ff0219169083151502179055506000600d546064613a9591906153f1565b90506000613ac16064613ab3600d5486613cd890919063ffffffff16565b613c6390919063ffffffff16565b90506000613ad9600283613c6390919063ffffffff16565b90506000613af08286613d5390919063ffffffff16565b90506000479050613b0082613d9d565b6000613b158247613d5390919063ffffffff16565b90506000613b3f6064613b318985613cd890919063ffffffff16565b613c6390919063ffffffff16565b9050613b4a816134f4565b60008183613b5891906153f1565b9050600086118015613b6a5750600081115b15613bb557613b798682613fef565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858289604051613bac9392919061525e565b60405180910390a15b50505050505050506000601960186101000a81548160ff02191690831515021790555050565b6001601960186101000a81548160ff021916908315150217905550613bff81613d9d565b60004790506000811115613c1757613c16476134f4565b5b506000601960186101000a81548160ff02191690831515021790555050565b80613c4457613c436140e3565b5b613c4f848484614126565b80613c5d57613c5c6142f1565b5b50505050565b6000613ca583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614305565b905092915050565b6000806000613cba614368565b91509150613cd18183613c6390919063ffffffff16565b9250505090565b600080831415613ceb5760009050613d4d565b60008284613cf99190615397565b9050828482613d089190615366565b14613d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d3f906150e9565b60405180910390fd5b809150505b92915050565b6000613d9583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613490565b905092915050565b6000600267ffffffffffffffff811115613dba57613db96155a7565b5b604051908082528060200260200182016040528015613de85781602001602082028036833780820191505090505b5090503081600081518110613e0057613dff615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613ea257600080fd5b505afa158015613eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eda91906147bc565b81600181518110613eee57613eed615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f5530601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612951565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fb9959493929190615204565b600060405180830381600087803b158015613fd357600080fd5b505af1158015613fe7573d6000803e3d6000fd5b505050505050565b61401c30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612951565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061406861160f565b426040518863ffffffff1660e01b815260040161408a96959493929190614ed4565b6060604051808303818588803b1580156140a357600080fd5b505af11580156140b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140dc9190614a5d565b5050505050565b6000600b541480156140f757506000600c54145b1561410157614124565b600b54601381905550600c546014819055506000600b819055506000600c819055505b565b600080600080600080614138876143ca565b95509550955095509550955061419686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d5390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061422b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461443290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061427781614490565b614281848361454d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516142de91906151e9565b60405180910390a3505050505050505050565b601354600b81905550601454600c81905550565b6000808311829061434c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143439190614f87565b60405180910390fd5b506000838561435b9190615366565b9050809150509392505050565b600080600060085490506000683635c9adc5dea00000905061439e683635c9adc5dea00000600854613c6390919063ffffffff16565b8210156143bd57600854683635c9adc5dea000009350935050506143c6565b81819350935050505b9091565b60008060008060008060008060006143e78a600b54600c54614587565b92509250925060006143f7613cad565b9050600080600061440a8e87878761461d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846144419190615310565b905083811015614486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161447d90615009565b60405180910390fd5b8091505092915050565b600061449a613cad565b905060006144b18284613cd890919063ffffffff16565b905061450581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461443290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61456282600854613d5390919063ffffffff16565b60088190555061457d8160095461443290919063ffffffff16565b6009819055505050565b6000806000806145b360646145a5888a613cd890919063ffffffff16565b613c6390919063ffffffff16565b905060006145dd60646145cf888b613cd890919063ffffffff16565b613c6390919063ffffffff16565b90506000614606826145f8858c613d5390919063ffffffff16565b613d5390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806146368589613cd890919063ffffffff16565b9050600061464d8689613cd890919063ffffffff16565b905060006146648789613cd890919063ffffffff16565b9050600061468d8261467f8587613d5390919063ffffffff16565b613d5390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506146b581615a87565b92915050565b6000815190506146ca81615a87565b92915050565b6000813590506146df81615a9e565b92915050565b60008083601f8401126146fb576146fa6155db565b5b8235905067ffffffffffffffff811115614718576147176155d6565b5b602083019150836020820283011115614734576147336155e0565b5b9250929050565b60008135905061474a81615ab5565b92915050565b60008151905061475f81615ab5565b92915050565b60008135905061477481615acc565b92915050565b60008151905061478981615acc565b92915050565b6000602082840312156147a5576147a46155ea565b5b60006147b3848285016146a6565b91505092915050565b6000602082840312156147d2576147d16155ea565b5b60006147e0848285016146bb565b91505092915050565b6000602082840312156147ff576147fe6155ea565b5b600061480d848285016146d0565b91505092915050565b6000806040838503121561482d5761482c6155ea565b5b600061483b858286016146a6565b925050602061484c858286016146a6565b9150509250929050565b60008060006060848603121561486f5761486e6155ea565b5b600061487d868287016146a6565b935050602061488e868287016146a6565b925050604061489f86828701614765565b9150509250925092565b600080604083850312156148c0576148bf6155ea565b5b60006148ce858286016146a6565b92505060206148df8582860161473b565b9150509250929050565b60008060408385031215614900576148ff6155ea565b5b600061490e858286016146a6565b925050602061491f85828601614765565b9150509250929050565b600080602083850312156149405761493f6155ea565b5b600083013567ffffffffffffffff81111561495e5761495d6155e5565b5b61496a858286016146e5565b92509250509250929050565b60008060006040848603121561498f5761498e6155ea565b5b600084013567ffffffffffffffff8111156149ad576149ac6155e5565b5b6149b9868287016146e5565b935093505060206149cc8682870161473b565b9150509250925092565b6000602082840312156149ec576149eb6155ea565b5b60006149fa8482850161473b565b91505092915050565b600060208284031215614a1957614a186155ea565b5b6000614a2784828501614750565b91505092915050565b600060208284031215614a4657614a456155ea565b5b6000614a5484828501614765565b91505092915050565b600080600060608486031215614a7657614a756155ea565b5b6000614a848682870161477a565b9350506020614a958682870161477a565b9250506040614aa68682870161477a565b9150509250925092565b6000614abc8383614ac8565b60208301905092915050565b614ad181615425565b82525050565b614ae081615425565b82525050565b6000614af1826152c0565b614afb81856152e3565b9350614b06836152b0565b8060005b83811015614b37578151614b1e8882614ab0565b9750614b29836152d6565b925050600181019050614b0a565b5085935050505092915050565b614b4d81615449565b82525050565b614b5c8161548c565b82525050565b6000614b6d826152cb565b614b7781856152ff565b9350614b8781856020860161549e565b614b90816155ef565b840191505092915050565b6000614ba86023836152ff565b9150614bb382615600565b604082019050919050565b6000614bcb602a836152ff565b9150614bd68261564f565b604082019050919050565b6000614bee6022836152ff565b9150614bf98261569e565b604082019050919050565b6000614c11601b836152ff565b9150614c1c826156ed565b602082019050919050565b6000614c346039836152ff565b9150614c3f82615716565b604082019050919050565b6000614c576021836152ff565b9150614c6282615765565b604082019050919050565b6000614c7a6017836152ff565b9150614c85826157b4565b602082019050919050565b6000614c9d6031836152ff565b9150614ca8826157dd565b604082019050919050565b6000614cc0601d836152ff565b9150614ccb8261582c565b602082019050919050565b6000614ce3601c836152ff565b9150614cee82615855565b602082019050919050565b6000614d066021836152ff565b9150614d118261587e565b604082019050919050565b6000614d296020836152ff565b9150614d34826158cd565b602082019050919050565b6000614d4c6029836152ff565b9150614d57826158f6565b604082019050919050565b6000614d6f6025836152ff565b9150614d7a82615945565b604082019050919050565b6000614d926023836152ff565b9150614d9d82615994565b604082019050919050565b6000614db56000836152f4565b9150614dc0826159e3565b600082019050919050565b6000614dd86024836152ff565b9150614de3826159e6565b604082019050919050565b6000614dfb6017836152ff565b9150614e0682615a35565b602082019050919050565b6000614e1e6018836152ff565b9150614e2982615a5e565b602082019050919050565b614e3d81615475565b82525050565b614e4c8161547f565b82525050565b6000614e5d82614da8565b9150819050919050565b6000602082019050614e7c6000830184614ad7565b92915050565b6000604082019050614e976000830185614ad7565b614ea46020830184614ad7565b9392505050565b6000604082019050614ec06000830185614ad7565b614ecd6020830184614e34565b9392505050565b600060c082019050614ee96000830189614ad7565b614ef66020830188614e34565b614f036040830187614b53565b614f106060830186614b53565b614f1d6080830185614ad7565b614f2a60a0830184614e34565b979650505050505050565b6000602082019050614f4a6000830184614b44565b92915050565b6000606082019050614f656000830186614b44565b614f726020830185614b44565b614f7f6040830184614b44565b949350505050565b60006020820190508181036000830152614fa18184614b62565b905092915050565b60006020820190508181036000830152614fc281614b9b565b9050919050565b60006020820190508181036000830152614fe281614bbe565b9050919050565b6000602082019050818103600083015261500281614be1565b9050919050565b6000602082019050818103600083015261502281614c04565b9050919050565b6000602082019050818103600083015261504281614c27565b9050919050565b6000602082019050818103600083015261506281614c4a565b9050919050565b6000602082019050818103600083015261508281614c6d565b9050919050565b600060208201905081810360008301526150a281614c90565b9050919050565b600060208201905081810360008301526150c281614cb3565b9050919050565b600060208201905081810360008301526150e281614cd6565b9050919050565b6000602082019050818103600083015261510281614cf9565b9050919050565b6000602082019050818103600083015261512281614d1c565b9050919050565b6000602082019050818103600083015261514281614d3f565b9050919050565b6000602082019050818103600083015261516281614d62565b9050919050565b6000602082019050818103600083015261518281614d85565b9050919050565b600060208201905081810360008301526151a281614dcb565b9050919050565b600060208201905081810360008301526151c281614dee565b9050919050565b600060208201905081810360008301526151e281614e11565b9050919050565b60006020820190506151fe6000830184614e34565b92915050565b600060a0820190506152196000830188614e34565b6152266020830187614b53565b81810360408301526152388186614ae6565b90506152476060830185614ad7565b6152546080830184614e34565b9695505050505050565b60006060820190506152736000830186614e34565b6152806020830185614e34565b61528d6040830184614e34565b949350505050565b60006020820190506152aa6000830184614e43565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061531b82615475565b915061532683615475565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561535b5761535a61551a565b5b828201905092915050565b600061537182615475565b915061537c83615475565b92508261538c5761538b615549565b5b828204905092915050565b60006153a282615475565b91506153ad83615475565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153e6576153e561551a565b5b828202905092915050565b60006153fc82615475565b915061540783615475565b92508282101561541a5761541961551a565b5b828203905092915050565b600061543082615455565b9050919050565b600061544282615455565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061549782615475565b9050919050565b60005b838110156154bc5780820151818401526020810190506154a1565b838111156154cb576000848401525b50505050565b60006154dc82615475565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561550f5761550e61551a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f5472616e7366657220666565206d757374206265206c657373207468616e203260008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f6c6971756964697479206665652070657263656e74616765206d75737420626560008201527f206265747765656e203020746f20313030000000000000000000000000000000602082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203230000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20323000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b615a9081615425565b8114615a9b57600080fd5b50565b615aa781615437565b8114615ab257600080fd5b50565b615abe81615449565b8114615ac957600080fd5b50565b615ad581615475565b8114615ae057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d02b4faabe0a06c7940ccc329c764e97007ab0828c241cdd3e6cde11ca1b35bf64736f6c63430008050033000000000000000000000000a26c89c22c93847511cd832bc64271805521ac140000000000000000000000005018ac9c1ec6b2259510758b5e2f5a7e245a7c17000000000000000000000000d5cc1fe5a9d47e116d6abb1479c1d6f32632f784

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638b4cee0811610123578063c1187569116100ab578063db8aeab11161006f578063db8aeab1146107ba578063db92dbb6146107e3578063dd62ed3e1461080e578063de30aad11461084b578063e1ab04c91461087457610230565b8063c118756914610711578063c3c8cd801461073a578063c4081a4c14610751578063c9567bf91461077a578063cf0848f71461079157610230565b806395d89b41116100f257806395d89b411461062e5780639a7a23d614610659578063a8602fea14610682578063a9059cbb146106ab578063b515566a146106e857610230565b80638b4cee08146105885780638da5cb5b146105b15780638ee88c53146105dc5780638f02bb5b1461060557610230565b8063313ce567116101b15780635d098b38116101755780635d098b38146104b75780636fc3eaec146104e057806370a08231146104f7578063715018a614610534578063844f30fb1461054b57610230565b8063313ce567146103d45780633bbac579146103ff578063437823ec1461043c5780634b740b16146104655780635d0044ca1461048e57610230565b806318160ddd116101f857806318160ddd146102ef5780631f53ac021461031a57806323b872dd14610343578063273123b71461038057806327f3a72a146103a957610230565b806306fdde0314610235578063095ea7b3146102605780630cc835a31461029d57806312dfbd33146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108b1565b6040516102579190614f87565b60405180910390f35b34801561026c57600080fd5b50610287600480360381019061028291906148e9565b6108ee565b6040516102949190614f35565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190614a30565b61090c565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190614a30565b6109ef565b005b3480156102fb57600080fd5b50610304610a9d565b60405161031191906151e9565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c91906147e9565b610aae565b005b34801561034f57600080fd5b5061036a60048036038101906103659190614856565b610c59565b6040516103779190614f35565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a2919061478f565b610d32565b005b3480156103b557600080fd5b506103be610e22565b6040516103cb91906151e9565b60405180910390f35b3480156103e057600080fd5b506103e9610e32565b6040516103f69190615295565b60405180910390f35b34801561040b57600080fd5b506104266004803603810190610421919061478f565b610e3b565b6040516104339190614f35565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e91906147e9565b610e91565b005b34801561047157600080fd5b5061048c600480360381019061048791906149d6565b610f81565b005b34801561049a57600080fd5b506104b560048036038101906104b09190614a30565b611033565b005b3480156104c357600080fd5b506104de60048036038101906104d991906147e9565b6110e1565b005b3480156104ec57600080fd5b506104f561128c565b005b34801561050357600080fd5b5061051e6004803603810190610519919061478f565b611332565b60405161052b91906151e9565b60405180910390f35b34801561054057600080fd5b50610549611383565b005b34801561055757600080fd5b50610572600480360381019061056d919061478f565b6114d6565b60405161057f9190614f35565b60405180910390f35b34801561059457600080fd5b506105af60048036038101906105aa9190614a30565b61152c565b005b3480156105bd57600080fd5b506105c661160f565b6040516105d39190614e67565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190614a30565b611638565b005b34801561061157600080fd5b5061062c60048036038101906106279190614a30565b61172c565b005b34801561063a57600080fd5b5061064361180f565b6040516106509190614f87565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b91906148a9565b61184c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906147e9565b611980565b005b3480156106b757600080fd5b506106d260048036038101906106cd91906148e9565b611b2b565b6040516106df9190614f35565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a9190614929565b611b49565b005b34801561071d57600080fd5b50610738600480360381019061073391906149d6565b611d83565b005b34801561074657600080fd5b5061074f611e35565b005b34801561075d57600080fd5b5061077860048036038101906107739190614a30565b611ee3565b005b34801561078657600080fd5b5061078f611fc6565b005b34801561079d57600080fd5b506107b860048036038101906107b391906147e9565b61255e565b005b3480156107c657600080fd5b506107e160048036038101906107dc9190614976565b61264e565b005b3480156107ef57600080fd5b506107f8612788565b60405161080591906151e9565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190614816565b6127ba565b60405161084291906151e9565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d91906149d6565b612841565b005b34801561088057600080fd5b5061089b6004803603810190610896919061478f565b6128f3565b6040516108a89190614f35565b60405180910390f35b60606040518060400160405280601381526020017f53747564656e74204174686c65746520496e7500000000000000000000000000815250905090565b60006109026108fb612949565b8484612951565b6001905092915050565b610914612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099890615109565b60405180910390fd5b60148111156109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc906150c9565b60405180910390fd5b8060108190555050565b6109f7612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b90615109565b60405180910390fd5b633b9aca0081610a949190615397565b600a8190555050565b6000683635c9adc5dea00000905090565b610ab6612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90615109565b60405180910390fd5b600060056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610c66848484612b1c565b610d2784610c72612949565b610d2285604051806060016040528060288152602001615ae460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cd8612949565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134909092919063ffffffff16565b612951565b600190509392505050565b610d3a612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90615109565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610e2d30611332565b905090565b60006009905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e99612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90615109565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f89612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90615109565b60405180910390fd5b80601960156101000a81548160ff02191690831515021790555050565b61103b612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90615109565b60405180910390fd5b633b9aca00816110d89190615397565b600f8190555050565b6110e9612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90615109565b60405180910390fd5b600060056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611294612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890615109565b60405180910390fd5b600047905061132f816134f4565b50565b600061137c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613718565b9050919050565b61138b612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90615109565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611534612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890615109565b60405180910390fd5b6014811115611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc906150a9565b60405180910390fd5b8060118190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611640612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490615109565b60405180910390fd5b6000600d54101580156116e357506064600d5411155b611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990615089565b60405180910390fd5b80600d8190555050565b611734612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890615109565b60405180910390fd5b6014811115611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc90615049565b60405180910390fd5b8060128190555050565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b611854612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d890615109565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990615029565b60405180910390fd5b61197c8282613786565b5050565b611988612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0c90615109565b60405180910390fd5b600060056000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611b3f611b38612949565b8484612b1c565b6001905092915050565b611b51612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590615109565b60405180910390fd5b60005b82829050811015611d7e57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611c3857611c37615578565b5b9050602002016020810190611c4d919061478f565b73ffffffffffffffffffffffffffffffffffffffff1614158015611ce65750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611cb857611cb7615578565b5b9050602002016020810190611ccd919061478f565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611d6b57600160076000858585818110611d0457611d03615578565b5b9050602002016020810190611d19919061478f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611d76906154d1565b915050611be1565b505050565b611d8b612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0f90615109565b60405180910390fd5b80601960176101000a81548160ff02191690831515021790555050565b611e3d612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190615109565b60405180910390fd5b6000611ed530611332565b9050611ee0816137e1565b50565b611eeb612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f90615109565b60405180910390fd5b6005811115611fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb390615069565b60405180910390fd5b80600b8190555050565b611fce612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290615109565b60405180910390fd5b601960149054906101000a900460ff16156120ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a2906151a9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061213b30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612951565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561218157600080fd5b505afa158015612195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b991906147bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561221b57600080fd5b505afa15801561222f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225391906147bc565b6040518363ffffffff1660e01b8152600401612270929190614e82565b602060405180830381600087803b15801561228a57600080fd5b505af115801561229e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c291906147bc565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061234b30611332565b60008061235661160f565b426040518863ffffffff1660e01b815260040161237896959493929190614ed4565b6060604051808303818588803b15801561239157600080fd5b505af11580156123a5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123ca9190614a5d565b505050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161246c929190614eab565b602060405180830381600087803b15801561248657600080fd5b505af115801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be9190614a03565b506001601960146101000a81548160ff02191690831515021790555043600e819055506001601a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612566612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90615109565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612656612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126da90615109565b60405180910390fd5b60005b8383905081101561278257816006600086868581811061270957612708615578565b5b905060200201602081019061271e919061478f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061277a906154d1565b9150506126e6565b50505050565b60006127b5601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611332565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612849612949565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cd90615109565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b890615189565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2890614fe9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b0f91906151e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8390615149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf390614fa9565b60405180910390fd5b60008111612c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3690615129565b60405180910390fd5b612c4761160f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612cb55750612c8561160f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156132e457600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d5e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d6757600080fd5b6005600e54612d769190615310565b4311612f9657601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e285750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612e8a576001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612f95565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612f365750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f94576001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561303e5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561309c57600f548161305084611332565b61305a9190615310565b111561309b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309290615169565b60405180910390fd5b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156131475750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561319d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131fb57601960149054906101000a900460ff166131f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131e8906151c9565b60405180910390fd5b601054600c819055505b600061320630611332565b9050601960189054906101000a900460ff161580156132735750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561328b5750601960149054906101000a900460ff165b156132e257601154600c81905550600a548111156132e157601960169054906101000a900460ff166132bd57600a5490505b6000600d5411156132d6576132d181613a69565b6132e0565b6132df81613bdb565b5b5b5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061338b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806133a25750601960159054906101000a900460ff165b156133ac57600090505b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134505750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561347e57601960179054906101000a900460ff161561347857601254600c8190555061347d565b600090505b5b61348a84848484613c36565b50505050565b60008383111582906134d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134cf9190614f87565b60405180910390fd5b50600083856134e791906153f1565b9050809150509392505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613543600484613c6390919063ffffffff16565b60405161354f90614e52565b60006040518083038185875af1925050503d806000811461358c576040519150601f19603f3d011682016040523d82523d6000602084013e613591565b606091505b505090506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135e4600485613c6390919063ffffffff16565b6040516135f090614e52565b60006040518083038185875af1925050503d806000811461362d576040519150601f19603f3d011682016040523d82523d6000602084013e613632565b606091505b505090506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613685600286613c6390919063ffffffff16565b60405161369190614e52565b60006040518083038185875af1925050503d80600081146136ce576040519150601f19603f3d011682016040523d82523d6000602084013e6136d3565b606091505b505090507f87331ab4876e21cfb9f6c68f69209cc294cb4b26abf5144477d1599bf074221783838360405161370a93929190614f50565b60405180910390a150505050565b600060085482111561375f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161375690614fc9565b60405180910390fd5b6000613769613cad565b905061377e8184613c6390919063ffffffff16565b915050919050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601960186101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613819576138186155a7565b5b6040519080825280602002602001820160405280156138475781602001602082028036833780820191505090505b509050308160008151811061385f5761385e615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561390157600080fd5b505afa158015613915573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061393991906147bc565b8160018151811061394d5761394c615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139b430601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612951565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a18959493929190615204565b600060405180830381600087803b158015613a3257600080fd5b505af1158015613a46573d6000803e3d6000fd5b50505050506000601960186101000a81548160ff02191690831515021790555050565b6001601960186101000a81548160ff0219169083151502179055506000600d546064613a9591906153f1565b90506000613ac16064613ab3600d5486613cd890919063ffffffff16565b613c6390919063ffffffff16565b90506000613ad9600283613c6390919063ffffffff16565b90506000613af08286613d5390919063ffffffff16565b90506000479050613b0082613d9d565b6000613b158247613d5390919063ffffffff16565b90506000613b3f6064613b318985613cd890919063ffffffff16565b613c6390919063ffffffff16565b9050613b4a816134f4565b60008183613b5891906153f1565b9050600086118015613b6a5750600081115b15613bb557613b798682613fef565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858289604051613bac9392919061525e565b60405180910390a15b50505050505050506000601960186101000a81548160ff02191690831515021790555050565b6001601960186101000a81548160ff021916908315150217905550613bff81613d9d565b60004790506000811115613c1757613c16476134f4565b5b506000601960186101000a81548160ff02191690831515021790555050565b80613c4457613c436140e3565b5b613c4f848484614126565b80613c5d57613c5c6142f1565b5b50505050565b6000613ca583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614305565b905092915050565b6000806000613cba614368565b91509150613cd18183613c6390919063ffffffff16565b9250505090565b600080831415613ceb5760009050613d4d565b60008284613cf99190615397565b9050828482613d089190615366565b14613d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d3f906150e9565b60405180910390fd5b809150505b92915050565b6000613d9583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613490565b905092915050565b6000600267ffffffffffffffff811115613dba57613db96155a7565b5b604051908082528060200260200182016040528015613de85781602001602082028036833780820191505090505b5090503081600081518110613e0057613dff615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613ea257600080fd5b505afa158015613eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eda91906147bc565b81600181518110613eee57613eed615578565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f5530601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612951565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fb9959493929190615204565b600060405180830381600087803b158015613fd357600080fd5b505af1158015613fe7573d6000803e3d6000fd5b505050505050565b61401c30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612951565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061406861160f565b426040518863ffffffff1660e01b815260040161408a96959493929190614ed4565b6060604051808303818588803b1580156140a357600080fd5b505af11580156140b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140dc9190614a5d565b5050505050565b6000600b541480156140f757506000600c54145b1561410157614124565b600b54601381905550600c546014819055506000600b819055506000600c819055505b565b600080600080600080614138876143ca565b95509550955095509550955061419686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d5390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061422b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461443290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061427781614490565b614281848361454d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516142de91906151e9565b60405180910390a3505050505050505050565b601354600b81905550601454600c81905550565b6000808311829061434c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143439190614f87565b60405180910390fd5b506000838561435b9190615366565b9050809150509392505050565b600080600060085490506000683635c9adc5dea00000905061439e683635c9adc5dea00000600854613c6390919063ffffffff16565b8210156143bd57600854683635c9adc5dea000009350935050506143c6565b81819350935050505b9091565b60008060008060008060008060006143e78a600b54600c54614587565b92509250925060006143f7613cad565b9050600080600061440a8e87878761461d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846144419190615310565b905083811015614486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161447d90615009565b60405180910390fd5b8091505092915050565b600061449a613cad565b905060006144b18284613cd890919063ffffffff16565b905061450581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461443290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61456282600854613d5390919063ffffffff16565b60088190555061457d8160095461443290919063ffffffff16565b6009819055505050565b6000806000806145b360646145a5888a613cd890919063ffffffff16565b613c6390919063ffffffff16565b905060006145dd60646145cf888b613cd890919063ffffffff16565b613c6390919063ffffffff16565b90506000614606826145f8858c613d5390919063ffffffff16565b613d5390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806146368589613cd890919063ffffffff16565b9050600061464d8689613cd890919063ffffffff16565b905060006146648789613cd890919063ffffffff16565b9050600061468d8261467f8587613d5390919063ffffffff16565b613d5390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506146b581615a87565b92915050565b6000815190506146ca81615a87565b92915050565b6000813590506146df81615a9e565b92915050565b60008083601f8401126146fb576146fa6155db565b5b8235905067ffffffffffffffff811115614718576147176155d6565b5b602083019150836020820283011115614734576147336155e0565b5b9250929050565b60008135905061474a81615ab5565b92915050565b60008151905061475f81615ab5565b92915050565b60008135905061477481615acc565b92915050565b60008151905061478981615acc565b92915050565b6000602082840312156147a5576147a46155ea565b5b60006147b3848285016146a6565b91505092915050565b6000602082840312156147d2576147d16155ea565b5b60006147e0848285016146bb565b91505092915050565b6000602082840312156147ff576147fe6155ea565b5b600061480d848285016146d0565b91505092915050565b6000806040838503121561482d5761482c6155ea565b5b600061483b858286016146a6565b925050602061484c858286016146a6565b9150509250929050565b60008060006060848603121561486f5761486e6155ea565b5b600061487d868287016146a6565b935050602061488e868287016146a6565b925050604061489f86828701614765565b9150509250925092565b600080604083850312156148c0576148bf6155ea565b5b60006148ce858286016146a6565b92505060206148df8582860161473b565b9150509250929050565b60008060408385031215614900576148ff6155ea565b5b600061490e858286016146a6565b925050602061491f85828601614765565b9150509250929050565b600080602083850312156149405761493f6155ea565b5b600083013567ffffffffffffffff81111561495e5761495d6155e5565b5b61496a858286016146e5565b92509250509250929050565b60008060006040848603121561498f5761498e6155ea565b5b600084013567ffffffffffffffff8111156149ad576149ac6155e5565b5b6149b9868287016146e5565b935093505060206149cc8682870161473b565b9150509250925092565b6000602082840312156149ec576149eb6155ea565b5b60006149fa8482850161473b565b91505092915050565b600060208284031215614a1957614a186155ea565b5b6000614a2784828501614750565b91505092915050565b600060208284031215614a4657614a456155ea565b5b6000614a5484828501614765565b91505092915050565b600080600060608486031215614a7657614a756155ea565b5b6000614a848682870161477a565b9350506020614a958682870161477a565b9250506040614aa68682870161477a565b9150509250925092565b6000614abc8383614ac8565b60208301905092915050565b614ad181615425565b82525050565b614ae081615425565b82525050565b6000614af1826152c0565b614afb81856152e3565b9350614b06836152b0565b8060005b83811015614b37578151614b1e8882614ab0565b9750614b29836152d6565b925050600181019050614b0a565b5085935050505092915050565b614b4d81615449565b82525050565b614b5c8161548c565b82525050565b6000614b6d826152cb565b614b7781856152ff565b9350614b8781856020860161549e565b614b90816155ef565b840191505092915050565b6000614ba86023836152ff565b9150614bb382615600565b604082019050919050565b6000614bcb602a836152ff565b9150614bd68261564f565b604082019050919050565b6000614bee6022836152ff565b9150614bf98261569e565b604082019050919050565b6000614c11601b836152ff565b9150614c1c826156ed565b602082019050919050565b6000614c346039836152ff565b9150614c3f82615716565b604082019050919050565b6000614c576021836152ff565b9150614c6282615765565b604082019050919050565b6000614c7a6017836152ff565b9150614c85826157b4565b602082019050919050565b6000614c9d6031836152ff565b9150614ca8826157dd565b604082019050919050565b6000614cc0601d836152ff565b9150614ccb8261582c565b602082019050919050565b6000614ce3601c836152ff565b9150614cee82615855565b602082019050919050565b6000614d066021836152ff565b9150614d118261587e565b604082019050919050565b6000614d296020836152ff565b9150614d34826158cd565b602082019050919050565b6000614d4c6029836152ff565b9150614d57826158f6565b604082019050919050565b6000614d6f6025836152ff565b9150614d7a82615945565b604082019050919050565b6000614d926023836152ff565b9150614d9d82615994565b604082019050919050565b6000614db56000836152f4565b9150614dc0826159e3565b600082019050919050565b6000614dd86024836152ff565b9150614de3826159e6565b604082019050919050565b6000614dfb6017836152ff565b9150614e0682615a35565b602082019050919050565b6000614e1e6018836152ff565b9150614e2982615a5e565b602082019050919050565b614e3d81615475565b82525050565b614e4c8161547f565b82525050565b6000614e5d82614da8565b9150819050919050565b6000602082019050614e7c6000830184614ad7565b92915050565b6000604082019050614e976000830185614ad7565b614ea46020830184614ad7565b9392505050565b6000604082019050614ec06000830185614ad7565b614ecd6020830184614e34565b9392505050565b600060c082019050614ee96000830189614ad7565b614ef66020830188614e34565b614f036040830187614b53565b614f106060830186614b53565b614f1d6080830185614ad7565b614f2a60a0830184614e34565b979650505050505050565b6000602082019050614f4a6000830184614b44565b92915050565b6000606082019050614f656000830186614b44565b614f726020830185614b44565b614f7f6040830184614b44565b949350505050565b60006020820190508181036000830152614fa18184614b62565b905092915050565b60006020820190508181036000830152614fc281614b9b565b9050919050565b60006020820190508181036000830152614fe281614bbe565b9050919050565b6000602082019050818103600083015261500281614be1565b9050919050565b6000602082019050818103600083015261502281614c04565b9050919050565b6000602082019050818103600083015261504281614c27565b9050919050565b6000602082019050818103600083015261506281614c4a565b9050919050565b6000602082019050818103600083015261508281614c6d565b9050919050565b600060208201905081810360008301526150a281614c90565b9050919050565b600060208201905081810360008301526150c281614cb3565b9050919050565b600060208201905081810360008301526150e281614cd6565b9050919050565b6000602082019050818103600083015261510281614cf9565b9050919050565b6000602082019050818103600083015261512281614d1c565b9050919050565b6000602082019050818103600083015261514281614d3f565b9050919050565b6000602082019050818103600083015261516281614d62565b9050919050565b6000602082019050818103600083015261518281614d85565b9050919050565b600060208201905081810360008301526151a281614dcb565b9050919050565b600060208201905081810360008301526151c281614dee565b9050919050565b600060208201905081810360008301526151e281614e11565b9050919050565b60006020820190506151fe6000830184614e34565b92915050565b600060a0820190506152196000830188614e34565b6152266020830187614b53565b81810360408301526152388186614ae6565b90506152476060830185614ad7565b6152546080830184614e34565b9695505050505050565b60006060820190506152736000830186614e34565b6152806020830185614e34565b61528d6040830184614e34565b949350505050565b60006020820190506152aa6000830184614e43565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061531b82615475565b915061532683615475565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561535b5761535a61551a565b5b828201905092915050565b600061537182615475565b915061537c83615475565b92508261538c5761538b615549565b5b828204905092915050565b60006153a282615475565b91506153ad83615475565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153e6576153e561551a565b5b828202905092915050565b60006153fc82615475565b915061540783615475565b92508282101561541a5761541961551a565b5b828203905092915050565b600061543082615455565b9050919050565b600061544282615455565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061549782615475565b9050919050565b60005b838110156154bc5780820151818401526020810190506154a1565b838111156154cb576000848401525b50505050565b60006154dc82615475565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561550f5761550e61551a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f5472616e7366657220666565206d757374206265206c657373207468616e203260008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f6c6971756964697479206665652070657263656e74616765206d75737420626560008201527f206265747765656e203020746f20313030000000000000000000000000000000602082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203230000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20323000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b615a9081615425565b8114615a9b57600080fd5b50565b615aa781615437565b8114615ab257600080fd5b50565b615abe81615449565b8114615ac957600080fd5b50565b615ad581615475565b8114615ae057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d02b4faabe0a06c7940ccc329c764e97007ab0828c241cdd3e6cde11ca1b35bf64736f6c63430008050033

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

000000000000000000000000a26c89c22c93847511cd832bc64271805521ac140000000000000000000000005018ac9c1ec6b2259510758b5e2f5a7e245a7c17000000000000000000000000d5cc1fe5a9d47e116d6abb1479c1d6f32632f784

-----Decoded View---------------
Arg [0] : devWallet (address): 0xa26c89c22C93847511CD832bC64271805521Ac14
Arg [1] : marketingWallet (address): 0x5018aC9C1ec6b2259510758b5e2F5A7e245A7c17
Arg [2] : treasuryWallet (address): 0xD5CC1FE5A9d47E116D6aBB1479c1D6f32632f784

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000a26c89c22c93847511cd832bc64271805521ac14
Arg [1] : 0000000000000000000000005018ac9c1ec6b2259510758b5e2f5a7e245a7c17
Arg [2] : 000000000000000000000000d5cc1fe5a9d47e116d6abb1479c1d6f32632f784


Deployed Bytecode Sourcemap

3858:18689:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6805:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7657:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19879:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20777:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7082:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18518:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7826:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21410:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21945:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6991:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21511:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18944:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19659:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20919:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18286:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21784:153;;;;;;;;;;;;;:::i;:::-;;7185:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:148;;;;;;;;;;;;;:::i;:::-;;19187:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20031:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2723:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20510:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20189:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6896:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22162:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18716:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7331:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21126:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19757:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21612:160;;;;;;;;;;;;;:::i;:::-;;20364:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17470:804;;;;;;;;;;;;;:::i;:::-;;19068:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19307:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22053:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7506:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21028:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19525:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6805:83;6842:13;6875:5;;;;;;;;;;;;;;;;;6868:12;;6805:83;:::o;7657:161::-;7732:4;7749:39;7758:12;:10;:12::i;:::-;7772:7;7781:6;7749:8;:39::i;:::-;7806:4;7799:11;;7657:161;;;;:::o;19879:144::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19956:2:::1;19949:3;:9;;19941:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;20012:3;20002:7;:13;;;;19879:144:::0;:::o;20777:134::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20898:5:::1;20887:8;:16;;;;:::i;:::-;20861:23;:42;;;;20777:134:::0;:::o;7082:95::-;7135:7;4371:12;7155:14;;7082:95;:::o;18518:190::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18627:5:::1;18594:18;:30;18613:10;;;;;;;;;;;18594:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18656:3;18643:10;;:16;;;;;;;;;;;;;;;;;;18696:4;18670:18;:23;18689:3;18670:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;18518:190:::0;:::o;7826:313::-;7924:4;7941:36;7951:6;7959:9;7970:6;7941:9;:36::i;:::-;7988:121;7997:6;8005:12;:10;:12::i;:::-;8019:89;8057:6;8019:89;;;;;;;;;;;;;;;;;:11;:19;8031:6;8019:19;;;;;;;;;;;;;;;:33;8039:12;:10;:12::i;:::-;8019:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7988:8;:121::i;:::-;8127:4;8120:11;;7826:313;;;;;:::o;21410:89::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21486:5:::1;21470;:13;21476:6;21470:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;21410:89:::0;:::o;21945:100::-;21989:4;22013:24;22031:4;22013:9;:24::i;:::-;22006:31;;21945:100;:::o;6991:83::-;7032:5;4692:1;7050:16;;6991:83;:::o;21511:89::-;21559:4;21583:5;:9;21589:2;21583:9;;;;;;;;;;;;;;;;;;;;;;;;;21576:16;;21511:89;;;:::o;18944:112::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19044:4:::1;19019:18;:22;19038:2;19019:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18944:112:::0;:::o;19659:90::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19736:5:::1;19723:10;;:18;;;;;;;;;;;;;;;;;;19659:90:::0;:::o;20919:101::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21007:5:::1;21001:3;:11;;;;:::i;:::-;20984:14;:28;;;;20919:101:::0;:::o;18286:224::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18411:5:::1;18372:18;:36;18391:16;;;;;;;;;;;18372:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;18446:9;18427:16;;:28;;;;;;;;;;;;;;;;;;18498:4;18466:18;:29;18485:9;18466:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18286:224:::0;:::o;21784:153::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21836:26:::1;21865:21;21836:50;;21897:32;21910:18;21897:12;:32::i;:::-;21825:112;21784:153::o:0;7185:138::-;7251:7;7278:37;7298:7;:16;7306:7;7298:16;;;;;;;;;;;;;;;;7278:19;:37::i;:::-;7271:44;;7185:138;;;:::o;2937:148::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3044:1:::1;3007:40;;3028:6;::::0;::::1;;;;;;;;3007:40;;;;;;;;;;;;3075:1;3058:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2937:148::o:0;19187:112::-;19245:4;19269:18;:22;19288:2;19269:22;;;;;;;;;;;;;;;;;;;;;;;;;19262:29;;19187:112;;;:::o;20031:150::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20111:2:::1;20103:4;:10;;20095:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20169:4;20158:8;:15;;;;20031:150:::0;:::o;2723:79::-;2761:7;2788:6;;;;;;;;;;;2781:13;;2723:79;:::o;20510:259::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20623:1:::1;20596:23;;:28;;:62;;;;;20655:3;20628:23;;:30;;20596:62;20588:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;20749:12;20723:23;:38;;;;20510:259:::0;:::o;20189:159::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20271:2:::1;20264:3;:9;;20256:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;20337:3;20322:12;:18;;;;20189:159:::0;:::o;6896:87::-;6935:13;6968:7;;;;;;;;;;;;;;;;;6961:14;;6896:87;:::o;22162:244::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22271:13:::1;;;;;;;;;;;22263:21;;:4;:21;;;;22255:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;22357:41;22386:4;22392:5;22357:28;:41::i;:::-;22162:244:::0;;:::o;18716:220::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18840:5:::1;18802:18;:35;18821:15;;;;;;;;;;;18802:35;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;18874:8;18856:15;;:26;;;;;;;;;;;;;;;;;;18924:4;18893:18;:28;18912:8;18893:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18716:220:::0;:::o;7331:167::-;7409:4;7426:42;7436:12;:10;:12::i;:::-;7450:9;7461:6;7426:9;:42::i;:::-;7486:4;7479:11;;7331:167;;;;:::o;21126:272::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21202:6:::1;21197:194;21218:5;;:12;;21214:1;:16;21197:194;;;21268:13;;;;;;;;;;;21256:25;;:5;;21262:1;21256:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:25;;;;:65;;;;;21305:15;;;;;;;;;;;21285:36;;:5;;21291:1;21285:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:36;;;;21256:65;21252:128;;;21360:4;21342:5;:15;21348:5;;21354:1;21348:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21342:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;21252:128;21232:3;;;;;:::i;:::-;;;;21197:194;;;;21126:272:::0;;:::o;19757:110::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19854:5:::1;19831:20;;:28;;;;;;;;;;;;;;;;;;19757:110:::0;:::o;21612:160::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21664:23:::1;21690:24;21708:4;21690:9;:24::i;:::-;21664:50;;21725:39;21748:15;21725:22;:39::i;:::-;21653:119;21612:160::o:0;20364:138::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20441:1:::1;20434:3;:8;;20426:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20491:3;20481:7;:13;;;;20364:138:::0;:::o;17470:804::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17534:11:::1;;;;;;;;;;;17533:12;17525:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17583:35;17640:42;17583:100;;17712:16;17694:15;;:34;;;;;;;;;;;;;;;;;;17739:58;17756:4;17771:15;;;;;;;;;;;4371:12;17739:8;:58::i;:::-;17842:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17824:56;;;17889:4;17896:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17824:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17808:13;;:112;;;;;;;;;;;;;;;;;;17931:15;;;;;;;;;;;:31;;;17970:21;18001:4;18007:24;18025:4;18007:9;:24::i;:::-;18032:1;18034::::0;18036:7:::1;:5;:7::i;:::-;18044:15;17931:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18078:13;;;;;;;;;;;18071:29;;;18109:15;;;;;;;;;;;18127:14;18071:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18167:4;18153:11;;:18;;;;;;;;;;;;;;;;;;18196:12;18182:11;:26;;;;18262:4;18219:25;:40;18245:13;;;;;;;;;;;18219:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;17514:760;17470:804::o:0;19068:111::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19166:5:::1;19141:18;:22;19160:2;19141:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;19068:111:::0;:::o;19307:206::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19406:6:::1;19401:105;19422:3;;:10;;19418:1;:14;19401:105;;;19489:5;19454:24;:32;19479:3;;19483:1;19479:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19454:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;19434:3;;;;;:::i;:::-;;;;19401:105;;;;19307:206:::0;;;:::o;22053:101::-;22098:4;22122:24;22132:13;;;;;;;;;;;22122:9;:24::i;:::-;22115:31;;22053:101;:::o;7506:143::-;7587:7;7614:11;:18;7626:5;7614:18;;;;;;;;;;;;;;;:27;7633:7;7614:27;;;;;;;;;;;;;;;;7607:34;;7506:143;;;;:::o;21028:86::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21101:5:::1;21090:8;;:16;;;;;;;;;;;;;;;;;;21028:86:::0;:::o;19525:122::-;19587:4;19611:24;:28;19636:2;19611:28;;;;;;;;;;;;;;;;;;;;;;;;;19604:35;;19525:122;;;:::o;132:98::-;185:7;212:10;205:17;;132:98;:::o;8754:335::-;8864:1;8847:19;;:5;:19;;;;8839:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8945:1;8926:21;;:7;:21;;;;8918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9027:6;8997:11;:18;9009:5;8997:18;;;;;;;;;;;;;;;:27;9016:7;8997:27;;;;;;;;;;;;;;;:36;;;;9065:7;9049:32;;9058:5;9049:32;;;9074:6;9049:32;;;;;;:::i;:::-;;;;;;;;8754:335;;;:::o;9101:2351::-;9205:1;9189:18;;:4;:18;;;;9181:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9282:1;9268:16;;:2;:16;;;;9260:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9352:1;9343:6;:10;9335:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9423:7;:5;:7::i;:::-;9415:15;;:4;:15;;;;:32;;;;;9440:7;:5;:7::i;:::-;9434:13;;:2;:13;;;;9415:32;9412:1572;;;9487:5;:11;9493:4;9487:11;;;;;;;;;;;;;;;;;;;;;;;;;9486:12;:26;;;;;9503:5;:9;9509:2;9503:9;;;;;;;;;;;;;;;;;;;;;;;;;9502:10;9486:26;9478:35;;;;;;9564:1;9550:11;;:15;;;;:::i;:::-;9534:12;:31;9530:319;;9598:13;;;;;;;;;;;9590:21;;:4;:21;;;;:57;;;;;9631:15;;;;;;;;;;;9615:32;;:4;:32;;;;9590:57;9586:248;;;9686:4;9672:5;:11;9678:4;9672:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;9586:248;;;9726:13;;;;;;;;;;;9720:19;;:2;:19;;;;:53;;;;;9757:15;;;;;;;;;;;9743:30;;:2;:30;;;;9720:53;9716:118;;;9810:4;9798:5;:9;9804:2;9798:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;9716:118;9586:248;9530:319;9874:13;;;;;;;;;;;9868:19;;:2;:19;;;;:52;;;;;9892:24;:28;9917:2;9892:28;;;;;;;;;;;;;;;;;;;;;;;;;9891:29;9868:52;9865:189;;;9984:14;;9974:6;9949:22;9967:2;9949:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;9941:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;9865:189;10093:13;;;;;;;;;;;10085:21;;:4;:21;;;:55;;;;;10124:15;;;;;;;;;;;10110:30;;:2;:30;;;;10085:55;:82;;;;;10145:18;:22;10164:2;10145:22;;;;;;;;;;;;;;;;;;;;;;;;;10144:23;10085:82;10082:207;;;10196:11;;;;;;;;;;;10188:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10266:7;;10255:8;:18;;;;10082:207;10303:28;10334:24;10352:4;10334:9;:24::i;:::-;10303:55;;10379:6;;;;;;;;;;;10378:7;:32;;;;;10397:13;;;;;;;;;;;10389:21;;:4;:21;;;;10378:32;:47;;;;;10414:11;;;;;;;;;;;10378:47;10375:598;;;10459:8;;10448;:19;;;;10514:23;;10491:20;:46;10488:470;;;10566:8;;;;;;;;;;;10562:111;;10626:23;;10603:46;;10562:111;10727:1;10701:23;;:27;10697:217;;;10757:36;10772:20;10757:14;:36::i;:::-;10697:217;;;10850:40;10869:20;10850:18;:40::i;:::-;10697:217;10488:470;10375:598;9449:1535;9412:1572;10994:12;11009:4;10994:19;;11029:18;:24;11048:4;11029:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11057:18;:22;11076:2;11057:22;;;;;;;;;;;;;;;;;;;;;;;;;11029:50;:64;;;;11083:10;;;;;;;;;;;11029:64;11026:111;;;11120:5;11110:15;;11026:111;11153:25;:31;11179:4;11153:31;;;;;;;;;;;;;;;;;;;;;;;;;11152:32;:66;;;;;11189:25;:29;11215:2;11189:29;;;;;;;;;;;;;;;;;;;;;;;;;11188:30;11152:66;11149:237;;;11239:20;;;;;;;;;;;11235:140;;;11291:12;;11280:8;:23;;;;11235:140;;;11354:5;11344:15;;11235:140;11149:237;11406:38;11421:4;11426:2;11429:6;11436:7;11406:14;:38::i;:::-;9170:2282;9101:2351;;;:::o;1269:190::-;1355:7;1388:1;1383;:6;;1391:12;1375:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1415:9;1431:1;1427;:5;;;;:::i;:::-;1415:17;;1450:1;1443:8;;;1269:190;;;;;:::o;14256:329::-;14314:8;14328:10;;;;;;;;;;;:15;;14351:13;14362:1;14351:6;:10;;:13;;;;:::i;:::-;14328:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14313:56;;;14381:14;14401:16;;;;;;;;;;;:21;;14430:13;14441:1;14430:6;:10;;:13;;;;:::i;:::-;14401:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14380:68;;;14460:13;14479:15;;;;;;;;;;;:20;;14507:13;14518:1;14507:6;:10;;:13;;;;:::i;:::-;14479:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14459:66;;;14543:34;14552:3;14557:9;14568:8;14543:34;;;;;;;;:::i;:::-;;;;;;;;14302:283;;;14256:329;:::o;8147:254::-;8214:7;8253;;8242;:18;;8234:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8318:19;8341:10;:8;:10::i;:::-;8318:33;;8369:24;8381:11;8369:7;:11;;:24;;;;:::i;:::-;8362:31;;;8147:254;;;:::o;22414:130::-;22531:5;22497:25;:31;22523:4;22497:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22414:130;;:::o;13751:489::-;5861:4;5852:6;;:13;;;;;;;;;;;;;;;;;;13835:21:::1;13873:1;13859:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13835:40;;13904:4;13886;13891:1;13886:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13930:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13920:4;13925:1;13920:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13963:62;13980:4;13995:15;;;;;;;;;;;14013:11;13963:8;:62::i;:::-;14036:15;;;;;;;;;;;:66;;;14117:11;14143:1;14159:4;14186;14206:15;14036:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13824:416;5897:5:::0;5888:6;;:14;;;;;;;;;;;;;;;;;;13751:489;:::o;11981:968::-;5861:4;5852:6;;:13;;;;;;;;;;;;;;;;;;12066:25:::1;12100:23;;12094:3;:29;;;;:::i;:::-;12066:57;;12134:23;12160:58;12214:3;12160:49;12185:23;;12160:20;:24;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;12134:84;;12229:15;12247:22;12267:1;12247:15;:19;;:22;;;;:::i;:::-;12229:40;;12282:26;12311:33;12336:7;12311:20;:24;;:33;;;;:::i;:::-;12282:62;;12355:25;12383:21;12355:49;;12417:36;12434:18;12417:16;:36::i;:::-;12466:18;12487:44;12513:17;12487:21;:25;;:44;;;;:::i;:::-;12466:65;;12544:18;12565:42;12603:3;12565:33;12580:17;12565:10;:14;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;12544:63;;12618:24;12631:10;12618:12;:24::i;:::-;12655:23;12694:10;12681;:23;;;;:::i;:::-;12655:49;;12731:1;12721:7;:11;:34;;;;;12754:1;12736:15;:19;12721:34;12717:225;;;12802:38;12815:7;12824:15;12802:12;:38::i;:::-;12862:68;12877:18;12897:15;12914;12862:68;;;;;;;;:::i;:::-;;;;;;;;12717:225;12055:894;;;;;;;;5897:5:::0;5888:6;;:14;;;;;;;;;;;;;;;;;;11981:968;:::o;12957:307::-;5861:4;5852:6;;:13;;;;;;;;;;;;;;;;;;13056:38:::1;13073:20;13056:16;:38::i;:::-;13107:26;13136:21;13107:50;;13192:1;13171:18;:22;13168:89;;;13210:35;13223:21;13210:12;:35::i;:::-;13168:89;13035:229;5897:5:::0;5888:6;;:14;;;;;;;;;;;;;;;;;;12957:307;:::o;14597:263::-;14709:7;14705:40;;14731:14;:12;:14::i;:::-;14705:40;14756:44;14774:6;14782:9;14793:6;14756:17;:44::i;:::-;14815:7;14811:41;;14837:15;:13;:15::i;:::-;14811:41;14597:263;;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;16201:163::-;16242:7;16263:15;16280;16299:19;:17;:19::i;:::-;16262:56;;;;16336:20;16348:7;16336;:11;;:20;;;;:::i;:::-;16329:27;;;;16201:163;:::o;1467:245::-;1525:7;1553:1;1548;:6;1545:46;;;1578:1;1571:8;;;;1545:46;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1467:245;;;;;:::o;1125:136::-;1183:7;1210:43;1214:1;1217;1210:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1203:50;;1125:136;;;;:::o;13272:471::-;13338:21;13376:1;13362:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13338:40;;13407:4;13389;13394:1;13389:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13433:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13423:4;13428:1;13423:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13466:62;13483:4;13498:15;;;;;;;;;;;13516:11;13466:8;:62::i;:::-;13539:15;;;;;;;;;;;:66;;;13620:11;13646:1;13662:4;13689;13709:15;13539:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13327:416;13272:471;:::o;11460:513::-;11608:62;11625:4;11640:15;;;;;;;;;;;11658:11;11608:8;:62::i;:::-;11713:15;;;;;;;;;;;:31;;;11752:9;11785:4;11805:11;11831:1;11874;11917:7;:5;:7::i;:::-;11939:15;11713:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11460:513;;:::o;8409:210::-;8466:1;8455:7;;:12;:29;;;;;8483:1;8471:8;;:13;8455:29;8452:41;;;8486:7;;8452:41;8521:7;;8503:15;:25;;;;8558:8;;8539:16;:27;;;;8587:1;8577:7;:11;;;;8610:1;8599:8;:12;;;;8409:210;:::o;14868:490::-;14967:15;14984:23;15009:12;15023:23;15048:12;15062:13;15079:19;15090:7;15079:10;:19::i;:::-;14966:132;;;;;;;;;;;;15127:28;15147:7;15127;:15;15135:6;15127:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15109:7;:15;15117:6;15109:15;;;;;;;;;;;;;;;:46;;;;15187:39;15210:15;15187:7;:18;15195:9;15187:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15166:7;:18;15174:9;15166:18;;;;;;;;;;;;;;;:60;;;;15240:16;15250:5;15240:9;:16::i;:::-;15267:23;15279:4;15285;15267:11;:23::i;:::-;15323:9;15306:44;;15315:6;15306:44;;;15334:15;15306:44;;;;;;:::i;:::-;;;;;;;;14955:403;;;;;;14868:490;;;:::o;8631:115::-;8685:15;;8675:7;:25;;;;8722:16;;8711:8;:27;;;;8631:115::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;16372:255::-;16422:7;16431;16451:15;16469:7;;16451:25;;16487:15;4371:12;16487:25;;16536:20;4371:12;16536:7;;:11;;:20;;;;:::i;:::-;16526:7;:30;16523:60;;;16566:7;;4371:12;16558:25;;;;;;;;16523:60;16602:7;16611;16594:25;;;;;;16372:255;;;:::o;15366:468::-;15425:7;15434;15443;15452;15461;15470;15491:23;15516:12;15530:13;15547:39;15559:7;15568;;15577:8;;15547:11;:39::i;:::-;15490:96;;;;;;15597:19;15620:10;:8;:10::i;:::-;15597:33;;15642:15;15659:23;15684:12;15700:46;15712:7;15721:4;15727:5;15734:11;15700;:46::i;:::-;15641:105;;;;;;15765:7;15774:15;15791:4;15797:15;15814:4;15820:5;15757:69;;;;;;;;;;;;;;;;;;;15366:468;;;;;;;:::o;938:179::-;996:7;1016:9;1032:1;1028;:5;;;;:::i;:::-;1016:17;;1057:1;1052;:6;;1044:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;938:179;;;;:::o;17052:214::-;17105:19;17128:10;:8;:10::i;:::-;17105:33;;17149:13;17165:22;17175:11;17165:5;:9;;:22;;;;:::i;:::-;17149:38;;17225:33;17252:5;17225:7;:22;17241:4;17225:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17200:7;:22;17216:4;17200:22;;;;;;;;;;;;;;;:58;;;;17094:172;;17052:214;:::o;17274:147::-;17352:17;17364:4;17352:7;;:11;;:17;;;;:::i;:::-;17342:7;:27;;;;17393:20;17408:4;17393:10;;:14;;:20;;;;:::i;:::-;17380:10;:33;;;;17274:147;;:::o;15842:351::-;15935:7;15944;15953;15973:12;15988:28;16012:3;15988:19;16000:6;15988:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15973:43;;16027:13;16043:29;16068:3;16043:20;16055:7;16043;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;16027:45;;16083:23;16109:28;16131:5;16109:17;16121:4;16109:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16083:54;;16156:15;16173:4;16179:5;16148:37;;;;;;;;;15842:351;;;;;;;:::o;16635:409::-;16745:7;16754;16763;16783:15;16801:24;16813:11;16801:7;:11;;:24;;;;:::i;:::-;16783:42;;16836:12;16851:21;16860:11;16851:4;:8;;:21;;;;:::i;:::-;16836:36;;16883:13;16899:22;16909:11;16899:5;:9;;:22;;;;:::i;:::-;16883:38;;16932:23;16958:28;16980:5;16958:17;16970:4;16958:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16932:54;;17005:7;17014:15;17031:4;16997:39;;;;;;;;;;16635:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;479:568::-;552:8;562:6;612:3;605:4;597:6;593:17;589:27;579:2;;620:79;;:::i;:::-;579:2;733:6;720:20;710:30;;763:18;755:6;752:30;749:2;;;785:79;;:::i;:::-;749:2;899:4;891:6;887:17;875:29;;953:3;945:4;937:6;933:17;923:8;919:32;916:41;913:2;;;960:79;;:::i;:::-;913:2;569:478;;;;;:::o;1053:133::-;1096:5;1134:6;1121:20;1112:29;;1150:30;1174:5;1150:30;:::i;:::-;1102:84;;;;:::o;1192:137::-;1246:5;1277:6;1271:13;1262:22;;1293:30;1317:5;1293:30;:::i;:::-;1252:77;;;;:::o;1335:139::-;1381:5;1419:6;1406:20;1397:29;;1435:33;1462:5;1435:33;:::i;:::-;1387:87;;;;:::o;1480:143::-;1537:5;1568:6;1562:13;1553:22;;1584:33;1611:5;1584:33;:::i;:::-;1543:80;;;;:::o;1629:329::-;1688:6;1737:2;1725:9;1716:7;1712:23;1708:32;1705:2;;;1743:79;;:::i;:::-;1705:2;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1695:263;;;;:::o;1964:351::-;2034:6;2083:2;2071:9;2062:7;2058:23;2054:32;2051:2;;;2089:79;;:::i;:::-;2051:2;2209:1;2234:64;2290:7;2281:6;2270:9;2266:22;2234:64;:::i;:::-;2224:74;;2180:128;2041:274;;;;:::o;2321:345::-;2388:6;2437:2;2425:9;2416:7;2412:23;2408:32;2405:2;;;2443:79;;:::i;:::-;2405:2;2563:1;2588:61;2641:7;2632:6;2621:9;2617:22;2588:61;:::i;:::-;2578:71;;2534:125;2395:271;;;;:::o;2672:474::-;2740:6;2748;2797:2;2785:9;2776:7;2772:23;2768:32;2765:2;;;2803:79;;:::i;:::-;2765:2;2923:1;2948:53;2993:7;2984:6;2973:9;2969:22;2948:53;:::i;:::-;2938:63;;2894:117;3050:2;3076:53;3121:7;3112:6;3101:9;3097:22;3076:53;:::i;:::-;3066:63;;3021:118;2755:391;;;;;:::o;3152:619::-;3229:6;3237;3245;3294:2;3282:9;3273:7;3269:23;3265:32;3262:2;;;3300:79;;:::i;:::-;3262:2;3420:1;3445:53;3490:7;3481:6;3470:9;3466:22;3445:53;:::i;:::-;3435:63;;3391:117;3547:2;3573:53;3618:7;3609:6;3598:9;3594:22;3573:53;:::i;:::-;3563:63;;3518:118;3675:2;3701:53;3746:7;3737:6;3726:9;3722:22;3701:53;:::i;:::-;3691:63;;3646:118;3252:519;;;;;:::o;3777:468::-;3842:6;3850;3899:2;3887:9;3878:7;3874:23;3870:32;3867:2;;;3905:79;;:::i;:::-;3867:2;4025:1;4050:53;4095:7;4086:6;4075:9;4071:22;4050:53;:::i;:::-;4040:63;;3996:117;4152:2;4178:50;4220:7;4211:6;4200:9;4196:22;4178:50;:::i;:::-;4168:60;;4123:115;3857:388;;;;;:::o;4251:474::-;4319:6;4327;4376:2;4364:9;4355:7;4351:23;4347:32;4344:2;;;4382:79;;:::i;:::-;4344:2;4502:1;4527:53;4572:7;4563:6;4552:9;4548:22;4527:53;:::i;:::-;4517:63;;4473:117;4629:2;4655:53;4700:7;4691:6;4680:9;4676:22;4655:53;:::i;:::-;4645:63;;4600:118;4334:391;;;;;:::o;4731:559::-;4817:6;4825;4874:2;4862:9;4853:7;4849:23;4845:32;4842:2;;;4880:79;;:::i;:::-;4842:2;5028:1;5017:9;5013:17;5000:31;5058:18;5050:6;5047:30;5044:2;;;5080:79;;:::i;:::-;5044:2;5193:80;5265:7;5256:6;5245:9;5241:22;5193:80;:::i;:::-;5175:98;;;;4971:312;4832:458;;;;;:::o;5296:698::-;5388:6;5396;5404;5453:2;5441:9;5432:7;5428:23;5424:32;5421:2;;;5459:79;;:::i;:::-;5421:2;5607:1;5596:9;5592:17;5579:31;5637:18;5629:6;5626:30;5623:2;;;5659:79;;:::i;:::-;5623:2;5772:80;5844:7;5835:6;5824:9;5820:22;5772:80;:::i;:::-;5754:98;;;;5550:312;5901:2;5927:50;5969:7;5960:6;5949:9;5945:22;5927:50;:::i;:::-;5917:60;;5872:115;5411:583;;;;;:::o;6000:323::-;6056:6;6105:2;6093:9;6084:7;6080:23;6076:32;6073:2;;;6111:79;;:::i;:::-;6073:2;6231:1;6256:50;6298:7;6289:6;6278:9;6274:22;6256:50;:::i;:::-;6246:60;;6202:114;6063:260;;;;:::o;6329:345::-;6396:6;6445:2;6433:9;6424:7;6420:23;6416:32;6413:2;;;6451:79;;:::i;:::-;6413:2;6571:1;6596:61;6649:7;6640:6;6629:9;6625:22;6596:61;:::i;:::-;6586:71;;6542:125;6403:271;;;;:::o;6680:329::-;6739:6;6788:2;6776:9;6767:7;6763:23;6759:32;6756:2;;;6794:79;;:::i;:::-;6756:2;6914:1;6939:53;6984:7;6975:6;6964:9;6960:22;6939:53;:::i;:::-;6929:63;;6885:117;6746:263;;;;:::o;7015:663::-;7103:6;7111;7119;7168:2;7156:9;7147:7;7143:23;7139:32;7136:2;;;7174:79;;:::i;:::-;7136:2;7294:1;7319:64;7375:7;7366:6;7355:9;7351:22;7319:64;:::i;:::-;7309:74;;7265:128;7432:2;7458:64;7514:7;7505:6;7494:9;7490:22;7458:64;:::i;:::-;7448:74;;7403:129;7571:2;7597:64;7653:7;7644:6;7633:9;7629:22;7597:64;:::i;:::-;7587:74;;7542:129;7126:552;;;;;:::o;7684:179::-;7753:10;7774:46;7816:3;7808:6;7774:46;:::i;:::-;7852:4;7847:3;7843:14;7829:28;;7764:99;;;;:::o;7869:108::-;7946:24;7964:5;7946:24;:::i;:::-;7941:3;7934:37;7924:53;;:::o;7983:118::-;8070:24;8088:5;8070:24;:::i;:::-;8065:3;8058:37;8048:53;;:::o;8137:732::-;8256:3;8285:54;8333:5;8285:54;:::i;:::-;8355:86;8434:6;8429:3;8355:86;:::i;:::-;8348:93;;8465:56;8515:5;8465:56;:::i;:::-;8544:7;8575:1;8560:284;8585:6;8582:1;8579:13;8560:284;;;8661:6;8655:13;8688:63;8747:3;8732:13;8688:63;:::i;:::-;8681:70;;8774:60;8827:6;8774:60;:::i;:::-;8764:70;;8620:224;8607:1;8604;8600:9;8595:14;;8560:284;;;8564:14;8860:3;8853:10;;8261:608;;;;;;;:::o;8875:109::-;8956:21;8971:5;8956:21;:::i;:::-;8951:3;8944:34;8934:50;;:::o;8990:147::-;9085:45;9124:5;9085:45;:::i;:::-;9080:3;9073:58;9063:74;;:::o;9143:364::-;9231:3;9259:39;9292:5;9259:39;:::i;:::-;9314:71;9378:6;9373:3;9314:71;:::i;:::-;9307:78;;9394:52;9439:6;9434:3;9427:4;9420:5;9416:16;9394:52;:::i;:::-;9471:29;9493:6;9471:29;:::i;:::-;9466:3;9462:39;9455:46;;9235:272;;;;;:::o;9513:366::-;9655:3;9676:67;9740:2;9735:3;9676:67;:::i;:::-;9669:74;;9752:93;9841:3;9752:93;:::i;:::-;9870:2;9865:3;9861:12;9854:19;;9659:220;;;:::o;9885:366::-;10027:3;10048:67;10112:2;10107:3;10048:67;:::i;:::-;10041:74;;10124:93;10213:3;10124:93;:::i;:::-;10242:2;10237:3;10233:12;10226:19;;10031:220;;;:::o;10257:366::-;10399:3;10420:67;10484:2;10479:3;10420:67;:::i;:::-;10413:74;;10496:93;10585:3;10496:93;:::i;:::-;10614:2;10609:3;10605:12;10598:19;;10403:220;;;:::o;10629:366::-;10771:3;10792:67;10856:2;10851:3;10792:67;:::i;:::-;10785:74;;10868:93;10957:3;10868:93;:::i;:::-;10986:2;10981:3;10977:12;10970:19;;10775:220;;;:::o;11001:366::-;11143:3;11164:67;11228:2;11223:3;11164:67;:::i;:::-;11157:74;;11240:93;11329:3;11240:93;:::i;:::-;11358:2;11353:3;11349:12;11342:19;;11147:220;;;:::o;11373:366::-;11515:3;11536:67;11600:2;11595:3;11536:67;:::i;:::-;11529:74;;11612:93;11701:3;11612:93;:::i;:::-;11730:2;11725:3;11721:12;11714:19;;11519:220;;;:::o;11745:366::-;11887:3;11908:67;11972:2;11967:3;11908:67;:::i;:::-;11901:74;;11984:93;12073:3;11984:93;:::i;:::-;12102:2;12097:3;12093:12;12086:19;;11891:220;;;:::o;12117:366::-;12259:3;12280:67;12344:2;12339:3;12280:67;:::i;:::-;12273:74;;12356:93;12445:3;12356:93;:::i;:::-;12474:2;12469:3;12465:12;12458:19;;12263:220;;;:::o;12489:366::-;12631:3;12652:67;12716:2;12711:3;12652:67;:::i;:::-;12645:74;;12728:93;12817:3;12728:93;:::i;:::-;12846:2;12841:3;12837:12;12830:19;;12635:220;;;:::o;12861:366::-;13003:3;13024:67;13088:2;13083:3;13024:67;:::i;:::-;13017:74;;13100:93;13189:3;13100:93;:::i;:::-;13218:2;13213:3;13209:12;13202:19;;13007:220;;;:::o;13233:366::-;13375:3;13396:67;13460:2;13455:3;13396:67;:::i;:::-;13389:74;;13472:93;13561:3;13472:93;:::i;:::-;13590:2;13585:3;13581:12;13574:19;;13379:220;;;:::o;13605:366::-;13747:3;13768:67;13832:2;13827:3;13768:67;:::i;:::-;13761:74;;13844:93;13933:3;13844:93;:::i;:::-;13962:2;13957:3;13953:12;13946:19;;13751:220;;;:::o;13977:366::-;14119:3;14140:67;14204:2;14199:3;14140:67;:::i;:::-;14133:74;;14216:93;14305:3;14216:93;:::i;:::-;14334:2;14329:3;14325:12;14318:19;;14123:220;;;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14495:220;;;:::o;14721:366::-;14863:3;14884:67;14948:2;14943:3;14884:67;:::i;:::-;14877:74;;14960:93;15049:3;14960:93;:::i;:::-;15078:2;15073:3;15069:12;15062:19;;14867:220;;;:::o;15093:398::-;15252:3;15273:83;15354:1;15349:3;15273:83;:::i;:::-;15266:90;;15365:93;15454:3;15365:93;:::i;:::-;15483:1;15478:3;15474:11;15467:18;;15256:235;;;:::o;15497:366::-;15639:3;15660:67;15724:2;15719:3;15660:67;:::i;:::-;15653:74;;15736:93;15825:3;15736:93;:::i;:::-;15854:2;15849:3;15845:12;15838:19;;15643:220;;;:::o;15869:366::-;16011:3;16032:67;16096:2;16091:3;16032:67;:::i;:::-;16025:74;;16108:93;16197:3;16108:93;:::i;:::-;16226:2;16221:3;16217:12;16210:19;;16015:220;;;:::o;16241:366::-;16383:3;16404:67;16468:2;16463:3;16404:67;:::i;:::-;16397:74;;16480:93;16569:3;16480:93;:::i;:::-;16598:2;16593:3;16589:12;16582:19;;16387:220;;;:::o;16613:118::-;16700:24;16718:5;16700:24;:::i;:::-;16695:3;16688:37;16678:53;;:::o;16737:112::-;16820:22;16836:5;16820:22;:::i;:::-;16815:3;16808:35;16798:51;;:::o;16855:379::-;17039:3;17061:147;17204:3;17061:147;:::i;:::-;17054:154;;17225:3;17218:10;;17043:191;;;:::o;17240:222::-;17333:4;17371:2;17360:9;17356:18;17348:26;;17384:71;17452:1;17441:9;17437:17;17428:6;17384:71;:::i;:::-;17338:124;;;;:::o;17468:332::-;17589:4;17627:2;17616:9;17612:18;17604:26;;17640:71;17708:1;17697:9;17693:17;17684:6;17640:71;:::i;:::-;17721:72;17789:2;17778:9;17774:18;17765:6;17721:72;:::i;:::-;17594:206;;;;;:::o;17806:332::-;17927:4;17965:2;17954:9;17950:18;17942:26;;17978:71;18046:1;18035:9;18031:17;18022:6;17978:71;:::i;:::-;18059:72;18127:2;18116:9;18112:18;18103:6;18059:72;:::i;:::-;17932:206;;;;;:::o;18144:807::-;18393:4;18431:3;18420:9;18416:19;18408:27;;18445:71;18513:1;18502:9;18498:17;18489:6;18445:71;:::i;:::-;18526:72;18594:2;18583:9;18579:18;18570:6;18526:72;:::i;:::-;18608:80;18684:2;18673:9;18669:18;18660:6;18608:80;:::i;:::-;18698;18774:2;18763:9;18759:18;18750:6;18698:80;:::i;:::-;18788:73;18856:3;18845:9;18841:19;18832:6;18788:73;:::i;:::-;18871;18939:3;18928:9;18924:19;18915:6;18871:73;:::i;:::-;18398:553;;;;;;;;;:::o;18957:210::-;19044:4;19082:2;19071:9;19067:18;19059:26;;19095:65;19157:1;19146:9;19142:17;19133:6;19095:65;:::i;:::-;19049:118;;;;:::o;19173:406::-;19304:4;19342:2;19331:9;19327:18;19319:26;;19355:65;19417:1;19406:9;19402:17;19393:6;19355:65;:::i;:::-;19430:66;19492:2;19481:9;19477:18;19468:6;19430:66;:::i;:::-;19506;19568:2;19557:9;19553:18;19544:6;19506:66;:::i;:::-;19309:270;;;;;;:::o;19585:313::-;19698:4;19736:2;19725:9;19721:18;19713:26;;19785:9;19779:4;19775:20;19771:1;19760:9;19756:17;19749:47;19813:78;19886:4;19877:6;19813:78;:::i;:::-;19805:86;;19703:195;;;;:::o;19904:419::-;20070:4;20108:2;20097:9;20093:18;20085:26;;20157:9;20151:4;20147:20;20143:1;20132:9;20128:17;20121:47;20185:131;20311:4;20185:131;:::i;:::-;20177:139;;20075:248;;;:::o;20329:419::-;20495:4;20533:2;20522:9;20518:18;20510:26;;20582:9;20576:4;20572:20;20568:1;20557:9;20553:17;20546:47;20610:131;20736:4;20610:131;:::i;:::-;20602:139;;20500:248;;;:::o;20754:419::-;20920:4;20958:2;20947:9;20943:18;20935:26;;21007:9;21001:4;20997:20;20993:1;20982:9;20978:17;20971:47;21035:131;21161:4;21035:131;:::i;:::-;21027:139;;20925:248;;;:::o;21179:419::-;21345:4;21383:2;21372:9;21368:18;21360:26;;21432:9;21426:4;21422:20;21418:1;21407:9;21403:17;21396:47;21460:131;21586:4;21460:131;:::i;:::-;21452:139;;21350:248;;;:::o;21604:419::-;21770:4;21808:2;21797:9;21793:18;21785:26;;21857:9;21851:4;21847:20;21843:1;21832:9;21828:17;21821:47;21885:131;22011:4;21885:131;:::i;:::-;21877:139;;21775:248;;;:::o;22029:419::-;22195:4;22233:2;22222:9;22218:18;22210:26;;22282:9;22276:4;22272:20;22268:1;22257:9;22253:17;22246:47;22310:131;22436:4;22310:131;:::i;:::-;22302:139;;22200:248;;;:::o;22454:419::-;22620:4;22658:2;22647:9;22643:18;22635:26;;22707:9;22701:4;22697:20;22693:1;22682:9;22678:17;22671:47;22735:131;22861:4;22735:131;:::i;:::-;22727:139;;22625:248;;;:::o;22879:419::-;23045:4;23083:2;23072:9;23068:18;23060:26;;23132:9;23126:4;23122:20;23118:1;23107:9;23103:17;23096:47;23160:131;23286:4;23160:131;:::i;:::-;23152:139;;23050:248;;;:::o;23304:419::-;23470:4;23508:2;23497:9;23493:18;23485:26;;23557:9;23551:4;23547:20;23543:1;23532:9;23528:17;23521:47;23585:131;23711:4;23585:131;:::i;:::-;23577:139;;23475:248;;;:::o;23729:419::-;23895:4;23933:2;23922:9;23918:18;23910:26;;23982:9;23976:4;23972:20;23968:1;23957:9;23953:17;23946:47;24010:131;24136:4;24010:131;:::i;:::-;24002:139;;23900:248;;;:::o;24154:419::-;24320:4;24358:2;24347:9;24343:18;24335:26;;24407:9;24401:4;24397:20;24393:1;24382:9;24378:17;24371:47;24435:131;24561:4;24435:131;:::i;:::-;24427:139;;24325:248;;;:::o;24579:419::-;24745:4;24783:2;24772:9;24768:18;24760:26;;24832:9;24826:4;24822:20;24818:1;24807:9;24803:17;24796:47;24860:131;24986:4;24860:131;:::i;:::-;24852:139;;24750:248;;;:::o;25004:419::-;25170:4;25208:2;25197:9;25193:18;25185:26;;25257:9;25251:4;25247:20;25243:1;25232:9;25228:17;25221:47;25285:131;25411:4;25285:131;:::i;:::-;25277:139;;25175:248;;;:::o;25429:419::-;25595:4;25633:2;25622:9;25618:18;25610:26;;25682:9;25676:4;25672:20;25668:1;25657:9;25653:17;25646:47;25710:131;25836:4;25710:131;:::i;:::-;25702:139;;25600:248;;;:::o;25854:419::-;26020:4;26058:2;26047:9;26043:18;26035:26;;26107:9;26101:4;26097:20;26093:1;26082:9;26078:17;26071:47;26135:131;26261:4;26135:131;:::i;:::-;26127:139;;26025:248;;;:::o;26279:419::-;26445:4;26483:2;26472:9;26468:18;26460:26;;26532:9;26526:4;26522:20;26518:1;26507:9;26503:17;26496:47;26560:131;26686:4;26560:131;:::i;:::-;26552:139;;26450:248;;;:::o;26704:419::-;26870:4;26908:2;26897:9;26893:18;26885:26;;26957:9;26951:4;26947:20;26943:1;26932:9;26928:17;26921:47;26985:131;27111:4;26985:131;:::i;:::-;26977:139;;26875:248;;;:::o;27129:419::-;27295:4;27333:2;27322:9;27318:18;27310:26;;27382:9;27376:4;27372:20;27368:1;27357:9;27353:17;27346:47;27410:131;27536:4;27410:131;:::i;:::-;27402:139;;27300:248;;;:::o;27554:222::-;27647:4;27685:2;27674:9;27670:18;27662:26;;27698:71;27766:1;27755:9;27751:17;27742:6;27698:71;:::i;:::-;27652:124;;;;:::o;27782:831::-;28045:4;28083:3;28072:9;28068:19;28060:27;;28097:71;28165:1;28154:9;28150:17;28141:6;28097:71;:::i;:::-;28178:80;28254:2;28243:9;28239:18;28230:6;28178:80;:::i;:::-;28305:9;28299:4;28295:20;28290:2;28279:9;28275:18;28268:48;28333:108;28436:4;28427:6;28333:108;:::i;:::-;28325:116;;28451:72;28519:2;28508:9;28504:18;28495:6;28451:72;:::i;:::-;28533:73;28601:3;28590:9;28586:19;28577:6;28533:73;:::i;:::-;28050:563;;;;;;;;:::o;28619:442::-;28768:4;28806:2;28795:9;28791:18;28783:26;;28819:71;28887:1;28876:9;28872:17;28863:6;28819:71;:::i;:::-;28900:72;28968:2;28957:9;28953:18;28944:6;28900:72;:::i;:::-;28982;29050:2;29039:9;29035:18;29026:6;28982:72;:::i;:::-;28773:288;;;;;;:::o;29067:214::-;29156:4;29194:2;29183:9;29179:18;29171:26;;29207:67;29271:1;29260:9;29256:17;29247:6;29207:67;:::i;:::-;29161:120;;;;:::o;29368:132::-;29435:4;29458:3;29450:11;;29488:4;29483:3;29479:14;29471:22;;29440:60;;;:::o;29506:114::-;29573:6;29607:5;29601:12;29591:22;;29580:40;;;:::o;29626:99::-;29678:6;29712:5;29706:12;29696:22;;29685:40;;;:::o;29731:113::-;29801:4;29833;29828:3;29824:14;29816:22;;29806:38;;;:::o;29850:184::-;29949:11;29983:6;29978:3;29971:19;30023:4;30018:3;30014:14;29999:29;;29961:73;;;;:::o;30040:147::-;30141:11;30178:3;30163:18;;30153:34;;;;:::o;30193:169::-;30277:11;30311:6;30306:3;30299:19;30351:4;30346:3;30342:14;30327:29;;30289:73;;;;:::o;30368:305::-;30408:3;30427:20;30445:1;30427:20;:::i;:::-;30422:25;;30461:20;30479:1;30461:20;:::i;:::-;30456:25;;30615:1;30547:66;30543:74;30540:1;30537:81;30534:2;;;30621:18;;:::i;:::-;30534:2;30665:1;30662;30658:9;30651:16;;30412:261;;;;:::o;30679:185::-;30719:1;30736:20;30754:1;30736:20;:::i;:::-;30731:25;;30770:20;30788:1;30770:20;:::i;:::-;30765:25;;30809:1;30799:2;;30814:18;;:::i;:::-;30799:2;30856:1;30853;30849:9;30844:14;;30721:143;;;;:::o;30870:348::-;30910:7;30933:20;30951:1;30933:20;:::i;:::-;30928:25;;30967:20;30985:1;30967:20;:::i;:::-;30962:25;;31155:1;31087:66;31083:74;31080:1;31077:81;31072:1;31065:9;31058:17;31054:105;31051:2;;;31162:18;;:::i;:::-;31051:2;31210:1;31207;31203:9;31192:20;;30918:300;;;;:::o;31224:191::-;31264:4;31284:20;31302:1;31284:20;:::i;:::-;31279:25;;31318:20;31336:1;31318:20;:::i;:::-;31313:25;;31357:1;31354;31351:8;31348:2;;;31362:18;;:::i;:::-;31348:2;31407:1;31404;31400:9;31392:17;;31269:146;;;;:::o;31421:96::-;31458:7;31487:24;31505:5;31487:24;:::i;:::-;31476:35;;31466:51;;;:::o;31523:104::-;31568:7;31597:24;31615:5;31597:24;:::i;:::-;31586:35;;31576:51;;;:::o;31633:90::-;31667:7;31710:5;31703:13;31696:21;31685:32;;31675:48;;;:::o;31729:126::-;31766:7;31806:42;31799:5;31795:54;31784:65;;31774:81;;;:::o;31861:77::-;31898:7;31927:5;31916:16;;31906:32;;;:::o;31944:86::-;31979:7;32019:4;32012:5;32008:16;31997:27;;31987:43;;;:::o;32036:121::-;32094:9;32127:24;32145:5;32127:24;:::i;:::-;32114:37;;32104:53;;;:::o;32163:307::-;32231:1;32241:113;32255:6;32252:1;32249:13;32241:113;;;32340:1;32335:3;32331:11;32325:18;32321:1;32316:3;32312:11;32305:39;32277:2;32274:1;32270:10;32265:15;;32241:113;;;32372:6;32369:1;32366:13;32363:2;;;32452:1;32443:6;32438:3;32434:16;32427:27;32363:2;32212:258;;;;:::o;32476:233::-;32515:3;32538:24;32556:5;32538:24;:::i;:::-;32529:33;;32584:66;32577:5;32574:77;32571:2;;;32654:18;;:::i;:::-;32571:2;32701:1;32694:5;32690:13;32683:20;;32519:190;;;:::o;32715:180::-;32763:77;32760:1;32753:88;32860:4;32857:1;32850:15;32884:4;32881:1;32874:15;32901:180;32949:77;32946:1;32939:88;33046:4;33043:1;33036:15;33070:4;33067:1;33060:15;33087:180;33135:77;33132:1;33125:88;33232:4;33229:1;33222:15;33256:4;33253:1;33246:15;33273:180;33321:77;33318:1;33311:88;33418:4;33415:1;33408:15;33442:4;33439:1;33432:15;33459:117;33568:1;33565;33558:12;33582:117;33691:1;33688;33681:12;33705:117;33814:1;33811;33804:12;33828:117;33937:1;33934;33927:12;33951:117;34060:1;34057;34050:12;34074:102;34115:6;34166:2;34162:7;34157:2;34150:5;34146:14;34142:28;34132:38;;34122:54;;;:::o;34182:222::-;34322:34;34318:1;34310:6;34306:14;34299:58;34391:5;34386:2;34378:6;34374:15;34367:30;34288:116;:::o;34410:229::-;34550:34;34546:1;34538:6;34534:14;34527:58;34619:12;34614:2;34606:6;34602:15;34595:37;34516:123;:::o;34645:221::-;34785:34;34781:1;34773:6;34769:14;34762:58;34854:4;34849:2;34841:6;34837:15;34830:29;34751:115;:::o;34872:177::-;35012:29;35008:1;35000:6;34996:14;34989:53;34978:71;:::o;35055:244::-;35195:34;35191:1;35183:6;35179:14;35172:58;35264:27;35259:2;35251:6;35247:15;35240:52;35161:138;:::o;35305:220::-;35445:34;35441:1;35433:6;35429:14;35422:58;35514:3;35509:2;35501:6;35497:15;35490:28;35411:114;:::o;35531:173::-;35671:25;35667:1;35659:6;35655:14;35648:49;35637:67;:::o;35710:236::-;35850:34;35846:1;35838:6;35834:14;35827:58;35919:19;35914:2;35906:6;35902:15;35895:44;35816:130;:::o;35952:179::-;36092:31;36088:1;36080:6;36076:14;36069:55;36058:73;:::o;36137:178::-;36277:30;36273:1;36265:6;36261:14;36254:54;36243:72;:::o;36321:220::-;36461:34;36457:1;36449:6;36445:14;36438:58;36530:3;36525:2;36517:6;36513:15;36506:28;36427:114;:::o;36547:182::-;36687:34;36683:1;36675:6;36671:14;36664:58;36653:76;:::o;36735:228::-;36875:34;36871:1;36863:6;36859:14;36852:58;36944:11;36939:2;36931:6;36927:15;36920:36;36841:122;:::o;36969:224::-;37109:34;37105:1;37097:6;37093:14;37086:58;37178:7;37173:2;37165:6;37161:15;37154:32;37075:118;:::o;37199:222::-;37339:34;37335:1;37327:6;37323:14;37316:58;37408:5;37403:2;37395:6;37391:15;37384:30;37305:116;:::o;37427:114::-;37533:8;:::o;37547:223::-;37687:34;37683:1;37675:6;37671:14;37664:58;37756:6;37751:2;37743:6;37739:15;37732:31;37653:117;:::o;37776:173::-;37916:25;37912:1;37904:6;37900:14;37893:49;37882:67;:::o;37955:174::-;38095:26;38091:1;38083:6;38079:14;38072:50;38061:68;:::o;38135:122::-;38208:24;38226:5;38208:24;:::i;:::-;38201:5;38198:35;38188:2;;38247:1;38244;38237:12;38188:2;38178:79;:::o;38263:138::-;38344:32;38370:5;38344:32;:::i;:::-;38337:5;38334:43;38324:2;;38391:1;38388;38381:12;38324:2;38314:87;:::o;38407:116::-;38477:21;38492:5;38477:21;:::i;:::-;38470:5;38467:32;38457:2;;38513:1;38510;38503:12;38457:2;38447:76;:::o;38529:122::-;38602:24;38620:5;38602:24;:::i;:::-;38595:5;38592:35;38582:2;;38641:1;38638;38631:12;38582:2;38572:79;:::o

Swarm Source

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