ETH Price: $2,381.58 (-0.07%)

Token

FarmuraiCapital (FC)
 

Overview

Max Total Supply

1,000,000,000,000,000 FC

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
26,059,108,540,298.454207197 FC

Value
$0.00
0x5e9da8b30201e682fdde4374ea9656effa827c51
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:
FarmuraiCapital

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-03
*/

/**
Farmurai Capital: $FC

Tokenomics (LAUNCH):
5% of tax goes to existing holders.
10% of tax goes into farming and farming profits goes for buy back.

Tokenomics (AFTER LAUNCH IS COMPLETED):
5% of tax goes to existing holders.
5% of tax goes into farming and farming profits goes for buy back.

Telegram:
https://t.me/farmuraicapital

*/

/** 
   __                                     _ 
  / _|                                   (_)
 | |_ __ _ _ __ _ __ ___  _   _ _ __ __ _ _ 
 |  _/ _` | '__| '_ ` _ \| | | | '__/ _` | |
 | || (_| | |  | | | | | | |_| | | | (_| | |
 |_| \__,_|_|  |_| |_| |_|\__,_|_|  \__,_|_|
                                            
*/

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

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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
}

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract FarmuraiCapital is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "FarmuraiCapital";
    string private constant _symbol = "FC";
    uint8 private constant _decimals = 9;

    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) public _isExcludedMaxTxAmount;
    mapping(address => bool) private _isExcludedFromReflection;
    address[] private _excludedFromReflection;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e3 * 1e9 * 1e9; //1,000,000,000,000,000
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    mapping(address => bool) public bots;
    
   
    uint256 private _reflectionFeeOnBuy = 5;
    uint256 private _taxFeeOnBuy = 10;
    
    
    uint256 private _reflectionFeeOnSell = 5;
    uint256 private _taxFeeOnSell = 10;
    
    //Original Fee
    uint256 private _reflectionFee = _reflectionFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousReflectionFee = _reflectionFee;
    uint256 private _previousTaxFee = _taxFee;
    
    address payable public _mgcAddress = payable(0x6e937840D62ED53Fa6C194bf6c691a5e7f9359B7);
    address payable public _mktgAddress = payable(0x133523921bfd644E69361eF3d97d95431deB0D90);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public tradingActive = false;
    
    uint256 public _maxTxAmount = 5000 * 1e3 * 1e7 * 1e9;
    uint256 public _maxWalletSize = 5000 * 1e3 * 1e7 * 1e9;
    uint256 public _swapTokensAtAmount = 5000 * 1e3 * 1e7 * 1e9;

    event ExcludeFromReflection(address excludedAddress);
    event IncludeInReflection(address includedAddress);

    event ExcludeFromFee(address excludedAddress);
    event IncludeInFee(address includedAddress);

    event UpdatedMktgAddress(address mktg);
    event UpdatedMgcAddress(address mgc);

    event SetBuyFee(uint256 buyMktgFee, uint256 buyReflectionFee);
    event SetSellFee(uint256 sellMktgFee, uint256 sellReflectionFee);
    
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
               
        _rOwned[_msgSender()] = _rTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_mgcAddress] = true;
        _isExcludedFromFee[_mktgAddress] = true;

        excludeFromMaxTxAmount(owner(), true);
        excludeFromMaxTxAmount(address(this), true);
        excludeFromMaxTxAmount(address(_mgcAddress), true);
        excludeFromMaxTxAmount(address(_mktgAddress), 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 excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
        emit ExcludeFromFee(account);
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
        emit IncludeInFee(account);
    }

    function excludeFromReflection(address account) public onlyOwner {
        require(!_isExcludedFromReflection[account], "Account is already excluded");
        require(_excludedFromReflection.length + 1 <= 50, "Cannot exclude more than 50 accounts.  Include a previously excluded address.");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcludedFromReflection[account] = true;
        _excludedFromReflection.push(account);
    }

    function includeInReflection(address account) public onlyOwner {
        require(_isExcludedFromReflection[account], "Account is not excluded from reflection");
        for (uint256 i = 0; i < _excludedFromReflection.length; i++) {
            if (_excludedFromReflection[i] == account) {
                _excludedFromReflection[i] = _excludedFromReflection[_excludedFromReflection.length - 1];
                _tOwned[account] = 0;
                _isExcludedFromReflection[account] = false;
                _excludedFromReflection.pop();
                break;
            }
        }
    }

    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 (_reflectionFee == 0 && _taxFee == 0) return;
    
        _previousReflectionFee = _reflectionFee;
        _previousTaxFee = _taxFee;
        
        _reflectionFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _reflectionFee = _previousReflectionFee;
        _taxFee = _previousTaxFee;
    }

    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()) {
            
            //Trade start check
            if (!tradingActive) 
              
            if(to != uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (!_isExcludedFromFee[from]) {
                        require(amount <= _maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }  

    function swapTokensForEth(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 {
        _mgcAddress.transfer(amount.div(2));
        _mktgAddress.transfer(amount.div(2));
    }

    function manualSwap() external {
        require(_msgSender() == _mgcAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualSend() external {
        require(_msgSender() == _mgcAddress || _msgSender() == _mktgAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    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 _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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _reflectionFee, _taxFee);
        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 reflectionFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(reflectionFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    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 _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 setFee(uint256 reflectionFeeOnBuy, uint256 reflectionFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _reflectionFeeOnBuy = reflectionFeeOnBuy;
        _taxFeeOnBuy = taxFeeOnBuy;
        
        _reflectionFeeOnSell = reflectionFeeOnSell;
        _taxFeeOnSell = taxFeeOnSell;
        
        require(_reflectionFeeOnBuy + _taxFeeOnBuy <= 25, "Must keep buy taxes below 25%"); //wont allow taxes to go above 10%
        require(_reflectionFeeOnSell + _taxFeeOnSell <= 25, "Must keep buy taxes below 25%"); //wont allow taxes to go above 10%
    }

      // once enabled, can never be turned off
    function enableTrading() internal onlyOwner {
        tradingActive = true;        
    }

    function openTrading() external onlyOwner() {
        require(!tradingActive,"trading is already open");
        enableTrading();
        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);
        swapEnabled = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set max transaction
    function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function excludeFromMaxTxAmount(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTxAmount[updAds] = isEx;
    }
    
    //set max wallet
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

     //set wallet address
    function _setMGCAddress(address mgcAddress) external onlyOwner {
        require(_mgcAddress != address(0), "_mgcAddress cannot be 0");
        _isExcludedFromFee[mgcAddress] = false;
        mgcAddress = payable(_mgcAddress);
        _isExcludedFromFee[mgcAddress] = true;
        emit UpdatedMgcAddress(_mgcAddress);
    }

     //set wallet address
    function _setMktgAddress(address mktgAddress) external onlyOwner {
        require(_mktgAddress != address(0), "_mktgAddress cannot be 0");
        _isExcludedFromFee[mktgAddress] = false;
        mktgAddress = payable(_mktgAddress);
        _isExcludedFromFee[mktgAddress] = true;
        emit UpdatedMktgAddress(_mktgAddress);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyReflectionFee","type":"uint256"}],"name":"SetBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellReflectionFee","type":"uint256"}],"name":"SetSellFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mgc","type":"address"}],"name":"UpdatedMgcAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mktg","type":"address"}],"name":"UpdatedMktgAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mgcAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mktgAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mgcAddress","type":"address"}],"name":"_setMGCAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"mktgAddress","type":"address"}],"name":"_setMktgAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReflection","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"reflectionFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"reflectionFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e919062000766565b6000196200002d919062000721565b6009556005600c55600a600d556005600e55600a600f55600e54601055600f54601155601054601255601154601355736e937840d62ed53fa6c194bf6c691a5e7f9359b7601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073133523921bfd644e69361ef3d97d95431deb0d90601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760146101000a81548160ff0219169083151502179055506000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff021916908315150217905550690a968163f0a57b400000601855690a968163f0a57b400000601955690a968163f0a57b400000601a553480156200018e57600080fd5b506000620001a16200056d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060095460026000620002566200056d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002aa6200057560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004696200045b6200057560201b60201c565b60016200059e60201b60201c565b6200047c3060016200059e60201b60201c565b620004b1601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200059e60201b60201c565b620004e6601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200059e60201b60201c565b620004f66200056d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040516200055f9190620006f3565b60405180910390a362000825565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005ae6200056d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200063e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200063590620006d1565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000620006a860208362000710565b9150620006b582620007fc565b602082019050919050565b620006cb816200075c565b82525050565b60006020820190508181036000830152620006ec8162000699565b9050919050565b60006020820190506200070a6000830184620006c0565b92915050565b600082825260208201905092915050565b60006200072e826200075c565b91506200073b836200075c565b9250828210156200075157620007506200079e565b5b828203905092915050565b6000819050919050565b600062000773826200075c565b915062000780836200075c565b925082620007935762000792620007cd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61561680620008356000396000f3fe60806040526004361061021c5760003560e01c80636b99905311610123578063bbc0c742116100ab578063ea1644d51161006f578063ea1644d5146107ca578063ea2f0b37146107f3578063ec28438a1461081c578063f2fde38b14610845578063f42938901461086e57610223565b8063bbc0c742146106e5578063bfd7928414610710578063c9567bf91461074d578063dd62ed3e14610764578063e755d0cf146107a157610223565b80638f9a55c0116100f25780638f9a55c01461060057806395d89b411461062b57806398a5c31514610656578063a2a957bb1461067f578063a9059cbb146106a857610223565b80636b9990531461054457806370a082311461056d5780637d1db4a5146105aa5780638da5cb5b146105d557610223565b806327334a08116101a6578063437823ec11610175578063437823ec1461047357806349bd5a5e1461049c57806351bc3c85146104c7578063563912bd146104de578063595cc84f1461051b57610223565b806327334a08146103cb5780632cf2dd64146103f45780632fd689e31461041d578063313ce5671461044857610223565b8063095ea7b3116101ed578063095ea7b3146102d05780631694505e1461030d57806318160ddd146103385780631b7861ef1461036357806323b872dd1461038e57610223565b806286803414610228578062b8cf2a1461025357806305f82a451461027c57806306fdde03146102a557610223565b3661022357005b600080fd5b34801561023457600080fd5b5061023d610885565b60405161024a91906147d3565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190614243565b6108ab565b005b34801561028857600080fd5b506102a3600480360381019061029e91906140ee565b6109fb565b005b3480156102b157600080fd5b506102ba610de2565b6040516102c791906148d7565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190614207565b610e1f565b60405161030491906148a1565b60405180910390f35b34801561031957600080fd5b50610322610e3d565b60405161032f91906148bc565b60405180910390f35b34801561034457600080fd5b5061034d610e63565b60405161035a9190614b99565b60405180910390f35b34801561036f57600080fd5b50610378610e75565b60405161038591906147d3565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b0919061417c565b610e9b565b6040516103c291906148a1565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906140ee565b610f74565b005b34801561040057600080fd5b5061041b600480360381019061041691906140ee565b61127d565b005b34801561042957600080fd5b506104326114d5565b60405161043f9190614b99565b60405180910390f35b34801561045457600080fd5b5061045d6114db565b60405161046a9190614c0e565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906140ee565b6114e4565b005b3480156104a857600080fd5b506104b161160b565b6040516104be919061479d565b60405180910390f35b3480156104d357600080fd5b506104dc611631565b005b3480156104ea57600080fd5b50610505600480360381019061050091906140ee565b6116ab565b60405161051291906148a1565b60405180910390f35b34801561052757600080fd5b50610542600480360381019061053d91906141cb565b6116cb565b005b34801561055057600080fd5b5061056b600480360381019061056691906140ee565b6117bb565b005b34801561057957600080fd5b50610594600480360381019061058f91906140ee565b6118ab565b6040516105a19190614b99565b60405180910390f35b3480156105b657600080fd5b506105bf6118fc565b6040516105cc9190614b99565b60405180910390f35b3480156105e157600080fd5b506105ea611902565b6040516105f7919061479d565b60405180910390f35b34801561060c57600080fd5b5061061561192b565b6040516106229190614b99565b60405180910390f35b34801561063757600080fd5b50610640611931565b60405161064d91906148d7565b60405180910390f35b34801561066257600080fd5b5061067d600480360381019061067891906142ad565b61196e565b005b34801561068b57600080fd5b506106a660048036038101906106a19190614325565b611a0d565b005b3480156106b457600080fd5b506106cf60048036038101906106ca9190614207565b611b6a565b6040516106dc91906148a1565b60405180910390f35b3480156106f157600080fd5b506106fa611b88565b60405161070791906148a1565b60405180910390f35b34801561071c57600080fd5b50610737600480360381019061073291906140ee565b611b9b565b60405161074491906148a1565b60405180910390f35b34801561075957600080fd5b50610762611bbb565b005b34801561077057600080fd5b5061078b60048036038101906107869190614140565b6120db565b6040516107989190614b99565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c391906140ee565b612162565b005b3480156107d657600080fd5b506107f160048036038101906107ec91906142ad565b6123ba565b005b3480156107ff57600080fd5b5061081a600480360381019061081591906140ee565b612459565b005b34801561082857600080fd5b50610843600480360381019061083e91906142ad565b612580565b005b34801561085157600080fd5b5061086c600480360381019061086791906140ee565b61261f565b005b34801561087a57600080fd5b506108836127e1565b005b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108b36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093790614a59565b60405180910390fd5b60005b81518110156109f7576001600b600084848151811061098b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109ef90614f1b565b915050610943565b5050565b610a036128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790614a59565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390614b19565b60405180910390fd5b60005b600880549050811015610dde578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610dcb5760086001600880549050610bd89190614db0565b81548110610c0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c74577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d91577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610dde565b8080610dd690614f1b565b915050610b1f565b5050565b60606040518060400160405280600f81526020017f4661726d757261694361706974616c0000000000000000000000000000000000815250905090565b6000610e33610e2c6128b2565b84846128ba565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ea8848484612a85565b610f6984610eb46128b2565b610f64856040518060600160405280602881526020016155b960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1a6128b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133349092919063ffffffff16565b6128ba565b600190509392505050565b610f7c6128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100090614a59565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d906149f9565b60405180910390fd5b603260016008805490506110aa9190614ccf565b11156110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290614b39565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111bf5761117b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613398565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112856128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990614a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90614b79565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f74f50aea913687e4cf944d86731818ec3e28eba93a30f2a13561b43134eb843c601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516114ca91906147b8565b60405180910390a150565b601a5481565b60006009905090565b6114ec6128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614a59565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b6281604051611600919061479d565b60405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116726128b2565b73ffffffffffffffffffffffffffffffffffffffff161461169257600080fd5b600061169d306118ab565b90506116a881613406565b50565b60066020528060005260406000206000915054906101000a900460ff1681565b6116d36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175790614a59565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117c36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184790614a59565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006118f5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613398565b9050919050565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600281526020017f4643000000000000000000000000000000000000000000000000000000000000815250905090565b6119766128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90614a59565b60405180910390fd5b80601a8190555050565b611a156128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990614a59565b60405180910390fd5b83600c8190555081600d8190555082600e8190555080600f819055506019600d54600c54611ad09190614ccf565b1115611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890614b59565b60405180910390fd5b6019600f54600e54611b239190614ccf565b1115611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90614b59565b60405180910390fd5b50505050565b6000611b7e611b776128b2565b8484612a85565b6001905092915050565b601760169054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b611bc36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790614a59565b60405180910390fd5b601760169054906101000a900460ff1615611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790614af9565b60405180910390fd5b611ca8613700565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d3930601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda10000006128ba565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7f57600080fd5b505afa158015611d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db79190614117565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1957600080fd5b505afa158015611e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e519190614117565b6040518363ffffffff1660e01b8152600401611e6e9291906147ee565b602060405180830381600087803b158015611e8857600080fd5b505af1158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec09190614117565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611f49306118ab565b600080611f54611902565b426040518863ffffffff1660e01b8152600401611f7696959493929190614840565b6060604051808303818588803b158015611f8f57600080fd5b505af1158015611fa3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fc891906142d6565b5050506001601760156101000a81548160ff021916908315150217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612085929190614817565b602060405180830381600087803b15801561209f57600080fd5b505af11580156120b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d79190614284565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61216a6128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90614a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228090614919565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516123af91906147b8565b60405180910390a150565b6123c26128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461244f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244690614a59565b60405180910390fd5b8060198190555050565b6124616128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e590614a59565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e81604051612575919061479d565b60405180910390a150565b6125886128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90614a59565b60405180910390fd5b8060188190555050565b6126276128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ab90614a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271b90614979565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128226128b2565b73ffffffffffffffffffffffffffffffffffffffff1614806128985750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128806128b2565b73ffffffffffffffffffffffffffffffffffffffff16145b6128a157600080fd5b60004790506128af816137b2565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561292a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292190614ad9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561299a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299190614999565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a789190614b99565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aec90614a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5c906148f9565b60405180910390fd5b60008111612ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9f90614a79565b60405180910390fd5b612bb0611902565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612c1e5750612bee611902565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f9c57601760169054906101000a900460ff16612ebf57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612ce35750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d395750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ebe5760195481612d4b846118ab565b612d559190614ccf565b10612d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8c90614ab9565b60405180910390fd5b601854811115612dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd190614959565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e7e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb4906149b9565b60405180910390fd5b5b5b6000612eca306118ab565b90506000601a5482101590506018548210612ee55760185491505b808015612eff5750601760149054906101000a900460ff16155b8015612f595750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612f715750601760159054906101000a900460ff165b15612f9957612f7f82613406565b60004790506000811115612f9757612f96476137b2565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130435750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806130f65750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156130f55750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156131045760009050613322565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156131af5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156131c757600c54601081905550600d546011819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661325e5760185482111561325d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325490614a19565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156133095750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561332157600e54601081905550600f546011819055505b5b61332e848484846138ad565b50505050565b600083831115829061337c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337391906148d7565b60405180910390fd5b506000838561338b9190614db0565b9050809150509392505050565b60006009548211156133df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d690614939565b60405180910390fd5b60006133e96138da565b90506133fe818461390590919063ffffffff16565b915050919050565b6001601760146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613464577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156134925781602001602082028036833780820191505090505b50905030816000815181106134d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561357257600080fd5b505afa158015613586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135aa9190614117565b816001815181106135e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061364b30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128ba565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136af959493929190614bb4565b600060405180830381600087803b1580156136c957600080fd5b505af11580156136dd573d6000803e3d6000fd5b50505050506000601760146101000a81548160ff02191690831515021790555050565b6137086128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378c90614a59565b60405180910390fd5b6001601760166101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61380260028461390590919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561382d573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61387e60028461390590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156138a9573d6000803e3d6000fd5b5050565b806138bb576138ba61394f565b5b6138c6848484613992565b806138d4576138d3613b5d565b5b50505050565b60008060006138e7613b71565b915091506138fe818361390590919063ffffffff16565b9250505090565b600061394783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd6565b905092915050565b600060105414801561396357506000601154145b1561396d57613990565b601054601281905550601154601381905550600060108190555060006011819055505b565b6000806000806000806139a487613c39565b955095509550955095509550613a0286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ca190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a9785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ceb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ae381613d49565b613aed8483613e06565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613b4a9190614b99565b60405180910390a3505050505050505050565b601254601081905550601354601181905550565b60008060006009549050600069d3c21bcecceda10000009050613ba969d3c21bcecceda100000060095461390590919063ffffffff16565b821015613bc95760095469d3c21bcecceda1000000935093505050613bd2565b81819350935050505b9091565b60008083118290613c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1491906148d7565b60405180910390fd5b5060008385613c2c9190614d25565b9050809150509392505050565b6000806000806000806000806000613c568a601054601154613e40565b9250925092506000613c666138da565b90506000806000613c798e878787613ed6565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613ce383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613334565b905092915050565b6000808284613cfa9190614ccf565b905083811015613d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d36906149d9565b60405180910390fd5b8091505092915050565b6000613d536138da565b90506000613d6a8284613f5f90919063ffffffff16565b9050613dbe81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ceb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613e1b82600954613ca190919063ffffffff16565b600981905550613e3681600a54613ceb90919063ffffffff16565b600a819055505050565b600080600080613e6c6064613e5e888a613f5f90919063ffffffff16565b61390590919063ffffffff16565b90506000613e966064613e88888b613f5f90919063ffffffff16565b61390590919063ffffffff16565b90506000613ebf82613eb1858c613ca190919063ffffffff16565b613ca190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613eef8589613f5f90919063ffffffff16565b90506000613f068689613f5f90919063ffffffff16565b90506000613f1d8789613f5f90919063ffffffff16565b90506000613f4682613f388587613ca190919063ffffffff16565b613ca190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613f725760009050613fd4565b60008284613f809190614d56565b9050828482613f8f9190614d25565b14613fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fc690614a39565b60405180910390fd5b809150505b92915050565b6000613fed613fe884614c4e565b614c29565b9050808382526020820190508285602086028201111561400c57600080fd5b60005b8581101561403c57816140228882614046565b84526020840193506020830192505060018101905061400f565b5050509392505050565b60008135905061405581615573565b92915050565b60008151905061406a81615573565b92915050565b600082601f83011261408157600080fd5b8135614091848260208601613fda565b91505092915050565b6000813590506140a98161558a565b92915050565b6000815190506140be8161558a565b92915050565b6000813590506140d3816155a1565b92915050565b6000815190506140e8816155a1565b92915050565b60006020828403121561410057600080fd5b600061410e84828501614046565b91505092915050565b60006020828403121561412957600080fd5b60006141378482850161405b565b91505092915050565b6000806040838503121561415357600080fd5b600061416185828601614046565b925050602061417285828601614046565b9150509250929050565b60008060006060848603121561419157600080fd5b600061419f86828701614046565b93505060206141b086828701614046565b92505060406141c1868287016140c4565b9150509250925092565b600080604083850312156141de57600080fd5b60006141ec85828601614046565b92505060206141fd8582860161409a565b9150509250929050565b6000806040838503121561421a57600080fd5b600061422885828601614046565b9250506020614239858286016140c4565b9150509250929050565b60006020828403121561425557600080fd5b600082013567ffffffffffffffff81111561426f57600080fd5b61427b84828501614070565b91505092915050565b60006020828403121561429657600080fd5b60006142a4848285016140af565b91505092915050565b6000602082840312156142bf57600080fd5b60006142cd848285016140c4565b91505092915050565b6000806000606084860312156142eb57600080fd5b60006142f9868287016140d9565b935050602061430a868287016140d9565b925050604061431b868287016140d9565b9150509250925092565b6000806000806080858703121561433b57600080fd5b6000614349878288016140c4565b945050602061435a878288016140c4565b935050604061436b878288016140c4565b925050606061437c878288016140c4565b91505092959194509250565b600061439483836143be565b60208301905092915050565b6143a981614e4b565b82525050565b6143b881614df6565b82525050565b6143c781614de4565b82525050565b6143d681614de4565b82525050565b60006143e782614c8a565b6143f18185614cad565b93506143fc83614c7a565b8060005b8381101561442d5781516144148882614388565b975061441f83614ca0565b925050600181019050614400565b5085935050505092915050565b61444381614e08565b82525050565b61445281614e5d565b82525050565b61446181614e81565b82525050565b600061447282614c95565b61447c8185614cbe565b935061448c818560208601614eb7565b61449581614ff1565b840191505092915050565b60006144ad602383614cbe565b91506144b882615002565b604082019050919050565b60006144d0601883614cbe565b91506144db82615051565b602082019050919050565b60006144f3602a83614cbe565b91506144fe8261507a565b604082019050919050565b6000614516601c83614cbe565b9150614521826150c9565b602082019050919050565b6000614539602683614cbe565b9150614544826150f2565b604082019050919050565b600061455c602283614cbe565b915061456782615141565b604082019050919050565b600061457f602383614cbe565b915061458a82615190565b604082019050919050565b60006145a2601b83614cbe565b91506145ad826151df565b602082019050919050565b60006145c5601b83614cbe565b91506145d082615208565b602082019050919050565b60006145e8603683614cbe565b91506145f382615231565b604082019050919050565b600061460b602183614cbe565b915061461682615280565b604082019050919050565b600061462e602083614cbe565b9150614639826152cf565b602082019050919050565b6000614651602983614cbe565b915061465c826152f8565b604082019050919050565b6000614674602583614cbe565b915061467f82615347565b604082019050919050565b6000614697602383614cbe565b91506146a282615396565b604082019050919050565b60006146ba602483614cbe565b91506146c5826153e5565b604082019050919050565b60006146dd601783614cbe565b91506146e882615434565b602082019050919050565b6000614700602783614cbe565b915061470b8261545d565b604082019050919050565b6000614723604d83614cbe565b915061472e826154ac565b606082019050919050565b6000614746601d83614cbe565b915061475182615521565b602082019050919050565b6000614769601783614cbe565b91506147748261554a565b602082019050919050565b61478881614e34565b82525050565b61479781614e3e565b82525050565b60006020820190506147b260008301846143cd565b92915050565b60006020820190506147cd60008301846143a0565b92915050565b60006020820190506147e860008301846143af565b92915050565b600060408201905061480360008301856143cd565b61481060208301846143cd565b9392505050565b600060408201905061482c60008301856143cd565b614839602083018461477f565b9392505050565b600060c08201905061485560008301896143cd565b614862602083018861477f565b61486f6040830187614458565b61487c6060830186614458565b61488960808301856143cd565b61489660a083018461477f565b979650505050505050565b60006020820190506148b6600083018461443a565b92915050565b60006020820190506148d16000830184614449565b92915050565b600060208201905081810360008301526148f18184614467565b905092915050565b60006020820190508181036000830152614912816144a0565b9050919050565b60006020820190508181036000830152614932816144c3565b9050919050565b60006020820190508181036000830152614952816144e6565b9050919050565b6000602082019050818103600083015261497281614509565b9050919050565b600060208201905081810360008301526149928161452c565b9050919050565b600060208201905081810360008301526149b28161454f565b9050919050565b600060208201905081810360008301526149d281614572565b9050919050565b600060208201905081810360008301526149f281614595565b9050919050565b60006020820190508181036000830152614a12816145b8565b9050919050565b60006020820190508181036000830152614a32816145db565b9050919050565b60006020820190508181036000830152614a52816145fe565b9050919050565b60006020820190508181036000830152614a7281614621565b9050919050565b60006020820190508181036000830152614a9281614644565b9050919050565b60006020820190508181036000830152614ab281614667565b9050919050565b60006020820190508181036000830152614ad28161468a565b9050919050565b60006020820190508181036000830152614af2816146ad565b9050919050565b60006020820190508181036000830152614b12816146d0565b9050919050565b60006020820190508181036000830152614b32816146f3565b9050919050565b60006020820190508181036000830152614b5281614716565b9050919050565b60006020820190508181036000830152614b7281614739565b9050919050565b60006020820190508181036000830152614b928161475c565b9050919050565b6000602082019050614bae600083018461477f565b92915050565b600060a082019050614bc9600083018861477f565b614bd66020830187614458565b8181036040830152614be881866143dc565b9050614bf760608301856143cd565b614c04608083018461477f565b9695505050505050565b6000602082019050614c23600083018461478e565b92915050565b6000614c33614c44565b9050614c3f8282614eea565b919050565b6000604051905090565b600067ffffffffffffffff821115614c6957614c68614fc2565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614cda82614e34565b9150614ce583614e34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d1a57614d19614f64565b5b828201905092915050565b6000614d3082614e34565b9150614d3b83614e34565b925082614d4b57614d4a614f93565b5b828204905092915050565b6000614d6182614e34565b9150614d6c83614e34565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614da557614da4614f64565b5b828202905092915050565b6000614dbb82614e34565b9150614dc683614e34565b925082821015614dd957614dd8614f64565b5b828203905092915050565b6000614def82614e14565b9050919050565b6000614e0182614e14565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614e5682614e93565b9050919050565b6000614e6882614e6f565b9050919050565b6000614e7a82614e14565b9050919050565b6000614e8c82614e34565b9050919050565b6000614e9e82614ea5565b9050919050565b6000614eb082614e14565b9050919050565b60005b83811015614ed5578082015181840152602081019050614eba565b83811115614ee4576000848401525b50505050565b614ef382614ff1565b810181811067ffffffffffffffff82111715614f1257614f11614fc2565b5b80604052505050565b6000614f2682614e34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614f5957614f58614f64565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5f6d6b7467416464726573732063616e6e6f7420626520300000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4163636f756e74206973206e6f74206578636c756465642066726f6d2072656660008201527f6c656374696f6e00000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60008201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60208201527f7564656420616464726573732e00000000000000000000000000000000000000604082015250565b7f4d757374206b656570206275792074617865732062656c6f7720323525000000600082015250565b7f5f6d6763416464726573732063616e6e6f742062652030000000000000000000600082015250565b61557c81614de4565b811461558757600080fd5b50565b61559381614e08565b811461559e57600080fd5b50565b6155aa81614e34565b81146155b557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b6ad4c2ccc1f0d1245d75270b41c60f93e11ac0caf2b184e0bd7a38b33abd27f64736f6c63430008040033

Deployed Bytecode

0x60806040526004361061021c5760003560e01c80636b99905311610123578063bbc0c742116100ab578063ea1644d51161006f578063ea1644d5146107ca578063ea2f0b37146107f3578063ec28438a1461081c578063f2fde38b14610845578063f42938901461086e57610223565b8063bbc0c742146106e5578063bfd7928414610710578063c9567bf91461074d578063dd62ed3e14610764578063e755d0cf146107a157610223565b80638f9a55c0116100f25780638f9a55c01461060057806395d89b411461062b57806398a5c31514610656578063a2a957bb1461067f578063a9059cbb146106a857610223565b80636b9990531461054457806370a082311461056d5780637d1db4a5146105aa5780638da5cb5b146105d557610223565b806327334a08116101a6578063437823ec11610175578063437823ec1461047357806349bd5a5e1461049c57806351bc3c85146104c7578063563912bd146104de578063595cc84f1461051b57610223565b806327334a08146103cb5780632cf2dd64146103f45780632fd689e31461041d578063313ce5671461044857610223565b8063095ea7b3116101ed578063095ea7b3146102d05780631694505e1461030d57806318160ddd146103385780631b7861ef1461036357806323b872dd1461038e57610223565b806286803414610228578062b8cf2a1461025357806305f82a451461027c57806306fdde03146102a557610223565b3661022357005b600080fd5b34801561023457600080fd5b5061023d610885565b60405161024a91906147d3565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190614243565b6108ab565b005b34801561028857600080fd5b506102a3600480360381019061029e91906140ee565b6109fb565b005b3480156102b157600080fd5b506102ba610de2565b6040516102c791906148d7565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190614207565b610e1f565b60405161030491906148a1565b60405180910390f35b34801561031957600080fd5b50610322610e3d565b60405161032f91906148bc565b60405180910390f35b34801561034457600080fd5b5061034d610e63565b60405161035a9190614b99565b60405180910390f35b34801561036f57600080fd5b50610378610e75565b60405161038591906147d3565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b0919061417c565b610e9b565b6040516103c291906148a1565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906140ee565b610f74565b005b34801561040057600080fd5b5061041b600480360381019061041691906140ee565b61127d565b005b34801561042957600080fd5b506104326114d5565b60405161043f9190614b99565b60405180910390f35b34801561045457600080fd5b5061045d6114db565b60405161046a9190614c0e565b60405180910390f35b34801561047f57600080fd5b5061049a600480360381019061049591906140ee565b6114e4565b005b3480156104a857600080fd5b506104b161160b565b6040516104be919061479d565b60405180910390f35b3480156104d357600080fd5b506104dc611631565b005b3480156104ea57600080fd5b50610505600480360381019061050091906140ee565b6116ab565b60405161051291906148a1565b60405180910390f35b34801561052757600080fd5b50610542600480360381019061053d91906141cb565b6116cb565b005b34801561055057600080fd5b5061056b600480360381019061056691906140ee565b6117bb565b005b34801561057957600080fd5b50610594600480360381019061058f91906140ee565b6118ab565b6040516105a19190614b99565b60405180910390f35b3480156105b657600080fd5b506105bf6118fc565b6040516105cc9190614b99565b60405180910390f35b3480156105e157600080fd5b506105ea611902565b6040516105f7919061479d565b60405180910390f35b34801561060c57600080fd5b5061061561192b565b6040516106229190614b99565b60405180910390f35b34801561063757600080fd5b50610640611931565b60405161064d91906148d7565b60405180910390f35b34801561066257600080fd5b5061067d600480360381019061067891906142ad565b61196e565b005b34801561068b57600080fd5b506106a660048036038101906106a19190614325565b611a0d565b005b3480156106b457600080fd5b506106cf60048036038101906106ca9190614207565b611b6a565b6040516106dc91906148a1565b60405180910390f35b3480156106f157600080fd5b506106fa611b88565b60405161070791906148a1565b60405180910390f35b34801561071c57600080fd5b50610737600480360381019061073291906140ee565b611b9b565b60405161074491906148a1565b60405180910390f35b34801561075957600080fd5b50610762611bbb565b005b34801561077057600080fd5b5061078b60048036038101906107869190614140565b6120db565b6040516107989190614b99565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c391906140ee565b612162565b005b3480156107d657600080fd5b506107f160048036038101906107ec91906142ad565b6123ba565b005b3480156107ff57600080fd5b5061081a600480360381019061081591906140ee565b612459565b005b34801561082857600080fd5b50610843600480360381019061083e91906142ad565b612580565b005b34801561085157600080fd5b5061086c600480360381019061086791906140ee565b61261f565b005b34801561087a57600080fd5b506108836127e1565b005b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108b36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093790614a59565b60405180910390fd5b60005b81518110156109f7576001600b600084848151811061098b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109ef90614f1b565b915050610943565b5050565b610a036128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790614a59565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390614b19565b60405180910390fd5b60005b600880549050811015610dde578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610dcb5760086001600880549050610bd89190614db0565b81548110610c0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610c74577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480610d91577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610dde565b8080610dd690614f1b565b915050610b1f565b5050565b60606040518060400160405280600f81526020017f4661726d757261694361706974616c0000000000000000000000000000000000815250905090565b6000610e33610e2c6128b2565b84846128ba565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ea8848484612a85565b610f6984610eb46128b2565b610f64856040518060600160405280602881526020016155b960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f1a6128b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133349092919063ffffffff16565b6128ba565b600190509392505050565b610f7c6128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100090614a59565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d906149f9565b60405180910390fd5b603260016008805490506110aa9190614ccf565b11156110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290614b39565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111bf5761117b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613398565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112856128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990614a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90614b79565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f74f50aea913687e4cf944d86731818ec3e28eba93a30f2a13561b43134eb843c601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516114ca91906147b8565b60405180910390a150565b601a5481565b60006009905090565b6114ec6128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157090614a59565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b6281604051611600919061479d565b60405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116726128b2565b73ffffffffffffffffffffffffffffffffffffffff161461169257600080fd5b600061169d306118ab565b90506116a881613406565b50565b60066020528060005260406000206000915054906101000a900460ff1681565b6116d36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175790614a59565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117c36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184790614a59565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006118f5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613398565b9050919050565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606040518060400160405280600281526020017f4643000000000000000000000000000000000000000000000000000000000000815250905090565b6119766128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90614a59565b60405180910390fd5b80601a8190555050565b611a156128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990614a59565b60405180910390fd5b83600c8190555081600d8190555082600e8190555080600f819055506019600d54600c54611ad09190614ccf565b1115611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890614b59565b60405180910390fd5b6019600f54600e54611b239190614ccf565b1115611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90614b59565b60405180910390fd5b50505050565b6000611b7e611b776128b2565b8484612a85565b6001905092915050565b601760169054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b611bc36128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790614a59565b60405180910390fd5b601760169054906101000a900460ff1615611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790614af9565b60405180910390fd5b611ca8613700565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d3930601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda10000006128ba565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7f57600080fd5b505afa158015611d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db79190614117565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1957600080fd5b505afa158015611e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e519190614117565b6040518363ffffffff1660e01b8152600401611e6e9291906147ee565b602060405180830381600087803b158015611e8857600080fd5b505af1158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec09190614117565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611f49306118ab565b600080611f54611902565b426040518863ffffffff1660e01b8152600401611f7696959493929190614840565b6060604051808303818588803b158015611f8f57600080fd5b505af1158015611fa3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fc891906142d6565b5050506001601760156101000a81548160ff021916908315150217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612085929190614817565b602060405180830381600087803b15801561209f57600080fd5b505af11580156120b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d79190614284565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61216a6128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee90614a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228090614919565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516123af91906147b8565b60405180910390a150565b6123c26128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461244f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244690614a59565b60405180910390fd5b8060198190555050565b6124616128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e590614a59565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e81604051612575919061479d565b60405180910390a150565b6125886128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c90614a59565b60405180910390fd5b8060188190555050565b6126276128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ab90614a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271b90614979565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128226128b2565b73ffffffffffffffffffffffffffffffffffffffff1614806128985750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128806128b2565b73ffffffffffffffffffffffffffffffffffffffff16145b6128a157600080fd5b60004790506128af816137b2565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561292a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292190614ad9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561299a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299190614999565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a789190614b99565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aec90614a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5c906148f9565b60405180910390fd5b60008111612ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9f90614a79565b60405180910390fd5b612bb0611902565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612c1e5750612bee611902565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612f9c57601760169054906101000a900460ff16612ebf57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612ce35750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d395750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ebe5760195481612d4b846118ab565b612d559190614ccf565b10612d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8c90614ab9565b60405180910390fd5b601854811115612dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd190614959565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e7e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb4906149b9565b60405180910390fd5b5b5b6000612eca306118ab565b90506000601a5482101590506018548210612ee55760185491505b808015612eff5750601760149054906101000a900460ff16155b8015612f595750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612f715750601760159054906101000a900460ff165b15612f9957612f7f82613406565b60004790506000811115612f9757612f96476137b2565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130435750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806130f65750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156130f55750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156131045760009050613322565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156131af5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156131c757600c54601081905550600d546011819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661325e5760185482111561325d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325490614a19565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156133095750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561332157600e54601081905550600f546011819055505b5b61332e848484846138ad565b50505050565b600083831115829061337c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337391906148d7565b60405180910390fd5b506000838561338b9190614db0565b9050809150509392505050565b60006009548211156133df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d690614939565b60405180910390fd5b60006133e96138da565b90506133fe818461390590919063ffffffff16565b915050919050565b6001601760146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613464577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156134925781602001602082028036833780820191505090505b50905030816000815181106134d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561357257600080fd5b505afa158015613586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135aa9190614117565b816001815181106135e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061364b30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128ba565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136af959493929190614bb4565b600060405180830381600087803b1580156136c957600080fd5b505af11580156136dd573d6000803e3d6000fd5b50505050506000601760146101000a81548160ff02191690831515021790555050565b6137086128b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378c90614a59565b60405180910390fd5b6001601760166101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61380260028461390590919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561382d573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61387e60028461390590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156138a9573d6000803e3d6000fd5b5050565b806138bb576138ba61394f565b5b6138c6848484613992565b806138d4576138d3613b5d565b5b50505050565b60008060006138e7613b71565b915091506138fe818361390590919063ffffffff16565b9250505090565b600061394783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd6565b905092915050565b600060105414801561396357506000601154145b1561396d57613990565b601054601281905550601154601381905550600060108190555060006011819055505b565b6000806000806000806139a487613c39565b955095509550955095509550613a0286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ca190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a9785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ceb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ae381613d49565b613aed8483613e06565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613b4a9190614b99565b60405180910390a3505050505050505050565b601254601081905550601354601181905550565b60008060006009549050600069d3c21bcecceda10000009050613ba969d3c21bcecceda100000060095461390590919063ffffffff16565b821015613bc95760095469d3c21bcecceda1000000935093505050613bd2565b81819350935050505b9091565b60008083118290613c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1491906148d7565b60405180910390fd5b5060008385613c2c9190614d25565b9050809150509392505050565b6000806000806000806000806000613c568a601054601154613e40565b9250925092506000613c666138da565b90506000806000613c798e878787613ed6565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613ce383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613334565b905092915050565b6000808284613cfa9190614ccf565b905083811015613d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d36906149d9565b60405180910390fd5b8091505092915050565b6000613d536138da565b90506000613d6a8284613f5f90919063ffffffff16565b9050613dbe81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ceb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613e1b82600954613ca190919063ffffffff16565b600981905550613e3681600a54613ceb90919063ffffffff16565b600a819055505050565b600080600080613e6c6064613e5e888a613f5f90919063ffffffff16565b61390590919063ffffffff16565b90506000613e966064613e88888b613f5f90919063ffffffff16565b61390590919063ffffffff16565b90506000613ebf82613eb1858c613ca190919063ffffffff16565b613ca190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613eef8589613f5f90919063ffffffff16565b90506000613f068689613f5f90919063ffffffff16565b90506000613f1d8789613f5f90919063ffffffff16565b90506000613f4682613f388587613ca190919063ffffffff16565b613ca190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415613f725760009050613fd4565b60008284613f809190614d56565b9050828482613f8f9190614d25565b14613fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fc690614a39565b60405180910390fd5b809150505b92915050565b6000613fed613fe884614c4e565b614c29565b9050808382526020820190508285602086028201111561400c57600080fd5b60005b8581101561403c57816140228882614046565b84526020840193506020830192505060018101905061400f565b5050509392505050565b60008135905061405581615573565b92915050565b60008151905061406a81615573565b92915050565b600082601f83011261408157600080fd5b8135614091848260208601613fda565b91505092915050565b6000813590506140a98161558a565b92915050565b6000815190506140be8161558a565b92915050565b6000813590506140d3816155a1565b92915050565b6000815190506140e8816155a1565b92915050565b60006020828403121561410057600080fd5b600061410e84828501614046565b91505092915050565b60006020828403121561412957600080fd5b60006141378482850161405b565b91505092915050565b6000806040838503121561415357600080fd5b600061416185828601614046565b925050602061417285828601614046565b9150509250929050565b60008060006060848603121561419157600080fd5b600061419f86828701614046565b93505060206141b086828701614046565b92505060406141c1868287016140c4565b9150509250925092565b600080604083850312156141de57600080fd5b60006141ec85828601614046565b92505060206141fd8582860161409a565b9150509250929050565b6000806040838503121561421a57600080fd5b600061422885828601614046565b9250506020614239858286016140c4565b9150509250929050565b60006020828403121561425557600080fd5b600082013567ffffffffffffffff81111561426f57600080fd5b61427b84828501614070565b91505092915050565b60006020828403121561429657600080fd5b60006142a4848285016140af565b91505092915050565b6000602082840312156142bf57600080fd5b60006142cd848285016140c4565b91505092915050565b6000806000606084860312156142eb57600080fd5b60006142f9868287016140d9565b935050602061430a868287016140d9565b925050604061431b868287016140d9565b9150509250925092565b6000806000806080858703121561433b57600080fd5b6000614349878288016140c4565b945050602061435a878288016140c4565b935050604061436b878288016140c4565b925050606061437c878288016140c4565b91505092959194509250565b600061439483836143be565b60208301905092915050565b6143a981614e4b565b82525050565b6143b881614df6565b82525050565b6143c781614de4565b82525050565b6143d681614de4565b82525050565b60006143e782614c8a565b6143f18185614cad565b93506143fc83614c7a565b8060005b8381101561442d5781516144148882614388565b975061441f83614ca0565b925050600181019050614400565b5085935050505092915050565b61444381614e08565b82525050565b61445281614e5d565b82525050565b61446181614e81565b82525050565b600061447282614c95565b61447c8185614cbe565b935061448c818560208601614eb7565b61449581614ff1565b840191505092915050565b60006144ad602383614cbe565b91506144b882615002565b604082019050919050565b60006144d0601883614cbe565b91506144db82615051565b602082019050919050565b60006144f3602a83614cbe565b91506144fe8261507a565b604082019050919050565b6000614516601c83614cbe565b9150614521826150c9565b602082019050919050565b6000614539602683614cbe565b9150614544826150f2565b604082019050919050565b600061455c602283614cbe565b915061456782615141565b604082019050919050565b600061457f602383614cbe565b915061458a82615190565b604082019050919050565b60006145a2601b83614cbe565b91506145ad826151df565b602082019050919050565b60006145c5601b83614cbe565b91506145d082615208565b602082019050919050565b60006145e8603683614cbe565b91506145f382615231565b604082019050919050565b600061460b602183614cbe565b915061461682615280565b604082019050919050565b600061462e602083614cbe565b9150614639826152cf565b602082019050919050565b6000614651602983614cbe565b915061465c826152f8565b604082019050919050565b6000614674602583614cbe565b915061467f82615347565b604082019050919050565b6000614697602383614cbe565b91506146a282615396565b604082019050919050565b60006146ba602483614cbe565b91506146c5826153e5565b604082019050919050565b60006146dd601783614cbe565b91506146e882615434565b602082019050919050565b6000614700602783614cbe565b915061470b8261545d565b604082019050919050565b6000614723604d83614cbe565b915061472e826154ac565b606082019050919050565b6000614746601d83614cbe565b915061475182615521565b602082019050919050565b6000614769601783614cbe565b91506147748261554a565b602082019050919050565b61478881614e34565b82525050565b61479781614e3e565b82525050565b60006020820190506147b260008301846143cd565b92915050565b60006020820190506147cd60008301846143a0565b92915050565b60006020820190506147e860008301846143af565b92915050565b600060408201905061480360008301856143cd565b61481060208301846143cd565b9392505050565b600060408201905061482c60008301856143cd565b614839602083018461477f565b9392505050565b600060c08201905061485560008301896143cd565b614862602083018861477f565b61486f6040830187614458565b61487c6060830186614458565b61488960808301856143cd565b61489660a083018461477f565b979650505050505050565b60006020820190506148b6600083018461443a565b92915050565b60006020820190506148d16000830184614449565b92915050565b600060208201905081810360008301526148f18184614467565b905092915050565b60006020820190508181036000830152614912816144a0565b9050919050565b60006020820190508181036000830152614932816144c3565b9050919050565b60006020820190508181036000830152614952816144e6565b9050919050565b6000602082019050818103600083015261497281614509565b9050919050565b600060208201905081810360008301526149928161452c565b9050919050565b600060208201905081810360008301526149b28161454f565b9050919050565b600060208201905081810360008301526149d281614572565b9050919050565b600060208201905081810360008301526149f281614595565b9050919050565b60006020820190508181036000830152614a12816145b8565b9050919050565b60006020820190508181036000830152614a32816145db565b9050919050565b60006020820190508181036000830152614a52816145fe565b9050919050565b60006020820190508181036000830152614a7281614621565b9050919050565b60006020820190508181036000830152614a9281614644565b9050919050565b60006020820190508181036000830152614ab281614667565b9050919050565b60006020820190508181036000830152614ad28161468a565b9050919050565b60006020820190508181036000830152614af2816146ad565b9050919050565b60006020820190508181036000830152614b12816146d0565b9050919050565b60006020820190508181036000830152614b32816146f3565b9050919050565b60006020820190508181036000830152614b5281614716565b9050919050565b60006020820190508181036000830152614b7281614739565b9050919050565b60006020820190508181036000830152614b928161475c565b9050919050565b6000602082019050614bae600083018461477f565b92915050565b600060a082019050614bc9600083018861477f565b614bd66020830187614458565b8181036040830152614be881866143dc565b9050614bf760608301856143cd565b614c04608083018461477f565b9695505050505050565b6000602082019050614c23600083018461478e565b92915050565b6000614c33614c44565b9050614c3f8282614eea565b919050565b6000604051905090565b600067ffffffffffffffff821115614c6957614c68614fc2565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614cda82614e34565b9150614ce583614e34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d1a57614d19614f64565b5b828201905092915050565b6000614d3082614e34565b9150614d3b83614e34565b925082614d4b57614d4a614f93565b5b828204905092915050565b6000614d6182614e34565b9150614d6c83614e34565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614da557614da4614f64565b5b828202905092915050565b6000614dbb82614e34565b9150614dc683614e34565b925082821015614dd957614dd8614f64565b5b828203905092915050565b6000614def82614e14565b9050919050565b6000614e0182614e14565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614e5682614e93565b9050919050565b6000614e6882614e6f565b9050919050565b6000614e7a82614e14565b9050919050565b6000614e8c82614e34565b9050919050565b6000614e9e82614ea5565b9050919050565b6000614eb082614e14565b9050919050565b60005b83811015614ed5578082015181840152602081019050614eba565b83811115614ee4576000848401525b50505050565b614ef382614ff1565b810181811067ffffffffffffffff82111715614f1257614f11614fc2565b5b80604052505050565b6000614f2682614e34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614f5957614f58614f64565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5f6d6b7467416464726573732063616e6e6f7420626520300000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4163636f756e74206973206e6f74206578636c756465642066726f6d2072656660008201527f6c656374696f6e00000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60008201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60208201527f7564656420616464726573732e00000000000000000000000000000000000000604082015250565b7f4d757374206b656570206275792074617865732062656c6f7720323525000000600082015250565b7f5f6d6763416464726573732063616e6e6f742062652030000000000000000000600082015250565b61557c81614de4565b811461558757600080fd5b50565b61559381614e08565b811461559e57600080fd5b50565b6155aa81614e34565b81146155b557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b6ad4c2ccc1f0d1245d75270b41c60f93e11ac0caf2b184e0bd7a38b33abd27f64736f6c63430008040033

Deployed Bytecode Sourcemap

4613:17509:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6090:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15542:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9370:603;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7793:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10173:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6192:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8070:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10374:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8843:519;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21414:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6520:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7979:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8526:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6240:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15109:191;;;;;;;;;;;;;:::i;:::-;;5092:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21098:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15719:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8173:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6400:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2034:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6459:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7884:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20805:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19258:599;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8319:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6354:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20012:737;;;;;;;;;;;;;:::i;:::-;;9981:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21779:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21264:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8686:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20983:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2252:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15308:222;;;;;;;;;;;;;:::i;:::-;;6090:89;;;;;;;;;;;;;:::o;15542:169::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15618:9:::1;15613:91;15637:5;:12;15633:1;:16;15613:91;;;15688:4;15671;:14;15676:5;15682:1;15676:8;;;;;;;;;;;;;;;;;;;;;;15671:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15651:3;;;;;:::i;:::-;;;;15613:91;;;;15542:169:::0;:::o;9370:603::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9452:25:::1;:34;9478:7;9452:34;;;;;;;;;;;;;;;;;;;;;;;;;9444:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9546:9;9541:425;9565:23;:30;;;;9561:1;:34;9541:425;;;9651:7;9621:37;;:23;9645:1;9621:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;9617:338;;;9708:23;9765:1;9732:23;:30;;;;:34;;;;:::i;:::-;9708:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:23;9703:1;9679:26;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;;;;;;;;;;;;;;9805:1;9786:7;:16;9794:7;9786:16;;;;;;;;;;;;;;;:20;;;;9862:5;9825:25;:34;9851:7;9825:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;9886:23;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9934:5;;9617:338;9597:3;;;;;:::i;:::-;;;;9541:425;;;;9370:603:::0;:::o;7793:83::-;7830:13;7863:5;;;;;;;;;;;;;;;;;7856:12;;7793:83;:::o;10173:193::-;10275:4;10297:39;10306:12;:10;:12::i;:::-;10320:7;10329:6;10297:8;:39::i;:::-;10354:4;10347:11;;10173:193;;;;:::o;6192:41::-;;;;;;;;;;;;;:::o;8070:95::-;8123:7;5353:22;8143:14;;8070:95;:::o;5995:88::-;;;;;;;;;;;;;:::o;10374:446::-;10506:4;10523:36;10533:6;10541:9;10552:6;10523:9;:36::i;:::-;10570:220;10593:6;10614:12;:10;:12::i;:::-;10641:138;10697:6;10641:138;;;;;;;;;;;;;;;;;:11;:19;10653:6;10641:19;;;;;;;;;;;;;;;:33;10661:12;:10;:12::i;:::-;10641:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10570:8;:220::i;:::-;10808:4;10801:11;;10374:446;;;;;:::o;8843:519::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8928:25:::1;:34;8954:7;8928:34;;;;;;;;;;;;;;;;;;;;;;;;;8927:35;8919:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9051:2;9046:1;9013:23;:30;;;;:34;;;;:::i;:::-;:40;;9005:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;9169:1;9150:7;:16;9158:7;9150:16;;;;;;;;;;;;;;;;:20;9146:109;;;9206:37;9226:7;:16;9234:7;9226:16;;;;;;;;;;;;;;;;9206:19;:37::i;:::-;9187:7;:16;9195:7;9187:16;;;;;;;;;;;;;;;:56;;;;9146:109;9302:4;9265:25;:34;9291:7;9265:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9317:23;9346:7;9317:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8843:519:::0;:::o;21414:330::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21519:1:::1;21496:25;;:11;;;;;;;;;;;:25;;;;21488:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;21593:5;21560:18;:30;21579:10;21560:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;21630:11;;;;;;;;;;;21609:33;;21686:4;21653:18;:30;21672:10;21653:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21706:30;21724:11;;;;;;;;;;;21706:30;;;;;;:::i;:::-;;;;;;;;21414:330:::0;:::o;6520:59::-;;;;:::o;7979:83::-;8020:5;4850:1;8038:16;;7979:83;:::o;8526:152::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8627:4:::1;8597:18;:27;8616:7;8597:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8647:23;8662:7;8647:23;;;;;;:::i;:::-;;;;;;;;8526:152:::0;:::o;6240:28::-;;;;;;;;;;;;;:::o;15109:191::-;15175:11;;;;;;;;;;;15159:27;;:12;:10;:12::i;:::-;:27;;;15151:36;;;;;;15198:23;15224:24;15242:4;15224:9;:24::i;:::-;15198:50;;15259:33;15276:15;15259:16;:33::i;:::-;15109:191;:::o;5092:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;21098:132::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21218:4:::1;21185:22;:30;21208:6;21185:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21098:132:::0;;:::o;15719:92::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15798:5:::1;15783:4;:12;15788:6;15783:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15719:92:::0;:::o;8173:138::-;8239:7;8266:37;8286:7;:16;8294:7;8286:16;;;;;;;;;;;;;;;;8266:19;:37::i;:::-;8259:44;;8173:138;;;:::o;6400:52::-;;;;:::o;2034:79::-;2072:7;2099:6;;;;;;;;;;;2092:13;;2034:79;:::o;6459:54::-;;;;:::o;7884:87::-;7923:13;7956:7;;;;;;;;;;;;;;;;;7949:14;;7884:87;:::o;20805:139::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20918:18:::1;20896:19;:40;;;;20805:139:::0;:::o;19258:599::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19424:18:::1;19402:19;:40;;;;19468:11;19453:12;:26;;;;19523:19;19500:20;:42;;;;19569:12;19553:13;:28;;;;19648:2;19632:12;;19610:19;;:34;;;;:::i;:::-;:40;;19602:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;19778:2;19761:13;;19738:20;;:36;;;;:::i;:::-;:42;;19730:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19258:599:::0;;;;:::o;8319:199::-;8424:4;8446:42;8456:12;:10;:12::i;:::-;8470:9;8481:6;8446:9;:42::i;:::-;8506:4;8499:11;;8319:199;;;;:::o;6354:33::-;;;;;;;;;;;;;:::o;5501:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;20012:737::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20076:13:::1;;;;;;;;;;;20075:14;20067:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;20127:15;:13;:15::i;:::-;20153:35;20210:42;20153:100;;20282:16;20264:15;;:34;;;;;;;;;;;;;;;;;;20309:58;20326:4;20341:15;;;;;;;;;;;5353:22;20309:8;:58::i;:::-;20412:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20394:56;;;20459:4;20466:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20394:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20378:13;;:112;;;;;;;;;;;;;;;;;;20501:15;;;;;;;;;;;:31;;;20540:21;20571:4;20577:24;20595:4;20577:9;:24::i;:::-;20602:1;20604::::0;20606:7:::1;:5;:7::i;:::-;20614:15;20501:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20655:4;20641:11;;:18;;;;;;;;;;;;;;;;;;20677:13;;;;;;;;;;;20670:29;;;20708:15;;;;;;;;;;;20726:14;20670:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2231:1;20012:737::o:0;9981:184::-;10098:7;10130:11;:18;10142:5;10130:18;;;;;;;;;;;;;;;:27;10149:7;10130:27;;;;;;;;;;;;;;;;10123:34;;9981:184;;;;:::o;21779:340::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21887:1:::1;21863:26;;:12;;;;;;;;;;;:26;;;;21855:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21963:5;21929:18;:31;21948:11;21929:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22001:12;;;;;;;;;;;21979:35;;22059:4;22025:18;:31;22044:11;22025:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;22079:32;22098:12;;;;;;;;;;;22079:32;;;;;;:::i;:::-;;;;;;;;21779:340:::0;:::o;21264:115::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21358:13:::1;21341:14;:30;;;;21264:115:::0;:::o;8686:149::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8785:5:::1;8755:18;:27;8774:7;8755:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8806:21;8819:7;8806:21;;;;;;:::i;:::-;;;;;;;;8686:149:::0;:::o;20983:107::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21071:11:::1;21056:12;:26;;;;20983:107:::0;:::o;2252:244::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2361:1:::1;2341:22;;:8;:22;;;;2333:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2451:8;2422:38;;2443:6;::::0;::::1;;;;;;;;2422:38;;;;;;;;;;;;2480:8;2471:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2252:244:::0;:::o;15308:222::-;15374:11;;;;;;;;;;;15358:27;;:12;:10;:12::i;:::-;:27;;;:59;;;;15405:12;;;;;;;;;;;15389:28;;:12;:10;:12::i;:::-;:28;;;15358:59;15350:68;;;;;;15429:26;15458:21;15429:50;;15490:32;15503:18;15490:12;:32::i;:::-;15308:222;:::o;793:98::-;846:7;873:10;866:17;;793:98;:::o;11553:369::-;11697:1;11680:19;;:5;:19;;;;11672:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11778:1;11759:21;;:7;:21;;;;11751:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11860:6;11830:11;:18;11842:5;11830:18;;;;;;;;;;;;;;;:27;11849:7;11830:27;;;;;;;;;;;;;;;:36;;;;11898:7;11882:32;;11891:5;11882:32;;;11907:6;11882:32;;;;;;:::i;:::-;;;;;;;;11553:369;;;:::o;11930:2523::-;12068:1;12052:18;;:4;:18;;;;12044:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12145:1;12131:16;;:2;:16;;;;12123:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12215:1;12206:6;:10;12198:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12287:7;:5;:7::i;:::-;12279:15;;:4;:15;;;;:32;;;;;12304:7;:5;:7::i;:::-;12298:13;;:2;:13;;;;12279:32;12275:1197;;;12380:13;;;;;;;;;;;12375:431;;12434:13;;;;;;;;;;;12428:19;;:2;:19;;;;:53;;;;;12465:15;;;;;;;;;;;12451:30;;:2;:30;;;;12428:53;:81;;;;;12487:18;:22;12506:2;12487:22;;;;;;;;;;;;;;;;;;;;;;;;;12485:24;12428:81;12425:381;;;12563:14;;12554:6;12538:13;12548:2;12538:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12530:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12654:12;;12644:6;:22;;12636:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12727:4;:10;12732:4;12727:10;;;;;;;;;;;;;;;;;;;;;;;;;12726:11;:24;;;;;12742:4;:8;12747:2;12742:8;;;;;;;;;;;;;;;;;;;;;;;;;12741:9;12726:24;12718:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12425:381;12375:431;12834:28;12865:24;12883:4;12865:9;:24::i;:::-;12834:55;;12904:12;12943:19;;12919:20;:43;;12904:58;;13006:12;;12982:20;:36;12979:124;;13075:12;;13052:35;;12979:124;13135:7;:18;;;;;13147:6;;;;;;;;;;;13146:7;13135:18;:43;;;;;13165:13;;;;;;;;;;;13157:21;;:4;:21;;;;13135:43;:58;;;;;13182:11;;;;;;;;;;;13135:58;13131:330;;;13214:38;13231:20;13214:16;:38::i;:::-;13271:26;13300:21;13271:50;;13365:1;13344:18;:22;13340:106;;;13391:35;13404:21;13391:12;:35::i;:::-;13340:106;13131:330;;12275:1197;;;13492:12;13507:4;13492:19;;13556:18;:24;13575:4;13556:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13584:18;:22;13603:2;13584:22;;;;;;;;;;;;;;;;;;;;;;;;;13556:50;13555:102;;;;13620:13;;;;;;;;;;;13612:21;;:4;:21;;;;:44;;;;;13643:13;;;;;;;;;;;13637:19;;:2;:19;;;;13612:44;13555:102;13551:841;;;13684:5;13674:15;;13551:841;;;13779:13;;;;;;;;;;;13771:21;;:4;:21;;;:55;;;;;13810:15;;;;;;;;;;;13796:30;;:2;:30;;;;13771:55;13768:172;;;13864:19;;13847:14;:36;;;;13912:12;;13902:7;:22;;;;13768:172;13998:18;:24;14017:4;13998:24;;;;;;;;;;;;;;;;;;;;;;;;;13993:167;;14069:12;;14059:6;:22;;14051:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13993:167;14202:13;;;;;;;;;;;14196:19;;:2;:19;;;:55;;;;;14235:15;;;;;;;;;;;14219:32;;:4;:32;;;;14196:55;14192:175;;;14289:20;;14272:14;:37;;;;14338:13;;14328:7;:23;;;;14192:175;13551:841;14404:41;14419:4;14425:2;14429:6;14437:7;14404:14;:41::i;:::-;11930:2523;;;;:::o;2864:224::-;2984:7;3017:1;3012;:6;;3020:12;3004:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3044:9;3060:1;3056;:5;;;;:::i;:::-;3044:17;;3079:1;3072:8;;;2864:224;;;;;:::o;10828:323::-;10923:7;10981;;10970;:18;;10948:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11069:19;11091:10;:8;:10::i;:::-;11069:32;;11119:24;11131:11;11119:7;:11;;:24;;;;:::i;:::-;11112:31;;;10828:323;;;:::o;14463:483::-;7139:4;7130:6;;:13;;;;;;;;;;;;;;;;;;14541:21:::1;14579:1;14565:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14541:40;;14610:4;14592;14597:1;14592:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;14636:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14626:4;14631:1;14626:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;14669:62;14686:4;14701:15;;;;;;;;;;;14719:11;14669:8;:62::i;:::-;14742:15;;;;;;;;;;;:66;;;14823:11;14849:1;14865:4;14892;14912:15;14742:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7154:1;7175:5:::0;7166:6;;:14;;;;;;;;;;;;;;;;;;14463:483;:::o;19913:91::-;2171:12;:10;:12::i;:::-;2161:22;;:6;;;;;;;;;;:22;;;2153:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19984:4:::1;19968:13;;:20;;;;;;;;;;;;;;;;;;19913:91::o:0;14954:147::-;15011:11;;;;;;;;;;;:20;;:35;15032:13;15043:1;15032:6;:10;;:13;;;;:::i;:::-;15011:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15057:12;;;;;;;;;;;:21;;:36;15079:13;15090:1;15079:6;:10;;:13;;;;:::i;:::-;15057:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14954:147;:::o;15819:282::-;15975:7;15970:28;;15984:14;:12;:14::i;:::-;15970:28;16009:44;16027:6;16035:9;16046:6;16009:17;:44::i;:::-;16069:7;16064:29;;16078:15;:13;:15::i;:::-;16064:29;15819:282;;;;:::o;18809:166::-;18851:7;18872:15;18889;18908:19;:17;:19::i;:::-;18871:56;;;;18947:20;18959:7;18947;:11;;:20;;;;:::i;:::-;18940:27;;;;18809:166;:::o;3350:132::-;3408:7;3435:39;3439:1;3442;3435:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3428:46;;3350:132;;;;:::o;11159:251::-;11224:1;11206:14;;:19;:35;;;;;11240:1;11229:7;;:12;11206:35;11202:48;;;11243:7;;11202:48;11291:14;;11266:22;:39;;;;11334:7;;11316:15;:25;;;;11379:1;11362:14;:18;;;;11401:1;11391:7;:11;;;;11159:251;:::o;16109:610::-;16256:15;16286:23;16324:12;16351:23;16389:12;16416:13;16443:19;16454:7;16443:10;:19::i;:::-;16241:221;;;;;;;;;;;;16491:28;16511:7;16491;:15;16499:6;16491:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16473:7;:15;16481:6;16473:15;;;;;;;;;;;;;;;:46;;;;16551:39;16574:15;16551:7;:18;16559:9;16551:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16530:7;:18;16538:9;16530:18;;;;;;;;;;;;;;;:60;;;;16601:16;16611:5;16601:9;:16::i;:::-;16628:23;16640:4;16646;16628:11;:23::i;:::-;16684:9;16667:44;;16676:6;16667:44;;;16695:15;16667:44;;;;;;:::i;:::-;;;;;;;;16109:610;;;;;;;;;:::o;11418:127::-;11479:22;;11462:14;:39;;;;11522:15;;11512:7;:25;;;;11418:127::o;18983:263::-;19034:7;19043;19063:15;19081:7;;19063:25;;19099:15;5353:22;19099:25;;19149:20;5353:22;19149:7;;:11;;:20;;;;:::i;:::-;19139:7;:30;19135:61;;;19179:7;;5353:22;19171:25;;;;;;;;19135:61;19221:7;19230;19213:25;;;;;;18983:263;;;:::o;3490:223::-;3610:7;3642:1;3638;:5;3645:12;3630:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3669:9;3685:1;3681;:5;;;;:::i;:::-;3669:17;;3704:1;3697:8;;;3490:223;;;;;:::o;17138:630::-;17238:7;17260;17282;17304;17326;17348;17384:23;17409:12;17423:13;17453:45;17465:7;17474:14;;17490:7;;17453:11;:45::i;:::-;17383:115;;;;;;17509:19;17531:10;:8;:10::i;:::-;17509:32;;17553:15;17570:23;17595:12;17624:46;17636:7;17645:4;17651:5;17658:11;17624;:46::i;:::-;17552:118;;;;;;17699:7;17708:15;17725:4;17731:15;17748:4;17754:5;17691:69;;;;;;;;;;;;;;;;;;;17138:630;;;;;;;:::o;2720:136::-;2778:7;2805:43;2809:1;2812;2805:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2798:50;;2720:136;;;;:::o;2533:179::-;2591:7;2611:9;2627:1;2623;:5;;;;:::i;:::-;2611:17;;2652:1;2647;:6;;2639:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2703:1;2696:8;;;2533:179;;;;:::o;16727:211::-;16780:19;16802:10;:8;:10::i;:::-;16780:32;;16823:13;16839:22;16849:11;16839:5;:9;;:22;;;;:::i;:::-;16823:38;;16897:33;16924:5;16897:7;:22;16913:4;16897:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16872:7;:22;16888:4;16872:22;;;;;;;;;;;;;;;:58;;;;16727:211;;;:::o;16946:147::-;17024:17;17036:4;17024:7;;:11;;:17;;;;:::i;:::-;17014:7;:27;;;;17065:20;17080:4;17065:10;;:14;;:20;;;;:::i;:::-;17052:10;:33;;;;16946:147;;:::o;17776:481::-;17950:7;17972;17994;18029:12;18044:35;18075:3;18044:26;18056:13;18044:7;:11;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;18029:50;;18090:13;18106:28;18130:3;18106:19;18118:6;18106:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18090:44;;18145:23;18171:28;18193:5;18171:17;18183:4;18171:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18145:54;;18220:15;18237:4;18243:5;18212:37;;;;;;;;;17776:481;;;;;;;:::o;18265:536::-;18459:7;18481;18503;18538:15;18556:24;18568:11;18556:7;:11;;:24;;;;:::i;:::-;18538:42;;18591:12;18606:21;18615:11;18606:4;:8;;:21;;;;:::i;:::-;18591:36;;18638:13;18654:22;18664:11;18654:5;:9;;:22;;;;:::i;:::-;18638:38;;18687:23;18713:28;18735:5;18713:17;18725:4;18713:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18687:54;;18762:7;18771:15;18788:4;18754:39;;;;;;;;;;18265:536;;;;;;;;:::o;3096:246::-;3154:7;3183:1;3178;:6;3174:47;;;3208:1;3201:8;;;;3174:47;3231:9;3247:1;3243;:5;;;;:::i;:::-;3231:17;;3276:1;3271;3267;:5;;;;:::i;:::-;:10;3259:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3333:1;3326:8;;;3096:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:401::-;3475:6;3483;3532:2;3520:9;3511:7;3507:23;3503:32;3500:2;;;3548:1;3545;3538:12;3500:2;3591:1;3616:53;3661:7;3652:6;3641:9;3637:22;3616:53;:::i;:::-;3606:63;;3562:117;3718:2;3744:50;3786:7;3777:6;3766:9;3762:22;3744:50;:::i;:::-;3734:60;;3689:115;3490:321;;;;;:::o;3817:407::-;3885:6;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:2;;;3958:1;3955;3948:12;3910:2;4001:1;4026:53;4071:7;4062:6;4051:9;4047:22;4026:53;:::i;:::-;4016:63;;3972:117;4128:2;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4099:118;3900:324;;;;;:::o;4230:405::-;4314:6;4363:2;4351:9;4342:7;4338:23;4334:32;4331:2;;;4379:1;4376;4369:12;4331:2;4450:1;4439:9;4435:17;4422:31;4480:18;4472:6;4469:30;4466:2;;;4512:1;4509;4502:12;4466:2;4540:78;4610:7;4601:6;4590:9;4586:22;4540:78;:::i;:::-;4530:88;;4393:235;4321:314;;;;:::o;4641:278::-;4708:6;4757:2;4745:9;4736:7;4732:23;4728:32;4725:2;;;4773:1;4770;4763:12;4725:2;4816:1;4841:61;4894:7;4885:6;4874:9;4870:22;4841:61;:::i;:::-;4831:71;;4787:125;4715:204;;;;:::o;4925:262::-;4984:6;5033:2;5021:9;5012:7;5008:23;5004:32;5001:2;;;5049:1;5046;5039:12;5001:2;5092:1;5117:53;5162:7;5153:6;5142:9;5138:22;5117:53;:::i;:::-;5107:63;;5063:117;4991:196;;;;:::o;5193:596::-;5281:6;5289;5297;5346:2;5334:9;5325:7;5321:23;5317:32;5314:2;;;5362:1;5359;5352:12;5314:2;5405:1;5430:64;5486:7;5477:6;5466:9;5462:22;5430:64;:::i;:::-;5420:74;;5376:128;5543:2;5569:64;5625:7;5616:6;5605:9;5601:22;5569:64;:::i;:::-;5559:74;;5514:129;5682:2;5708:64;5764:7;5755:6;5744:9;5740:22;5708:64;:::i;:::-;5698:74;;5653:129;5304:485;;;;;:::o;5795:698::-;5881:6;5889;5897;5905;5954:3;5942:9;5933:7;5929:23;5925:33;5922:2;;;5971:1;5968;5961:12;5922:2;6014:1;6039:53;6084:7;6075:6;6064:9;6060:22;6039:53;:::i;:::-;6029:63;;5985:117;6141:2;6167:53;6212:7;6203:6;6192:9;6188:22;6167:53;:::i;:::-;6157:63;;6112:118;6269:2;6295:53;6340:7;6331:6;6320:9;6316:22;6295:53;:::i;:::-;6285:63;;6240:118;6397:2;6423:53;6468:7;6459:6;6448:9;6444:22;6423:53;:::i;:::-;6413:63;;6368:118;5912:581;;;;;;;:::o;6499:179::-;6568:10;6589:46;6631:3;6623:6;6589:46;:::i;:::-;6667:4;6662:3;6658:14;6644:28;;6579:99;;;;:::o;6684:147::-;6779:45;6818:5;6779:45;:::i;:::-;6774:3;6767:58;6757:74;;:::o;6837:142::-;6940:32;6966:5;6940:32;:::i;:::-;6935:3;6928:45;6918:61;;:::o;6985:108::-;7062:24;7080:5;7062:24;:::i;:::-;7057:3;7050:37;7040:53;;:::o;7099:118::-;7186:24;7204:5;7186:24;:::i;:::-;7181:3;7174:37;7164:53;;:::o;7253:732::-;7372:3;7401:54;7449:5;7401:54;:::i;:::-;7471:86;7550:6;7545:3;7471:86;:::i;:::-;7464:93;;7581:56;7631:5;7581:56;:::i;:::-;7660:7;7691:1;7676:284;7701:6;7698:1;7695:13;7676:284;;;7777:6;7771:13;7804:63;7863:3;7848:13;7804:63;:::i;:::-;7797:70;;7890:60;7943:6;7890:60;:::i;:::-;7880:70;;7736:224;7723:1;7720;7716:9;7711:14;;7676:284;;;7680:14;7976:3;7969:10;;7377:608;;;;;;;:::o;7991:109::-;8072:21;8087:5;8072:21;:::i;:::-;8067:3;8060:34;8050:50;;:::o;8106:183::-;8219:63;8276:5;8219:63;:::i;:::-;8214:3;8207:76;8197:92;;:::o;8295:147::-;8390:45;8429:5;8390:45;:::i;:::-;8385:3;8378:58;8368:74;;:::o;8448:364::-;8536:3;8564:39;8597:5;8564:39;:::i;:::-;8619:71;8683:6;8678:3;8619:71;:::i;:::-;8612:78;;8699:52;8744:6;8739:3;8732:4;8725:5;8721:16;8699:52;:::i;:::-;8776:29;8798:6;8776:29;:::i;:::-;8771:3;8767:39;8760:46;;8540:272;;;;;:::o;8818:366::-;8960:3;8981:67;9045:2;9040:3;8981:67;:::i;:::-;8974:74;;9057:93;9146:3;9057:93;:::i;:::-;9175:2;9170:3;9166:12;9159:19;;8964:220;;;:::o;9190:366::-;9332:3;9353:67;9417:2;9412:3;9353:67;:::i;:::-;9346:74;;9429:93;9518:3;9429:93;:::i;:::-;9547:2;9542:3;9538:12;9531:19;;9336:220;;;:::o;9562:366::-;9704:3;9725:67;9789:2;9784:3;9725:67;:::i;:::-;9718:74;;9801:93;9890:3;9801:93;:::i;:::-;9919:2;9914:3;9910:12;9903:19;;9708:220;;;:::o;9934:366::-;10076:3;10097:67;10161:2;10156:3;10097:67;:::i;:::-;10090:74;;10173:93;10262:3;10173:93;:::i;:::-;10291:2;10286:3;10282:12;10275:19;;10080:220;;;:::o;10306:366::-;10448:3;10469:67;10533:2;10528:3;10469:67;:::i;:::-;10462:74;;10545:93;10634:3;10545:93;:::i;:::-;10663:2;10658:3;10654:12;10647:19;;10452:220;;;:::o;10678:366::-;10820:3;10841:67;10905:2;10900:3;10841:67;:::i;:::-;10834:74;;10917:93;11006:3;10917:93;:::i;:::-;11035:2;11030:3;11026:12;11019:19;;10824:220;;;:::o;11050:366::-;11192:3;11213:67;11277:2;11272:3;11213:67;:::i;:::-;11206:74;;11289:93;11378:3;11289:93;:::i;:::-;11407:2;11402:3;11398:12;11391:19;;11196:220;;;:::o;11422:366::-;11564:3;11585:67;11649:2;11644:3;11585:67;:::i;:::-;11578:74;;11661:93;11750:3;11661:93;:::i;:::-;11779:2;11774:3;11770:12;11763:19;;11568:220;;;:::o;11794:366::-;11936:3;11957:67;12021:2;12016:3;11957:67;:::i;:::-;11950:74;;12033:93;12122:3;12033:93;:::i;:::-;12151:2;12146:3;12142:12;12135:19;;11940:220;;;:::o;12166:366::-;12308:3;12329:67;12393:2;12388:3;12329:67;:::i;:::-;12322:74;;12405:93;12494:3;12405:93;:::i;:::-;12523:2;12518:3;12514:12;12507:19;;12312:220;;;:::o;12538:366::-;12680:3;12701:67;12765:2;12760:3;12701:67;:::i;:::-;12694:74;;12777:93;12866:3;12777:93;:::i;:::-;12895:2;12890:3;12886:12;12879:19;;12684:220;;;:::o;12910:366::-;13052:3;13073:67;13137:2;13132:3;13073:67;:::i;:::-;13066:74;;13149:93;13238:3;13149:93;:::i;:::-;13267:2;13262:3;13258:12;13251:19;;13056:220;;;:::o;13282:366::-;13424:3;13445:67;13509:2;13504:3;13445:67;:::i;:::-;13438:74;;13521:93;13610:3;13521:93;:::i;:::-;13639:2;13634:3;13630:12;13623:19;;13428:220;;;:::o;13654:366::-;13796:3;13817:67;13881:2;13876:3;13817:67;:::i;:::-;13810:74;;13893:93;13982:3;13893:93;:::i;:::-;14011:2;14006:3;14002:12;13995:19;;13800:220;;;:::o;14026:366::-;14168:3;14189:67;14253:2;14248:3;14189:67;:::i;:::-;14182:74;;14265:93;14354:3;14265:93;:::i;:::-;14383:2;14378:3;14374:12;14367:19;;14172:220;;;:::o;14398:366::-;14540:3;14561:67;14625:2;14620:3;14561:67;:::i;:::-;14554:74;;14637:93;14726:3;14637:93;:::i;:::-;14755:2;14750:3;14746:12;14739:19;;14544:220;;;:::o;14770:366::-;14912:3;14933:67;14997:2;14992:3;14933:67;:::i;:::-;14926:74;;15009:93;15098:3;15009:93;:::i;:::-;15127:2;15122:3;15118:12;15111:19;;14916:220;;;:::o;15142:366::-;15284:3;15305:67;15369:2;15364:3;15305:67;:::i;:::-;15298:74;;15381:93;15470:3;15381:93;:::i;:::-;15499:2;15494:3;15490:12;15483:19;;15288:220;;;:::o;15514:366::-;15656:3;15677:67;15741:2;15736:3;15677:67;:::i;:::-;15670:74;;15753:93;15842:3;15753:93;:::i;:::-;15871:2;15866:3;15862:12;15855:19;;15660:220;;;:::o;15886:366::-;16028:3;16049:67;16113:2;16108:3;16049:67;:::i;:::-;16042:74;;16125:93;16214:3;16125:93;:::i;:::-;16243:2;16238:3;16234:12;16227:19;;16032:220;;;:::o;16258:366::-;16400:3;16421:67;16485:2;16480:3;16421:67;:::i;:::-;16414:74;;16497:93;16586:3;16497:93;:::i;:::-;16615:2;16610:3;16606:12;16599:19;;16404:220;;;:::o;16630:118::-;16717:24;16735:5;16717:24;:::i;:::-;16712:3;16705:37;16695:53;;:::o;16754:112::-;16837:22;16853:5;16837:22;:::i;:::-;16832:3;16825:35;16815:51;;:::o;16872:222::-;16965:4;17003:2;16992:9;16988:18;16980:26;;17016:71;17084:1;17073:9;17069:17;17060:6;17016:71;:::i;:::-;16970:124;;;;:::o;17100:238::-;17201:4;17239:2;17228:9;17224:18;17216:26;;17252:79;17328:1;17317:9;17313:17;17304:6;17252:79;:::i;:::-;17206:132;;;;:::o;17344:254::-;17453:4;17491:2;17480:9;17476:18;17468:26;;17504:87;17588:1;17577:9;17573:17;17564:6;17504:87;:::i;:::-;17458:140;;;;:::o;17604:332::-;17725:4;17763:2;17752:9;17748:18;17740:26;;17776:71;17844:1;17833:9;17829:17;17820:6;17776:71;:::i;:::-;17857:72;17925:2;17914:9;17910:18;17901:6;17857:72;:::i;:::-;17730:206;;;;;:::o;17942:332::-;18063:4;18101:2;18090:9;18086:18;18078:26;;18114:71;18182:1;18171:9;18167:17;18158:6;18114:71;:::i;:::-;18195:72;18263:2;18252:9;18248:18;18239:6;18195:72;:::i;:::-;18068:206;;;;;:::o;18280:807::-;18529:4;18567:3;18556:9;18552:19;18544:27;;18581:71;18649:1;18638:9;18634:17;18625:6;18581:71;:::i;:::-;18662:72;18730:2;18719:9;18715:18;18706:6;18662:72;:::i;:::-;18744:80;18820:2;18809:9;18805:18;18796:6;18744:80;:::i;:::-;18834;18910:2;18899:9;18895:18;18886:6;18834:80;:::i;:::-;18924:73;18992:3;18981:9;18977:19;18968:6;18924:73;:::i;:::-;19007;19075:3;19064:9;19060:19;19051:6;19007:73;:::i;:::-;18534:553;;;;;;;;;:::o;19093:210::-;19180:4;19218:2;19207:9;19203:18;19195:26;;19231:65;19293:1;19282:9;19278:17;19269:6;19231:65;:::i;:::-;19185:118;;;;:::o;19309:274::-;19428:4;19466:2;19455:9;19451:18;19443:26;;19479:97;19573:1;19562:9;19558:17;19549:6;19479:97;:::i;:::-;19433:150;;;;:::o;19589:313::-;19702:4;19740:2;19729:9;19725:18;19717:26;;19789:9;19783:4;19779:20;19775:1;19764:9;19760:17;19753:47;19817:78;19890:4;19881:6;19817:78;:::i;:::-;19809:86;;19707:195;;;;:::o;19908:419::-;20074:4;20112:2;20101:9;20097:18;20089:26;;20161:9;20155:4;20151:20;20147:1;20136:9;20132:17;20125:47;20189:131;20315:4;20189:131;:::i;:::-;20181:139;;20079:248;;;:::o;20333:419::-;20499:4;20537:2;20526:9;20522:18;20514:26;;20586:9;20580:4;20576:20;20572:1;20561:9;20557:17;20550:47;20614:131;20740:4;20614:131;:::i;:::-;20606:139;;20504:248;;;:::o;20758:419::-;20924:4;20962:2;20951:9;20947:18;20939:26;;21011:9;21005:4;21001:20;20997:1;20986:9;20982:17;20975:47;21039:131;21165:4;21039:131;:::i;:::-;21031:139;;20929:248;;;:::o;21183:419::-;21349:4;21387:2;21376:9;21372:18;21364:26;;21436:9;21430:4;21426:20;21422:1;21411:9;21407:17;21400:47;21464:131;21590:4;21464:131;:::i;:::-;21456:139;;21354:248;;;:::o;21608:419::-;21774:4;21812:2;21801:9;21797:18;21789:26;;21861:9;21855:4;21851:20;21847:1;21836:9;21832:17;21825:47;21889:131;22015:4;21889:131;:::i;:::-;21881:139;;21779:248;;;:::o;22033:419::-;22199:4;22237:2;22226:9;22222:18;22214:26;;22286:9;22280:4;22276:20;22272:1;22261:9;22257:17;22250:47;22314:131;22440:4;22314:131;:::i;:::-;22306:139;;22204:248;;;:::o;22458:419::-;22624:4;22662:2;22651:9;22647:18;22639:26;;22711:9;22705:4;22701:20;22697:1;22686:9;22682:17;22675:47;22739:131;22865:4;22739:131;:::i;:::-;22731:139;;22629:248;;;:::o;22883:419::-;23049:4;23087:2;23076:9;23072:18;23064:26;;23136:9;23130:4;23126:20;23122:1;23111:9;23107:17;23100:47;23164:131;23290:4;23164:131;:::i;:::-;23156:139;;23054:248;;;:::o;23308:419::-;23474:4;23512:2;23501:9;23497:18;23489:26;;23561:9;23555:4;23551:20;23547:1;23536:9;23532:17;23525:47;23589:131;23715:4;23589:131;:::i;:::-;23581:139;;23479:248;;;:::o;23733:419::-;23899:4;23937:2;23926:9;23922:18;23914:26;;23986:9;23980:4;23976:20;23972:1;23961:9;23957:17;23950:47;24014:131;24140:4;24014:131;:::i;:::-;24006:139;;23904:248;;;:::o;24158:419::-;24324:4;24362:2;24351:9;24347:18;24339:26;;24411:9;24405:4;24401:20;24397:1;24386:9;24382:17;24375:47;24439:131;24565:4;24439:131;:::i;:::-;24431:139;;24329:248;;;:::o;24583:419::-;24749:4;24787:2;24776:9;24772:18;24764:26;;24836:9;24830:4;24826:20;24822:1;24811:9;24807:17;24800:47;24864:131;24990:4;24864:131;:::i;:::-;24856:139;;24754:248;;;:::o;25008:419::-;25174:4;25212:2;25201:9;25197:18;25189:26;;25261:9;25255:4;25251:20;25247:1;25236:9;25232:17;25225:47;25289:131;25415:4;25289:131;:::i;:::-;25281:139;;25179:248;;;:::o;25433:419::-;25599:4;25637:2;25626:9;25622:18;25614:26;;25686:9;25680:4;25676:20;25672:1;25661:9;25657:17;25650:47;25714:131;25840:4;25714:131;:::i;:::-;25706:139;;25604:248;;;:::o;25858:419::-;26024:4;26062:2;26051:9;26047:18;26039:26;;26111:9;26105:4;26101:20;26097:1;26086:9;26082:17;26075:47;26139:131;26265:4;26139:131;:::i;:::-;26131:139;;26029:248;;;:::o;26283:419::-;26449:4;26487:2;26476:9;26472:18;26464:26;;26536:9;26530:4;26526:20;26522:1;26511:9;26507:17;26500:47;26564:131;26690:4;26564:131;:::i;:::-;26556:139;;26454:248;;;:::o;26708:419::-;26874:4;26912:2;26901:9;26897:18;26889:26;;26961:9;26955:4;26951:20;26947:1;26936:9;26932:17;26925:47;26989:131;27115:4;26989:131;:::i;:::-;26981:139;;26879:248;;;:::o;27133:419::-;27299:4;27337:2;27326:9;27322:18;27314:26;;27386:9;27380:4;27376:20;27372:1;27361:9;27357:17;27350:47;27414:131;27540:4;27414:131;:::i;:::-;27406:139;;27304:248;;;:::o;27558:419::-;27724:4;27762:2;27751:9;27747:18;27739:26;;27811:9;27805:4;27801:20;27797:1;27786:9;27782:17;27775:47;27839:131;27965:4;27839:131;:::i;:::-;27831:139;;27729:248;;;:::o;27983:419::-;28149:4;28187:2;28176:9;28172:18;28164:26;;28236:9;28230:4;28226:20;28222:1;28211:9;28207:17;28200:47;28264:131;28390:4;28264:131;:::i;:::-;28256:139;;28154:248;;;:::o;28408:419::-;28574:4;28612:2;28601:9;28597:18;28589:26;;28661:9;28655:4;28651:20;28647:1;28636:9;28632:17;28625:47;28689:131;28815:4;28689:131;:::i;:::-;28681:139;;28579:248;;;:::o;28833:222::-;28926:4;28964:2;28953:9;28949:18;28941:26;;28977:71;29045:1;29034:9;29030:17;29021:6;28977:71;:::i;:::-;28931:124;;;;:::o;29061:831::-;29324:4;29362:3;29351:9;29347:19;29339:27;;29376:71;29444:1;29433:9;29429:17;29420:6;29376:71;:::i;:::-;29457:80;29533:2;29522:9;29518:18;29509:6;29457:80;:::i;:::-;29584:9;29578:4;29574:20;29569:2;29558:9;29554:18;29547:48;29612:108;29715:4;29706:6;29612:108;:::i;:::-;29604:116;;29730:72;29798:2;29787:9;29783:18;29774:6;29730:72;:::i;:::-;29812:73;29880:3;29869:9;29865:19;29856:6;29812:73;:::i;:::-;29329:563;;;;;;;;:::o;29898:214::-;29987:4;30025:2;30014:9;30010:18;30002:26;;30038:67;30102:1;30091:9;30087:17;30078:6;30038:67;:::i;:::-;29992:120;;;;:::o;30118:129::-;30152:6;30179:20;;:::i;:::-;30169:30;;30208:33;30236:4;30228:6;30208:33;:::i;:::-;30159:88;;;:::o;30253:75::-;30286:6;30319:2;30313:9;30303:19;;30293:35;:::o;30334:311::-;30411:4;30501:18;30493:6;30490:30;30487:2;;;30523:18;;:::i;:::-;30487:2;30573:4;30565:6;30561:17;30553:25;;30633:4;30627;30623:15;30615:23;;30416:229;;;:::o;30651:132::-;30718:4;30741:3;30733:11;;30771:4;30766:3;30762:14;30754:22;;30723:60;;;:::o;30789:114::-;30856:6;30890:5;30884:12;30874:22;;30863:40;;;:::o;30909:99::-;30961:6;30995:5;30989:12;30979:22;;30968:40;;;:::o;31014:113::-;31084:4;31116;31111:3;31107:14;31099:22;;31089:38;;;:::o;31133:184::-;31232:11;31266:6;31261:3;31254:19;31306:4;31301:3;31297:14;31282:29;;31244:73;;;;:::o;31323:169::-;31407:11;31441:6;31436:3;31429:19;31481:4;31476:3;31472:14;31457:29;;31419:73;;;;:::o;31498:305::-;31538:3;31557:20;31575:1;31557:20;:::i;:::-;31552:25;;31591:20;31609:1;31591:20;:::i;:::-;31586:25;;31745:1;31677:66;31673:74;31670:1;31667:81;31664:2;;;31751:18;;:::i;:::-;31664:2;31795:1;31792;31788:9;31781:16;;31542:261;;;;:::o;31809:185::-;31849:1;31866:20;31884:1;31866:20;:::i;:::-;31861:25;;31900:20;31918:1;31900:20;:::i;:::-;31895:25;;31939:1;31929:2;;31944:18;;:::i;:::-;31929:2;31986:1;31983;31979:9;31974:14;;31851:143;;;;:::o;32000:348::-;32040:7;32063:20;32081:1;32063:20;:::i;:::-;32058:25;;32097:20;32115:1;32097:20;:::i;:::-;32092:25;;32285:1;32217:66;32213:74;32210:1;32207:81;32202:1;32195:9;32188:17;32184:105;32181:2;;;32292:18;;:::i;:::-;32181:2;32340:1;32337;32333:9;32322:20;;32048:300;;;;:::o;32354:191::-;32394:4;32414:20;32432:1;32414:20;:::i;:::-;32409:25;;32448:20;32466:1;32448:20;:::i;:::-;32443:25;;32487:1;32484;32481:8;32478:2;;;32492:18;;:::i;:::-;32478:2;32537:1;32534;32530:9;32522:17;;32399:146;;;;:::o;32551:96::-;32588:7;32617:24;32635:5;32617:24;:::i;:::-;32606:35;;32596:51;;;:::o;32653:104::-;32698:7;32727:24;32745:5;32727:24;:::i;:::-;32716:35;;32706:51;;;:::o;32763:90::-;32797:7;32840:5;32833:13;32826:21;32815:32;;32805:48;;;:::o;32859:126::-;32896:7;32936:42;32929:5;32925:54;32914:65;;32904:81;;;:::o;32991:77::-;33028:7;33057:5;33046:16;;33036:32;;;:::o;33074:86::-;33109:7;33149:4;33142:5;33138:16;33127:27;;33117:43;;;:::o;33166:134::-;33224:9;33257:37;33288:5;33257:37;:::i;:::-;33244:50;;33234:66;;;:::o;33306:178::-;33382:9;33415:63;33472:5;33415:63;:::i;:::-;33402:76;;33392:92;;;:::o;33490:139::-;33566:9;33599:24;33617:5;33599:24;:::i;:::-;33586:37;;33576:53;;;:::o;33635:121::-;33693:9;33726:24;33744:5;33726:24;:::i;:::-;33713:37;;33703:53;;;:::o;33762:126::-;33812:9;33845:37;33876:5;33845:37;:::i;:::-;33832:50;;33822:66;;;:::o;33894:113::-;33944:9;33977:24;33995:5;33977:24;:::i;:::-;33964:37;;33954:53;;;:::o;34013:307::-;34081:1;34091:113;34105:6;34102:1;34099:13;34091:113;;;34190:1;34185:3;34181:11;34175:18;34171:1;34166:3;34162:11;34155:39;34127:2;34124:1;34120:10;34115:15;;34091:113;;;34222:6;34219:1;34216:13;34213:2;;;34302:1;34293:6;34288:3;34284:16;34277:27;34213:2;34062:258;;;;:::o;34326:281::-;34409:27;34431:4;34409:27;:::i;:::-;34401:6;34397:40;34539:6;34527:10;34524:22;34503:18;34491:10;34488:34;34485:62;34482:2;;;34550:18;;:::i;:::-;34482:2;34590:10;34586:2;34579:22;34369:238;;;:::o;34613:233::-;34652:3;34675:24;34693:5;34675:24;:::i;:::-;34666:33;;34721:66;34714:5;34711:77;34708:2;;;34791:18;;:::i;:::-;34708:2;34838:1;34831:5;34827:13;34820:20;;34656:190;;;:::o;34852:180::-;34900:77;34897:1;34890:88;34997:4;34994:1;34987:15;35021:4;35018:1;35011:15;35038:180;35086:77;35083:1;35076:88;35183:4;35180:1;35173:15;35207:4;35204:1;35197:15;35224:180;35272:77;35269:1;35262:88;35369:4;35366:1;35359:15;35393:4;35390:1;35383:15;35410:102;35451:6;35502:2;35498:7;35493:2;35486:5;35482:14;35478:28;35468:38;;35458:54;;;:::o;35518:222::-;35658:34;35654:1;35646:6;35642:14;35635:58;35727:5;35722:2;35714:6;35710:15;35703:30;35624:116;:::o;35746:174::-;35886:26;35882:1;35874:6;35870:14;35863:50;35852:68;:::o;35926:229::-;36066:34;36062:1;36054:6;36050:14;36043:58;36135:12;36130:2;36122:6;36118:15;36111:37;36032:123;:::o;36161:178::-;36301:30;36297:1;36289:6;36285:14;36278:54;36267:72;:::o;36345:225::-;36485:34;36481:1;36473:6;36469:14;36462:58;36554:8;36549:2;36541:6;36537:15;36530:33;36451:119;:::o;36576:221::-;36716:34;36712:1;36704:6;36700:14;36693:58;36785:4;36780:2;36772:6;36768:15;36761:29;36682:115;:::o;36803:222::-;36943:34;36939:1;36931:6;36927:14;36920:58;37012:5;37007:2;36999:6;36995:15;36988:30;36909:116;:::o;37031:177::-;37171:29;37167:1;37159:6;37155:14;37148:53;37137:71;:::o;37214:177::-;37354:29;37350:1;37342:6;37338:14;37331:53;37320:71;:::o;37397:241::-;37537:34;37533:1;37525:6;37521:14;37514:58;37606:24;37601:2;37593:6;37589:15;37582:49;37503:135;:::o;37644:220::-;37784:34;37780:1;37772:6;37768:14;37761:58;37853:3;37848:2;37840:6;37836:15;37829:28;37750:114;:::o;37870:182::-;38010:34;38006:1;37998:6;37994:14;37987:58;37976:76;:::o;38058:228::-;38198:34;38194:1;38186:6;38182:14;38175:58;38267:11;38262:2;38254:6;38250:15;38243:36;38164:122;:::o;38292:224::-;38432:34;38428:1;38420:6;38416:14;38409:58;38501:7;38496:2;38488:6;38484:15;38477:32;38398:118;:::o;38522:222::-;38662:34;38658:1;38650:6;38646:14;38639:58;38731:5;38726:2;38718:6;38714:15;38707:30;38628:116;:::o;38750:223::-;38890:34;38886:1;38878:6;38874:14;38867:58;38959:6;38954:2;38946:6;38942:15;38935:31;38856:117;:::o;38979:173::-;39119:25;39115:1;39107:6;39103:14;39096:49;39085:67;:::o;39158:226::-;39298:34;39294:1;39286:6;39282:14;39275:58;39367:9;39362:2;39354:6;39350:15;39343:34;39264:120;:::o;39390:301::-;39530:34;39526:1;39518:6;39514:14;39507:58;39599:34;39594:2;39586:6;39582:15;39575:59;39668:15;39663:2;39655:6;39651:15;39644:40;39496:195;:::o;39697:179::-;39837:31;39833:1;39825:6;39821:14;39814:55;39803:73;:::o;39882:173::-;40022:25;40018:1;40010:6;40006:14;39999:49;39988:67;:::o;40061:122::-;40134:24;40152:5;40134:24;:::i;:::-;40127:5;40124:35;40114:2;;40173:1;40170;40163:12;40114:2;40104:79;:::o;40189:116::-;40259:21;40274:5;40259:21;:::i;:::-;40252:5;40249:32;40239:2;;40295:1;40292;40285:12;40239:2;40229:76;:::o;40311:122::-;40384:24;40402:5;40384:24;:::i;:::-;40377:5;40374:35;40364:2;;40423:1;40420;40413:12;40364:2;40354:79;:::o

Swarm Source

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