ETH Price: $3,120.51 (+1.62%)
Gas: 5 Gwei

Token

SHIBFFON INU (SHIBFFON INU)
 

Overview

Max Total Supply

1,000,000,000,000,000 SHIBFFON INU

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,918,962,217,323.267521049 SHIBFFON INU

Value
$0.00
0xf73867436e832df44e2af9362d8b1a226ad8c962
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:
SHIBFFONINU

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

/**
SHIBFFON INU
Website: https://www.shibffoninu.quest
Telegram:https://t.me/ShibffonInuPortal
*/

// 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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    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 SHIBFFONINU is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "SHIBFFON INU";
    string private constant _symbol = "SHIBFFON INU";
    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;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;

    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 10;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 23;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x994490E7A24B6AE961eb3ABd229cC6EBb3366998);
    address payable private _marketingAddress = payable(0x994490E7A24B6AE961eb3ABd229cC6EBb3366998);
    address payable private _charityAddress = payable(0x994490E7A24B6AE961eb3ABd229cC6EBb3366998);
    
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 3000000000000 * 10**9; //0.3
    uint256 public _maxWalletSize = 10000000000000 * 10**9; //1
    uint256 public _swapTokensAtAmount = 1000000000000 * 10**9; //0.1

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_charityAddress] = true;

        preTrader[owner()] = true;
        
    
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _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() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _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 {
        _developmentAddress.transfer(amount.div(5));
        _marketingAddress.transfer(amount.div(2));
        _charityAddress.transfer(amount.mul(3).div(10));
    }


    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == _charityAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == _charityAddress);
        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, _redisFee, _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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).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 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }

    function setTaxWallets(address newTaxWall1, address newTaxWall2, address newTaxWall3) public onlyOwner {
        _developmentAddress = payable(newTaxWall1);
        _marketingAddress = payable(newTaxWall2);
        _charityAddress = payable(newTaxWall3);
		_isExcludedFromFee[newTaxWall1] = true;
		_isExcludedFromFee[newTaxWall2] = true;
		_isExcludedFromFee[newTaxWall3] = true;
    }
}


/**
Luv Da EARF <3 
*/

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":"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","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":"setMaxTxnAmount","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":[{"internalType":"address","name":"newTaxWall1","type":"address"},{"internalType":"address","name":"newTaxWall2","type":"address"},{"internalType":"address","name":"newTaxWall3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}]

608060405269d3c21bcecceda10000006000196200001e91906200096f565b6000196200002d9190620008f6565b6006556002600955600a80556002600b556017600c55600b54600d55600c54600e55600d54600f55600e5460105573994490e7a24b6ae961eb3abd229cc6ebb3366998601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073994490e7a24b6ae961eb3abd229cc6ebb3366998601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073994490e7a24b6ae961eb3abd229cc6ebb3366998601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff02191690831515021790555068a2a15d09519be0000060195569021e19e0c9bab2400000601a55683635c9adc5dea00000601b55348015620001c557600080fd5b506000620001d86200081660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200028d6200081660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036c57600080fd5b505afa15801562000381573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a791906200085e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044591906200085e565b6040518363ffffffff1660e01b815260040162000464929190620008ac565b602060405180830381600087803b1580156200047f57600080fd5b505af115801562000494573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ba91906200085e565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005106200081e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260006200073d6200081e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200079e6200081660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620008079190620008d9565b60405180910390a35062000a1f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620008588162000a05565b92915050565b6000602082840312156200087157600080fd5b6000620008818482850162000847565b91505092915050565b620008958162000931565b82525050565b620008a68162000965565b82525050565b6000604082019050620008c360008301856200088a565b620008d260208301846200088a565b9392505050565b6000602082019050620008f060008301846200089b565b92915050565b6000620009038262000965565b9150620009108362000965565b925082821015620009265762000925620009a7565b5b828203905092915050565b60006200093e8262000945565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200097c8262000965565b9150620009898362000965565b9250826200099c576200099b620009d6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b62000a108162000931565b811462000a1c57600080fd5b50565b6145cd8062000a2f6000396000f3fe6080604052600436106101e65760003560e01c80637d1db4a511610102578063a9059cbb11610095578063c492f04611610064578063c492f046146106c4578063dd62ed3e146106ed578063ea1644d51461072a578063f2fde38b14610753576101ed565b8063a9059cbb146105f6578063bdd795ef14610633578063bfd7928414610670578063c3c8cd80146106ad576101ed565b806395d89b41116100d157806395d89b411461055057806398a5c3151461057b5780639fda0581146105a4578063a2a957bb146105cd576101ed565b80637d1db4a5146104a65780638da5cb5b146104d15780638f70ccf7146104fc5780638f9a55c014610525576101ed565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec1461041257806370a0823114610429578063715018a61461046657806374010ece1461047d576101ed565b8063313ce5671461036a57806349bd5a5e146103955780636b999053146103c05780636d8aa8f8146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632f9c4569146103165780632fd689e31461033f576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613692565b61077c565b005b34801561022757600080fd5b506102306108cc565b60405161023d9190613afe565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906135fe565b610909565b60405161027a9190613ac8565b60405180910390f35b34801561028f57600080fd5b50610298610927565b6040516102a59190613ae3565b60405180910390f35b3480156102ba57600080fd5b506102c361094d565b6040516102d09190613d00565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190613573565b61095f565b60405161030d9190613ac8565b60405180910390f35b34801561032257600080fd5b5061033d600480360381019061033891906135c2565b610a38565b005b34801561034b57600080fd5b50610354610bbb565b6040516103619190613d00565b60405180910390f35b34801561037657600080fd5b5061037f610bc1565b60405161038c9190613d75565b60405180910390f35b3480156103a157600080fd5b506103aa610bca565b6040516103b79190613aad565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190613496565b610bf0565b005b3480156103f557600080fd5b50610410600480360381019061040b91906136d3565b610ce0565b005b34801561041e57600080fd5b50610427610d92565b005b34801561043557600080fd5b50610450600480360381019061044b9190613496565b610ec2565b60405161045d9190613d00565b60405180910390f35b34801561047257600080fd5b5061047b610f13565b005b34801561048957600080fd5b506104a4600480360381019061049f91906136fc565b611066565b005b3480156104b257600080fd5b506104bb611105565b6040516104c89190613d00565b60405180910390f35b3480156104dd57600080fd5b506104e661110b565b6040516104f39190613aad565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906136d3565b611134565b005b34801561053157600080fd5b5061053a6111e6565b6040516105479190613d00565b60405180910390f35b34801561055c57600080fd5b506105656111ec565b6040516105729190613afe565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906136fc565b611229565b005b3480156105b057600080fd5b506105cb60048036038101906105c69190613524565b6112c8565b005b3480156105d957600080fd5b506105f460048036038101906105ef9190613725565b61152d565b005b34801561060257600080fd5b5061061d600480360381019061061891906135fe565b6115e4565b60405161062a9190613ac8565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190613496565b611602565b6040516106679190613ac8565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190613496565b611622565b6040516106a49190613ac8565b60405180910390f35b3480156106b957600080fd5b506106c2611642565b005b3480156106d057600080fd5b506106eb60048036038101906106e6919061363a565b61177a565b005b3480156106f957600080fd5b50610714600480360381019061070f91906134e8565b6118da565b6040516107219190613d00565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906136fc565b611961565b005b34801561075f57600080fd5b5061077a60048036038101906107759190613496565b611a00565b005b610784611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890613c60565b60405180910390fd5b60005b81518110156108c85760016011600084848151811061085c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108c09061403a565b915050610814565b5050565b60606040518060400160405280600c81526020017f5348494246464f4e20494e550000000000000000000000000000000000000000815250905090565b600061091d610916611bc2565b8484611bca565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b600061096c848484611d95565b610a2d84610978611bc2565b610a288560405180606001604052806028815260200161457060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109de611bc2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126df9092919063ffffffff16565b611bca565b600190509392505050565b610a40611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613c60565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613c20565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bf8611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90613c60565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ce8611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c90613c60565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd3611bc2565b73ffffffffffffffffffffffffffffffffffffffff161480610e495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e31611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b80610ea85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e90611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b610eb157600080fd5b6000479050610ebf81612743565b50565b6000610f0c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128cd565b9050919050565b610f1b611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90613c60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61106e611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290613c60565b60405180910390fd5b8060198190555050565b60195481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61113c611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c090613c60565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600c81526020017f5348494246464f4e20494e550000000000000000000000000000000000000000815250905090565b611231611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590613c60565b60405180910390fd5b80601b8190555050565b6112d0611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613c60565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b611535611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613c60565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006115f86115f1611bc2565b8484611d95565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611683611bc2565b73ffffffffffffffffffffffffffffffffffffffff1614806116f95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e1611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b806117585750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611740611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b61176157600080fd5b600061176c30610ec2565b90506117778161293b565b50565b611782611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613c60565b60405180910390fd5b60005b838390508110156118d457816005600086868581811061185b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906118709190613496565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806118cc9061403a565b915050611812565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611969611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90613c60565b60405180910390fd5b80601a8190555050565b611a08611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c90613c60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90613ba0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190613ce0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca190613bc0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d889190613d00565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90613ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613b20565b60405180910390fd5b60008111611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf90613c80565b60405180910390fd5b611ec061110b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f2e5750611efe61110b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f845750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fda5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123de57601860149054906101000a900460ff1661208057601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661207f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207690613b40565b60405180910390fd5b5b6019548111156120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613b80565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121695750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90613be0565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461225557601a548161220a84610ec2565b6122149190613e36565b10612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90613cc0565b60405180910390fd5b5b600061226030610ec2565b90506000601b548210159050601954821061227b5760195491505b8080156122955750601860159054906101000a900460ff16155b80156122ef5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123075750601860169054906101000a900460ff165b801561235d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123b35750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123db576123c18261293b565b600047905060008111156123d9576123d847612743565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124855750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125385750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125375750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561254657600090506126cd565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125f15750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561260957600954600d81905550600a54600e819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126b45750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126cc57600b54600d81905550600c54600e819055505b5b6126d984848484612c35565b50505050565b6000838311158290612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e9190613afe565b60405180910390fd5b50600083856127369190613f17565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612793600584612c6290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127be573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61280f600284612c6290919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561283a573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61289e600a612890600386612cac90919063ffffffff16565b612c6290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128c9573d6000803e3d6000fd5b5050565b6000600654821115612914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290b90613b60565b60405180910390fd5b600061291e612d27565b90506129338184612c6290919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612999577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156129c75781602001602082028036833780820191505090505b5090503081600081518110612a05577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612aa757600080fd5b505afa158015612abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612adf91906134bf565b81600181518110612b19577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b8030601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bca565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612be4959493929190613d1b565b600060405180830381600087803b158015612bfe57600080fd5b505af1158015612c12573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612c4357612c42612d52565b5b612c4e848484612d95565b80612c5c57612c5b612f60565b5b50505050565b6000612ca483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f74565b905092915050565b600080831415612cbf5760009050612d21565b60008284612ccd9190613ebd565b9050828482612cdc9190613e8c565b14612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390613c40565b60405180910390fd5b809150505b92915050565b6000806000612d34612fd7565b91509150612d4b8183612c6290919063ffffffff16565b9250505090565b6000600d54148015612d6657506000600e54145b15612d7057612d93565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612da78761303c565b955095509550955095509550612e0586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130ee90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee68161314c565b612ef08483613209565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f4d9190613d00565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb29190613afe565b60405180910390fd5b5060008385612fca9190613e8c565b9050809150509392505050565b60008060006006549050600069d3c21bcecceda1000000905061300f69d3c21bcecceda1000000600654612c6290919063ffffffff16565b82101561302f5760065469d3c21bcecceda1000000935093505050613038565b81819350935050505b9091565b60008060008060008060008060006130598a600d54600e54613243565b9250925092506000613069612d27565b9050600080600061307c8e8787876132d9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006130e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126df565b905092915050565b60008082846130fd9190613e36565b905083811015613142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313990613c00565b60405180910390fd5b8091505092915050565b6000613156612d27565b9050600061316d8284612cac90919063ffffffff16565b90506131c181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130ee90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61321e826006546130a490919063ffffffff16565b600681905550613239816007546130ee90919063ffffffff16565b6007819055505050565b60008060008061326f6064613261888a612cac90919063ffffffff16565b612c6290919063ffffffff16565b90506000613299606461328b888b612cac90919063ffffffff16565b612c6290919063ffffffff16565b905060006132c2826132b4858c6130a490919063ffffffff16565b6130a490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806132f28589612cac90919063ffffffff16565b905060006133098689612cac90919063ffffffff16565b905060006133208789612cac90919063ffffffff16565b905060006133498261333b85876130a490919063ffffffff16565b6130a490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061337561337084613db5565b613d90565b9050808382526020820190508285602086028201111561339457600080fd5b60005b858110156133c457816133aa88826133ce565b845260208401935060208301925050600181019050613397565b5050509392505050565b6000813590506133dd8161452a565b92915050565b6000815190506133f28161452a565b92915050565b60008083601f84011261340a57600080fd5b8235905067ffffffffffffffff81111561342357600080fd5b60208301915083602082028301111561343b57600080fd5b9250929050565b600082601f83011261345357600080fd5b8135613463848260208601613362565b91505092915050565b60008135905061347b81614541565b92915050565b60008135905061349081614558565b92915050565b6000602082840312156134a857600080fd5b60006134b6848285016133ce565b91505092915050565b6000602082840312156134d157600080fd5b60006134df848285016133e3565b91505092915050565b600080604083850312156134fb57600080fd5b6000613509858286016133ce565b925050602061351a858286016133ce565b9150509250929050565b60008060006060848603121561353957600080fd5b6000613547868287016133ce565b9350506020613558868287016133ce565b9250506040613569868287016133ce565b9150509250925092565b60008060006060848603121561358857600080fd5b6000613596868287016133ce565b93505060206135a7868287016133ce565b92505060406135b886828701613481565b9150509250925092565b600080604083850312156135d557600080fd5b60006135e3858286016133ce565b92505060206135f48582860161346c565b9150509250929050565b6000806040838503121561361157600080fd5b600061361f858286016133ce565b925050602061363085828601613481565b9150509250929050565b60008060006040848603121561364f57600080fd5b600084013567ffffffffffffffff81111561366957600080fd5b613675868287016133f8565b935093505060206136888682870161346c565b9150509250925092565b6000602082840312156136a457600080fd5b600082013567ffffffffffffffff8111156136be57600080fd5b6136ca84828501613442565b91505092915050565b6000602082840312156136e557600080fd5b60006136f38482850161346c565b91505092915050565b60006020828403121561370e57600080fd5b600061371c84828501613481565b91505092915050565b6000806000806080858703121561373b57600080fd5b600061374987828801613481565b945050602061375a87828801613481565b935050604061376b87828801613481565b925050606061377c87828801613481565b91505092959194509250565b600061379483836137a0565b60208301905092915050565b6137a981613f4b565b82525050565b6137b881613f4b565b82525050565b60006137c982613df1565b6137d38185613e14565b93506137de83613de1565b8060005b8381101561380f5781516137f68882613788565b975061380183613e07565b9250506001810190506137e2565b5085935050505092915050565b61382581613f5d565b82525050565b61383481613fa0565b82525050565b61384381613fc4565b82525050565b600061385482613dfc565b61385e8185613e25565b935061386e818560208601613fd6565b61387781614110565b840191505092915050565b600061388f602383613e25565b915061389a82614121565b604082019050919050565b60006138b2603f83613e25565b91506138bd82614170565b604082019050919050565b60006138d5602a83613e25565b91506138e0826141bf565b604082019050919050565b60006138f8601c83613e25565b91506139038261420e565b602082019050919050565b600061391b602683613e25565b915061392682614237565b604082019050919050565b600061393e602283613e25565b915061394982614286565b604082019050919050565b6000613961602383613e25565b915061396c826142d5565b604082019050919050565b6000613984601b83613e25565b915061398f82614324565b602082019050919050565b60006139a7601783613e25565b91506139b28261434d565b602082019050919050565b60006139ca602183613e25565b91506139d582614376565b604082019050919050565b60006139ed602083613e25565b91506139f8826143c5565b602082019050919050565b6000613a10602983613e25565b9150613a1b826143ee565b604082019050919050565b6000613a33602583613e25565b9150613a3e8261443d565b604082019050919050565b6000613a56602383613e25565b9150613a618261448c565b604082019050919050565b6000613a79602483613e25565b9150613a84826144db565b604082019050919050565b613a9881613f89565b82525050565b613aa781613f93565b82525050565b6000602082019050613ac260008301846137af565b92915050565b6000602082019050613add600083018461381c565b92915050565b6000602082019050613af8600083018461382b565b92915050565b60006020820190508181036000830152613b188184613849565b905092915050565b60006020820190508181036000830152613b3981613882565b9050919050565b60006020820190508181036000830152613b59816138a5565b9050919050565b60006020820190508181036000830152613b79816138c8565b9050919050565b60006020820190508181036000830152613b99816138eb565b9050919050565b60006020820190508181036000830152613bb98161390e565b9050919050565b60006020820190508181036000830152613bd981613931565b9050919050565b60006020820190508181036000830152613bf981613954565b9050919050565b60006020820190508181036000830152613c1981613977565b9050919050565b60006020820190508181036000830152613c398161399a565b9050919050565b60006020820190508181036000830152613c59816139bd565b9050919050565b60006020820190508181036000830152613c79816139e0565b9050919050565b60006020820190508181036000830152613c9981613a03565b9050919050565b60006020820190508181036000830152613cb981613a26565b9050919050565b60006020820190508181036000830152613cd981613a49565b9050919050565b60006020820190508181036000830152613cf981613a6c565b9050919050565b6000602082019050613d156000830184613a8f565b92915050565b600060a082019050613d306000830188613a8f565b613d3d602083018761383a565b8181036040830152613d4f81866137be565b9050613d5e60608301856137af565b613d6b6080830184613a8f565b9695505050505050565b6000602082019050613d8a6000830184613a9e565b92915050565b6000613d9a613dab565b9050613da68282614009565b919050565b6000604051905090565b600067ffffffffffffffff821115613dd057613dcf6140e1565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e4182613f89565b9150613e4c83613f89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e8157613e80614083565b5b828201905092915050565b6000613e9782613f89565b9150613ea283613f89565b925082613eb257613eb16140b2565b5b828204905092915050565b6000613ec882613f89565b9150613ed383613f89565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f0c57613f0b614083565b5b828202905092915050565b6000613f2282613f89565b9150613f2d83613f89565b925082821015613f4057613f3f614083565b5b828203905092915050565b6000613f5682613f69565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613fab82613fb2565b9050919050565b6000613fbd82613f69565b9050919050565b6000613fcf82613f89565b9050919050565b60005b83811015613ff4578082015181840152602081019050613fd9565b83811115614003576000848401525b50505050565b61401282614110565b810181811067ffffffffffffffff82111715614031576140306140e1565b5b80604052505050565b600061404582613f89565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561407857614077614083565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61453381613f4b565b811461453e57600080fd5b50565b61454a81613f5d565b811461455557600080fd5b50565b61456181613f89565b811461456c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2d585d7970a00742e8299c3949d23d023e5741eba9ae19e6a612000133908c864736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c80637d1db4a511610102578063a9059cbb11610095578063c492f04611610064578063c492f046146106c4578063dd62ed3e146106ed578063ea1644d51461072a578063f2fde38b14610753576101ed565b8063a9059cbb146105f6578063bdd795ef14610633578063bfd7928414610670578063c3c8cd80146106ad576101ed565b806395d89b41116100d157806395d89b411461055057806398a5c3151461057b5780639fda0581146105a4578063a2a957bb146105cd576101ed565b80637d1db4a5146104a65780638da5cb5b146104d15780638f70ccf7146104fc5780638f9a55c014610525576101ed565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec1461041257806370a0823114610429578063715018a61461046657806374010ece1461047d576101ed565b8063313ce5671461036a57806349bd5a5e146103955780636b999053146103c05780636d8aa8f8146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632f9c4569146103165780632fd689e31461033f576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613692565b61077c565b005b34801561022757600080fd5b506102306108cc565b60405161023d9190613afe565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906135fe565b610909565b60405161027a9190613ac8565b60405180910390f35b34801561028f57600080fd5b50610298610927565b6040516102a59190613ae3565b60405180910390f35b3480156102ba57600080fd5b506102c361094d565b6040516102d09190613d00565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb9190613573565b61095f565b60405161030d9190613ac8565b60405180910390f35b34801561032257600080fd5b5061033d600480360381019061033891906135c2565b610a38565b005b34801561034b57600080fd5b50610354610bbb565b6040516103619190613d00565b60405180910390f35b34801561037657600080fd5b5061037f610bc1565b60405161038c9190613d75565b60405180910390f35b3480156103a157600080fd5b506103aa610bca565b6040516103b79190613aad565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190613496565b610bf0565b005b3480156103f557600080fd5b50610410600480360381019061040b91906136d3565b610ce0565b005b34801561041e57600080fd5b50610427610d92565b005b34801561043557600080fd5b50610450600480360381019061044b9190613496565b610ec2565b60405161045d9190613d00565b60405180910390f35b34801561047257600080fd5b5061047b610f13565b005b34801561048957600080fd5b506104a4600480360381019061049f91906136fc565b611066565b005b3480156104b257600080fd5b506104bb611105565b6040516104c89190613d00565b60405180910390f35b3480156104dd57600080fd5b506104e661110b565b6040516104f39190613aad565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906136d3565b611134565b005b34801561053157600080fd5b5061053a6111e6565b6040516105479190613d00565b60405180910390f35b34801561055c57600080fd5b506105656111ec565b6040516105729190613afe565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906136fc565b611229565b005b3480156105b057600080fd5b506105cb60048036038101906105c69190613524565b6112c8565b005b3480156105d957600080fd5b506105f460048036038101906105ef9190613725565b61152d565b005b34801561060257600080fd5b5061061d600480360381019061061891906135fe565b6115e4565b60405161062a9190613ac8565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190613496565b611602565b6040516106679190613ac8565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190613496565b611622565b6040516106a49190613ac8565b60405180910390f35b3480156106b957600080fd5b506106c2611642565b005b3480156106d057600080fd5b506106eb60048036038101906106e6919061363a565b61177a565b005b3480156106f957600080fd5b50610714600480360381019061070f91906134e8565b6118da565b6040516107219190613d00565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906136fc565b611961565b005b34801561075f57600080fd5b5061077a60048036038101906107759190613496565b611a00565b005b610784611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890613c60565b60405180910390fd5b60005b81518110156108c85760016011600084848151811061085c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108c09061403a565b915050610814565b5050565b60606040518060400160405280600c81526020017f5348494246464f4e20494e550000000000000000000000000000000000000000815250905090565b600061091d610916611bc2565b8484611bca565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b600061096c848484611d95565b610a2d84610978611bc2565b610a288560405180606001604052806028815260200161457060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109de611bc2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126df9092919063ffffffff16565b611bca565b600190509392505050565b610a40611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613c60565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613c20565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bf8611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90613c60565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ce8611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c90613c60565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd3611bc2565b73ffffffffffffffffffffffffffffffffffffffff161480610e495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e31611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b80610ea85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e90611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b610eb157600080fd5b6000479050610ebf81612743565b50565b6000610f0c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128cd565b9050919050565b610f1b611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90613c60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61106e611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290613c60565b60405180910390fd5b8060198190555050565b60195481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61113c611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c090613c60565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600c81526020017f5348494246464f4e20494e550000000000000000000000000000000000000000815250905090565b611231611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590613c60565b60405180910390fd5b80601b8190555050565b6112d0611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613c60565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b611535611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613c60565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006115f86115f1611bc2565b8484611d95565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611683611bc2565b73ffffffffffffffffffffffffffffffffffffffff1614806116f95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e1611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b806117585750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611740611bc2565b73ffffffffffffffffffffffffffffffffffffffff16145b61176157600080fd5b600061176c30610ec2565b90506117778161293b565b50565b611782611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613c60565b60405180910390fd5b60005b838390508110156118d457816005600086868581811061185b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906118709190613496565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806118cc9061403a565b915050611812565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611969611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90613c60565b60405180910390fd5b80601a8190555050565b611a08611bc2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c90613c60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90613ba0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190613ce0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca190613bc0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d889190613d00565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90613ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613b20565b60405180910390fd5b60008111611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf90613c80565b60405180910390fd5b611ec061110b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f2e5750611efe61110b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f845750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fda5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123de57601860149054906101000a900460ff1661208057601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661207f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207690613b40565b60405180910390fd5b5b6019548111156120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613b80565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121695750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90613be0565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461225557601a548161220a84610ec2565b6122149190613e36565b10612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90613cc0565b60405180910390fd5b5b600061226030610ec2565b90506000601b548210159050601954821061227b5760195491505b8080156122955750601860159054906101000a900460ff16155b80156122ef5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123075750601860169054906101000a900460ff165b801561235d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123b35750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123db576123c18261293b565b600047905060008111156123d9576123d847612743565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124855750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125385750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125375750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561254657600090506126cd565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125f15750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561260957600954600d81905550600a54600e819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126b45750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126cc57600b54600d81905550600c54600e819055505b5b6126d984848484612c35565b50505050565b6000838311158290612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e9190613afe565b60405180910390fd5b50600083856127369190613f17565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612793600584612c6290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127be573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61280f600284612c6290919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561283a573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61289e600a612890600386612cac90919063ffffffff16565b612c6290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128c9573d6000803e3d6000fd5b5050565b6000600654821115612914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290b90613b60565b60405180910390fd5b600061291e612d27565b90506129338184612c6290919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612999577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156129c75781602001602082028036833780820191505090505b5090503081600081518110612a05577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612aa757600080fd5b505afa158015612abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612adf91906134bf565b81600181518110612b19577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b8030601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bca565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612be4959493929190613d1b565b600060405180830381600087803b158015612bfe57600080fd5b505af1158015612c12573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612c4357612c42612d52565b5b612c4e848484612d95565b80612c5c57612c5b612f60565b5b50505050565b6000612ca483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f74565b905092915050565b600080831415612cbf5760009050612d21565b60008284612ccd9190613ebd565b9050828482612cdc9190613e8c565b14612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390613c40565b60405180910390fd5b809150505b92915050565b6000806000612d34612fd7565b91509150612d4b8183612c6290919063ffffffff16565b9250505090565b6000600d54148015612d6657506000600e54145b15612d7057612d93565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612da78761303c565b955095509550955095509550612e0586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130ee90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee68161314c565b612ef08483613209565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f4d9190613d00565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb29190613afe565b60405180910390fd5b5060008385612fca9190613e8c565b9050809150509392505050565b60008060006006549050600069d3c21bcecceda1000000905061300f69d3c21bcecceda1000000600654612c6290919063ffffffff16565b82101561302f5760065469d3c21bcecceda1000000935093505050613038565b81819350935050505b9091565b60008060008060008060008060006130598a600d54600e54613243565b9250925092506000613069612d27565b9050600080600061307c8e8787876132d9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006130e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126df565b905092915050565b60008082846130fd9190613e36565b905083811015613142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313990613c00565b60405180910390fd5b8091505092915050565b6000613156612d27565b9050600061316d8284612cac90919063ffffffff16565b90506131c181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130ee90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61321e826006546130a490919063ffffffff16565b600681905550613239816007546130ee90919063ffffffff16565b6007819055505050565b60008060008061326f6064613261888a612cac90919063ffffffff16565b612c6290919063ffffffff16565b90506000613299606461328b888b612cac90919063ffffffff16565b612c6290919063ffffffff16565b905060006132c2826132b4858c6130a490919063ffffffff16565b6130a490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806132f28589612cac90919063ffffffff16565b905060006133098689612cac90919063ffffffff16565b905060006133208789612cac90919063ffffffff16565b905060006133498261333b85876130a490919063ffffffff16565b6130a490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061337561337084613db5565b613d90565b9050808382526020820190508285602086028201111561339457600080fd5b60005b858110156133c457816133aa88826133ce565b845260208401935060208301925050600181019050613397565b5050509392505050565b6000813590506133dd8161452a565b92915050565b6000815190506133f28161452a565b92915050565b60008083601f84011261340a57600080fd5b8235905067ffffffffffffffff81111561342357600080fd5b60208301915083602082028301111561343b57600080fd5b9250929050565b600082601f83011261345357600080fd5b8135613463848260208601613362565b91505092915050565b60008135905061347b81614541565b92915050565b60008135905061349081614558565b92915050565b6000602082840312156134a857600080fd5b60006134b6848285016133ce565b91505092915050565b6000602082840312156134d157600080fd5b60006134df848285016133e3565b91505092915050565b600080604083850312156134fb57600080fd5b6000613509858286016133ce565b925050602061351a858286016133ce565b9150509250929050565b60008060006060848603121561353957600080fd5b6000613547868287016133ce565b9350506020613558868287016133ce565b9250506040613569868287016133ce565b9150509250925092565b60008060006060848603121561358857600080fd5b6000613596868287016133ce565b93505060206135a7868287016133ce565b92505060406135b886828701613481565b9150509250925092565b600080604083850312156135d557600080fd5b60006135e3858286016133ce565b92505060206135f48582860161346c565b9150509250929050565b6000806040838503121561361157600080fd5b600061361f858286016133ce565b925050602061363085828601613481565b9150509250929050565b60008060006040848603121561364f57600080fd5b600084013567ffffffffffffffff81111561366957600080fd5b613675868287016133f8565b935093505060206136888682870161346c565b9150509250925092565b6000602082840312156136a457600080fd5b600082013567ffffffffffffffff8111156136be57600080fd5b6136ca84828501613442565b91505092915050565b6000602082840312156136e557600080fd5b60006136f38482850161346c565b91505092915050565b60006020828403121561370e57600080fd5b600061371c84828501613481565b91505092915050565b6000806000806080858703121561373b57600080fd5b600061374987828801613481565b945050602061375a87828801613481565b935050604061376b87828801613481565b925050606061377c87828801613481565b91505092959194509250565b600061379483836137a0565b60208301905092915050565b6137a981613f4b565b82525050565b6137b881613f4b565b82525050565b60006137c982613df1565b6137d38185613e14565b93506137de83613de1565b8060005b8381101561380f5781516137f68882613788565b975061380183613e07565b9250506001810190506137e2565b5085935050505092915050565b61382581613f5d565b82525050565b61383481613fa0565b82525050565b61384381613fc4565b82525050565b600061385482613dfc565b61385e8185613e25565b935061386e818560208601613fd6565b61387781614110565b840191505092915050565b600061388f602383613e25565b915061389a82614121565b604082019050919050565b60006138b2603f83613e25565b91506138bd82614170565b604082019050919050565b60006138d5602a83613e25565b91506138e0826141bf565b604082019050919050565b60006138f8601c83613e25565b91506139038261420e565b602082019050919050565b600061391b602683613e25565b915061392682614237565b604082019050919050565b600061393e602283613e25565b915061394982614286565b604082019050919050565b6000613961602383613e25565b915061396c826142d5565b604082019050919050565b6000613984601b83613e25565b915061398f82614324565b602082019050919050565b60006139a7601783613e25565b91506139b28261434d565b602082019050919050565b60006139ca602183613e25565b91506139d582614376565b604082019050919050565b60006139ed602083613e25565b91506139f8826143c5565b602082019050919050565b6000613a10602983613e25565b9150613a1b826143ee565b604082019050919050565b6000613a33602583613e25565b9150613a3e8261443d565b604082019050919050565b6000613a56602383613e25565b9150613a618261448c565b604082019050919050565b6000613a79602483613e25565b9150613a84826144db565b604082019050919050565b613a9881613f89565b82525050565b613aa781613f93565b82525050565b6000602082019050613ac260008301846137af565b92915050565b6000602082019050613add600083018461381c565b92915050565b6000602082019050613af8600083018461382b565b92915050565b60006020820190508181036000830152613b188184613849565b905092915050565b60006020820190508181036000830152613b3981613882565b9050919050565b60006020820190508181036000830152613b59816138a5565b9050919050565b60006020820190508181036000830152613b79816138c8565b9050919050565b60006020820190508181036000830152613b99816138eb565b9050919050565b60006020820190508181036000830152613bb98161390e565b9050919050565b60006020820190508181036000830152613bd981613931565b9050919050565b60006020820190508181036000830152613bf981613954565b9050919050565b60006020820190508181036000830152613c1981613977565b9050919050565b60006020820190508181036000830152613c398161399a565b9050919050565b60006020820190508181036000830152613c59816139bd565b9050919050565b60006020820190508181036000830152613c79816139e0565b9050919050565b60006020820190508181036000830152613c9981613a03565b9050919050565b60006020820190508181036000830152613cb981613a26565b9050919050565b60006020820190508181036000830152613cd981613a49565b9050919050565b60006020820190508181036000830152613cf981613a6c565b9050919050565b6000602082019050613d156000830184613a8f565b92915050565b600060a082019050613d306000830188613a8f565b613d3d602083018761383a565b8181036040830152613d4f81866137be565b9050613d5e60608301856137af565b613d6b6080830184613a8f565b9695505050505050565b6000602082019050613d8a6000830184613a9e565b92915050565b6000613d9a613dab565b9050613da68282614009565b919050565b6000604051905090565b600067ffffffffffffffff821115613dd057613dcf6140e1565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e4182613f89565b9150613e4c83613f89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e8157613e80614083565b5b828201905092915050565b6000613e9782613f89565b9150613ea283613f89565b925082613eb257613eb16140b2565b5b828204905092915050565b6000613ec882613f89565b9150613ed383613f89565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f0c57613f0b614083565b5b828202905092915050565b6000613f2282613f89565b9150613f2d83613f89565b925082821015613f4057613f3f614083565b5b828203905092915050565b6000613f5682613f69565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613fab82613fb2565b9050919050565b6000613fbd82613f69565b9050919050565b6000613fcf82613f89565b9050919050565b60005b83811015613ff4578082015181840152602081019050613fd9565b83811115614003576000848401525b50505050565b61401282614110565b810181811067ffffffffffffffff82111715614031576140306140e1565b5b80604052505050565b600061404582613f89565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561407857614077614083565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61453381613f4b565b811461453e57600080fd5b50565b61454a81613f5d565b811461455557600080fd5b50565b61456181613f89565b811461456c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2d585d7970a00742e8299c3949d23d023e5741eba9ae19e6a612000133908c864736f6c63430008040033

Deployed Bytecode Sourcemap

4184:14984:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13693:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7178:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8103:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5866:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8304:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18568:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6193:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7364:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5914:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13870:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17942:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13411:270;;;;;;;;;;;;;:::i;:::-;;7558:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1663:148;;;;;;;;;;;;;:::i;:::-;;18082:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6064:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1449:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13023:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6128:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7269:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17747:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18772:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17394:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7704:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5399:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13132:271;;;;;;;;;;;;;:::i;:::-;;18325:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7911:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18202:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1823:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13693:169;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13769:9:::1;13764:91;13788:5;:12;13784:1;:16;13764:91;;;13839:4;13822;:14;13827:5;13833:1;13827:8;;;;;;;;;;;;;;;;;;;;;;13822:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13802:3;;;;;:::i;:::-;;;;13764:91;;;;13693:169:::0;:::o;7178:83::-;7215:13;7248:5;;;;;;;;;;;;;;;;;7241:12;;7178:83;:::o;8103:193::-;8205:4;8227:39;8236:12;:10;:12::i;:::-;8250:7;8259:6;8227:8;:39::i;:::-;8284:4;8277:11;;8103:193;;;;:::o;5866:41::-;;;;;;;;;;;;;:::o;7455:95::-;7508:7;4750:24;7528:14;;7455:95;:::o;8304:446::-;8436:4;8453:36;8463:6;8471:9;8482:6;8453:9;:36::i;:::-;8500:220;8523:6;8544:12;:10;:12::i;:::-;8571:138;8627:6;8571:138;;;;;;;;;;;;;;;;;:11;:19;8583:6;8571:19;;;;;;;;;;;;;;;:33;8591:12;:10;:12::i;:::-;8571:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8500:8;:220::i;:::-;8738:4;8731:11;;8304:446;;;;;:::o;18568:196::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18682:7:::1;18660:29;;:9;:18;18670:7;18660:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;18652:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18749:7;18728:9;:18;18738:7;18728:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18568:196:::0;;:::o;6193:58::-;;;;:::o;7364:83::-;7405:5;4424:1;7423:16;;7364:83;:::o;5914:28::-;;;;;;;;;;;;;:::o;13870:92::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13949:5:::1;13934:4;:12;13939:6;13934:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13870:92:::0;:::o;17942:101::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18023:12:::1;18009:11;;:26;;;;;;;;;;;;;;;;;;17942:101:::0;:::o;13411:270::-;13477:19;;;;;;;;;;;13461:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13516:17;;;;;;;;;;;13500:33;;:12;:10;:12::i;:::-;:33;;;13461:72;:107;;;;13553:15;;;;;;;;;;;13537:31;;:12;:10;:12::i;:::-;:31;;;13461:107;13453:116;;;;;;13580:26;13609:21;13580:50;;13641:32;13654:18;13641:12;:32::i;:::-;13411:270;:::o;7558:138::-;7624:7;7651:37;7671:7;:16;7679:7;7671:16;;;;;;;;;;;;;;;;7651:19;:37::i;:::-;7644:44;;7558:138;;;:::o;1663:148::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1770:1:::1;1733:40;;1754:6;::::0;::::1;;;;;;;;1733:40;;;;;;;;;;;;1801:1;1784:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1663:148::o:0;18082:108::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18171:11:::1;18156:12;:26;;;;18082:108:::0;:::o;6064:51::-;;;;:::o;1449:79::-;1487:7;1514:6;;;;;;;;;;;1507:13;;1449:79;:::o;13023:101::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13104:12:::1;13090:11;;:26;;;;;;;;;;;;;;;;;;13023:101:::0;:::o;6128:54::-;;;;:::o;7269:87::-;7308:13;7341:7;;;;;;;;;;;;;;;;;7334:14;;7269:87;:::o;17747:139::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17860:18:::1;17838:19;:40;;;;17747:139:::0;:::o;18772:393::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18916:11:::1;18886:19;;:42;;;;;;;;;;;;;;;;;;18967:11;18939:17;;:40;;;;;;;;;;;;;;;;;;19016:11;18990:15;;:38;;;;;;;;;;;;;;;;;;19067:4;19033:18;:31;19052:11;19033:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19110:4;19076:18;:31;19095:11;19076:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19153:4;19119:18;:31;19138:11;19119:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18772:393:::0;;;:::o;17394:301::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17545:13:::1;17528:14;:30;;;;17587:14;17569:15;:32;;;;17637:11;17622:12;:26;;;;17675:12;17659:13;:28;;;;17394:301:::0;;;;:::o;7704:199::-;7809:4;7831:42;7841:12;:10;:12::i;:::-;7855:9;7866:6;7831:9;:42::i;:::-;7891:4;7884:11;;7704:199;;;;:::o;5442:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5399:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13132:271::-;13198:19;;;;;;;;;;;13182:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13237:17;;;;;;;;;;;13221:33;;:12;:10;:12::i;:::-;:33;;;13182:72;:107;;;;13274:15;;;;;;;;;;;13258:31;;:12;:10;:12::i;:::-;:31;;;13182:107;13174:116;;;;;;13301:23;13327:24;13345:4;13327:9;:24::i;:::-;13301:50;;13362:33;13379:15;13362:16;:33::i;:::-;13132:271;:::o;18325:234::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18442:9:::1;18438:114;18461:8;;:15;;18457:1;:19;18438:114;;;18532:8;18498:18;:31;18517:8;;18526:1;18517:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18498:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18478:3;;;;;:::i;:::-;;;;18438:114;;;;18325:234:::0;;;:::o;7911:184::-;8028:7;8060:11;:18;8072:5;8060:18;;;;;;;;;;;;;;;:27;8079:7;8060:27;;;;;;;;;;;;;;;;8053:34;;7911:184;;;;:::o;18202:115::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18296:13:::1;18279:14;:30;;;;18202:115:::0;:::o;1823:244::-;1586:12;:10;:12::i;:::-;1576:22;;:6;;;;;;;;;;:22;;;1568:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1932:1:::1;1912:22;;:8;:22;;;;1904:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2022:8;1993:38;;2014:6;::::0;::::1;;;;;;;;1993:38;;;;;;;;;;;;2051:8;2042:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1823:244:::0;:::o;208:98::-;261:7;288:10;281:17;;208:98;:::o;9453:369::-;9597:1;9580:19;;:5;:19;;;;9572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9678:1;9659:21;;:7;:21;;;;9651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9760:6;9730:11;:18;9742:5;9730:18;;;;;;;;;;;;;;;:27;9749:7;9730:27;;;;;;;;;;;;;;;:36;;;;9798:7;9782:32;;9791:5;9782:32;;;9807:6;9782:32;;;;;;:::i;:::-;;;;;;;;9453:369;;;:::o;9830:2466::-;9968:1;9952:18;;:4;:18;;;;9944:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10045:1;10031:16;;:2;:16;;;;10023:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10115:1;10106:6;:10;10098:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10187:7;:5;:7::i;:::-;10179:15;;:4;:15;;;;:32;;;;;10204:7;:5;:7::i;:::-;10198:13;;:2;:13;;;;10179:32;:52;;;;;10216:9;:15;10226:4;10216:15;;;;;;;;;;;;;;;;;;;;;;;;;10215:16;10179:52;:70;;;;;10236:9;:13;10246:2;10236:13;;;;;;;;;;;;;;;;;;;;;;;;;10235:14;10179:70;10175:1359;;;10318:11;;;;;;;;;;;10313:144;;10358:9;:15;10368:4;10358:15;;;;;;;;;;;;;;;;;;;;;;;;;10350:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10313:144;10505:12;;10495:6;:22;;10487:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10574:4;:10;10579:4;10574:10;;;;;;;;;;;;;;;;;;;;;;;;;10573:11;:24;;;;;10589:4;:8;10594:2;10589:8;;;;;;;;;;;;;;;;;;;;;;;;;10588:9;10573:24;10565:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:13;;;;;;;;;;;10669:19;;:2;:19;;;10666:146;;10742:14;;10733:6;10717:13;10727:2;10717:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10709:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10666:146;10840:28;10871:24;10889:4;10871:9;:24::i;:::-;10840:55;;10910:12;10949:19;;10925:20;:43;;10910:58;;11012:12;;10988:20;:36;10985:124;;11081:12;;11058:35;;10985:124;11141:7;:18;;;;;11153:6;;;;;;;;;;;11152:7;11141:18;:43;;;;;11171:13;;;;;;;;;;;11163:21;;:4;:21;;;;11141:43;:58;;;;;11188:11;;;;;;;;;;;11141:58;:87;;;;;11204:18;:24;11223:4;11204:24;;;;;;;;;;;;;;;;;;;;;;;;;11203:25;11141:87;:114;;;;;11233:18;:22;11252:2;11233:22;;;;;;;;;;;;;;;;;;;;;;;;;11232:23;11141:114;11137:386;;;11276:38;11293:20;11276:16;:38::i;:::-;11333:26;11362:21;11333:50;;11427:1;11406:18;:22;11402:106;;;11453:35;11466:21;11453:12;:35::i;:::-;11402:106;11137:386;;10175:1359;;;11554:12;11569:4;11554:19;;11618:18;:24;11637:4;11618:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11646:18;:22;11665:2;11646:22;;;;;;;;;;;;;;;;;;;;;;;;;11618:50;11617:102;;;;11682:13;;;;;;;;;;;11674:21;;:4;:21;;;;:44;;;;;11705:13;;;;;;;;;;;11699:19;;:2;:19;;;;11674:44;11617:102;11613:622;;;11746:5;11736:15;;11613:622;;;11841:13;;;;;;;;;;;11833:21;;:4;:21;;;:55;;;;;11872:15;;;;;;;;;;;11858:30;;:2;:30;;;;11833:55;11830:162;;;11921:14;;11909:9;:26;;;;11964:12;;11954:7;:22;;;;11830:162;12055:13;;;;;;;;;;;12049:19;;:2;:19;;;:55;;;;;12088:15;;;;;;;;;;;12072:32;;:4;:32;;;;12049:55;12045:165;;;12137:15;;12125:9;:27;;;;12181:13;;12171:7;:23;;;;12045:165;11613:622;12247:41;12262:4;12268:2;12272:6;12280:7;12247:14;:41::i;:::-;9830:2466;;;;:::o;2435:224::-;2555:7;2588:1;2583;:6;;2591:12;2575:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2615:9;2631:1;2627;:5;;;;:::i;:::-;2615:17;;2650:1;2643:8;;;2435:224;;;;;:::o;12795:218::-;12852:19;;;;;;;;;;;:28;;:43;12881:13;12892:1;12881:6;:10;;:13;;;;:::i;:::-;12852:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12906:17;;;;;;;;;;;:26;;:41;12933:13;12944:1;12933:6;:10;;:13;;;;:::i;:::-;12906:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12958:15;;;;;;;;;;;:24;;:47;12983:21;13001:2;12983:13;12994:1;12983:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12958:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12795:218;:::o;8758:323::-;8853:7;8911;;8900;:18;;8878:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8999:19;9021:10;:8;:10::i;:::-;8999:32;;9049:24;9061:11;9049:7;:11;;:24;;;;:::i;:::-;9042:31;;;8758:323;;;:::o;12304:483::-;6360:4;6351:6;;:13;;;;;;;;;;;;;;;;;;12382:21:::1;12420:1;12406:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12382:40;;12451:4;12433;12438:1;12433:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12477:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12467:4;12472:1;12467:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12510:62;12527:4;12542:15;;;;;;;;;;;12560:11;12510:8;:62::i;:::-;12583:15;;;;;;;;;;;:66;;;12664:11;12690:1;12706:4;12733;12753:15;12583:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6375:1;6396:5:::0;6387:6;;:14;;;;;;;;;;;;;;;;;;12304:483;:::o;13970:282::-;14126:7;14121:28;;14135:14;:12;:14::i;:::-;14121:28;14160:44;14178:6;14186:9;14197:6;14160:17;:44::i;:::-;14220:7;14215:29;;14229:15;:13;:15::i;:::-;14215:29;13970:282;;;;:::o;2921:132::-;2979:7;3006:39;3010:1;3013;3006:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2999:46;;2921:132;;;;:::o;2667:246::-;2725:7;2754:1;2749;:6;2745:47;;;2779:1;2772:8;;;;2745:47;2802:9;2818:1;2814;:5;;;;:::i;:::-;2802:17;;2847:1;2842;2838;:5;;;;:::i;:::-;:10;2830:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2904:1;2897:8;;;2667:246;;;;;:::o;16945:166::-;16987:7;17008:15;17025;17044:19;:17;:19::i;:::-;17007:56;;;;17083:20;17095:7;17083;:11;;:20;;;;:::i;:::-;17076:27;;;;16945:166;:::o;9089:231::-;9149:1;9136:9;;:14;:30;;;;;9165:1;9154:7;;:12;9136:30;9132:43;;;9168:7;;9132:43;9211:9;;9191:17;:29;;;;9249:7;;9231:15;:25;;;;9289:1;9277:9;:13;;;;9311:1;9301:7;:11;;;;9089:231;:::o;14260:610::-;14407:15;14437:23;14475:12;14502:23;14540:12;14567:13;14594:19;14605:7;14594:10;:19::i;:::-;14392:221;;;;;;;;;;;;14642:28;14662:7;14642;:15;14650:6;14642:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14624:7;:15;14632:6;14624:15;;;;;;;;;;;;;;;:46;;;;14702:39;14725:15;14702:7;:18;14710:9;14702:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14681:7;:18;14689:9;14681:18;;;;;;;;;;;;;;;:60;;;;14752:16;14762:5;14752:9;:16::i;:::-;14779:23;14791:4;14797;14779:11;:23::i;:::-;14835:9;14818:44;;14827:6;14818:44;;;14846:15;14818:44;;;;;;:::i;:::-;;;;;;;;14260:610;;;;;;;;;:::o;9328:117::-;9384:17;;9372:9;:29;;;;9422:15;;9412:7;:25;;;;9328:117::o;3061:223::-;3181:7;3213:1;3209;:5;3216:12;3201:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3240:9;3256:1;3252;:5;;;;:::i;:::-;3240:17;;3275:1;3268:8;;;3061:223;;;;;:::o;17119:263::-;17170:7;17179;17199:15;17217:7;;17199:25;;17235:15;4750:24;17235:25;;17285:20;4750:24;17285:7;;:11;;:20;;;;:::i;:::-;17275:7;:30;17271:61;;;17315:7;;4750:24;17307:25;;;;;;;;17271:61;17357:7;17366;17349:25;;;;;;17119:263;;;:::o;15289:625::-;15389:7;15411;15433;15455;15477;15499;15535:23;15560:12;15574:13;15604:40;15616:7;15625:9;;15636:7;;15604:11;:40::i;:::-;15534:110;;;;;;15655:19;15677:10;:8;:10::i;:::-;15655:32;;15699:15;15716:23;15741:12;15770:46;15782:7;15791:4;15797:5;15804:11;15770;:46::i;:::-;15698:118;;;;;;15845:7;15854:15;15871:4;15877:15;15894:4;15900:5;15837:69;;;;;;;;;;;;;;;;;;;15289:625;;;;;;;:::o;2291:136::-;2349:7;2376:43;2380:1;2383;2376:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2369:50;;2291:136;;;;:::o;2104:179::-;2162:7;2182:9;2198:1;2194;:5;;;;:::i;:::-;2182:17;;2223:1;2218;:6;;2210:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2274:1;2267:8;;;2104:179;;;;:::o;14878:211::-;14931:19;14953:10;:8;:10::i;:::-;14931:32;;14974:13;14990:22;15000:11;14990:5;:9;;:22;;;;:::i;:::-;14974:38;;15048:33;15075:5;15048:7;:22;15064:4;15048:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15023:7;:22;15039:4;15023:22;;;;;;;;;;;;;;;:58;;;;14878:211;;;:::o;15097:147::-;15175:17;15187:4;15175:7;;:11;;:17;;;;:::i;:::-;15165:7;:27;;;;15216:20;15231:4;15216:10;;:14;;:20;;;;:::i;:::-;15203:10;:33;;;;15097:147;;:::o;15922:471::-;16091:7;16113;16135;16170:12;16185:30;16211:3;16185:21;16197:8;16185:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16170:45;;16226:13;16242:28;16266:3;16242:19;16254:6;16242:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16226:44;;16281:23;16307:28;16329:5;16307:17;16319:4;16307:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16281:54;;16356:15;16373:4;16379:5;16348:37;;;;;;;;;15922:471;;;;;;;:::o;16401:536::-;16595:7;16617;16639;16674:15;16692:24;16704:11;16692:7;:11;;:24;;;;:::i;:::-;16674:42;;16727:12;16742:21;16751:11;16742:4;:8;;:21;;;;:::i;:::-;16727:36;;16774:13;16790:22;16800:11;16790:5;:9;;:22;;;;:::i;:::-;16774:38;;16823:23;16849:28;16871:5;16849:17;16861:4;16849:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16823:54;;16898:7;16907:15;16924:4;16890:39;;;;;;;;;;16401:536;;;;;;;;:::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:367::-;1069:8;1079:6;1129:3;1122:4;1114:6;1110:17;1106:27;1096:2;;1147:1;1144;1137:12;1096:2;1183:6;1170:20;1160:30;;1213:18;1205:6;1202:30;1199:2;;;1245:1;1242;1235:12;1199:2;1282:4;1274:6;1270:17;1258:29;;1336:3;1328:4;1320:6;1316:17;1306:8;1302:32;1299:41;1296:2;;;1353:1;1350;1343:12;1296:2;1086:277;;;;;:::o;1386:303::-;1457:5;1506:3;1499:4;1491:6;1487:17;1483:27;1473:2;;1524:1;1521;1514:12;1473:2;1564:6;1551:20;1589:94;1679:3;1671:6;1664:4;1656:6;1652:17;1589:94;:::i;:::-;1580:103;;1463:226;;;;;:::o;1695:133::-;1738:5;1776:6;1763:20;1754:29;;1792:30;1816:5;1792:30;:::i;:::-;1744:84;;;;:::o;1834:139::-;1880:5;1918:6;1905:20;1896:29;;1934:33;1961:5;1934:33;:::i;:::-;1886:87;;;;:::o;1979:262::-;2038:6;2087:2;2075:9;2066:7;2062:23;2058:32;2055:2;;;2103:1;2100;2093:12;2055:2;2146:1;2171:53;2216:7;2207:6;2196:9;2192:22;2171:53;:::i;:::-;2161:63;;2117:117;2045:196;;;;:::o;2247:284::-;2317:6;2366:2;2354:9;2345:7;2341:23;2337:32;2334:2;;;2382:1;2379;2372:12;2334:2;2425:1;2450:64;2506:7;2497:6;2486:9;2482:22;2450:64;:::i;:::-;2440:74;;2396:128;2324:207;;;;:::o;2537:407::-;2605:6;2613;2662:2;2650:9;2641:7;2637:23;2633:32;2630:2;;;2678:1;2675;2668:12;2630:2;2721:1;2746:53;2791:7;2782:6;2771:9;2767:22;2746:53;:::i;:::-;2736:63;;2692:117;2848:2;2874:53;2919:7;2910:6;2899:9;2895:22;2874:53;:::i;:::-;2864:63;;2819:118;2620:324;;;;;:::o;2950:552::-;3027:6;3035;3043;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3151:1;3176:53;3221:7;3212:6;3201:9;3197:22;3176:53;:::i;:::-;3166:63;;3122:117;3278:2;3304:53;3349:7;3340:6;3329:9;3325:22;3304:53;:::i;:::-;3294:63;;3249:118;3406:2;3432:53;3477:7;3468:6;3457:9;3453:22;3432:53;:::i;:::-;3422:63;;3377:118;3050:452;;;;;:::o;3508:552::-;3585:6;3593;3601;3650:2;3638:9;3629:7;3625:23;3621:32;3618:2;;;3666:1;3663;3656:12;3618:2;3709:1;3734:53;3779:7;3770:6;3759:9;3755:22;3734:53;:::i;:::-;3724:63;;3680:117;3836:2;3862:53;3907:7;3898:6;3887:9;3883:22;3862:53;:::i;:::-;3852:63;;3807:118;3964:2;3990:53;4035:7;4026:6;4015:9;4011:22;3990:53;:::i;:::-;3980:63;;3935:118;3608:452;;;;;:::o;4066:401::-;4131:6;4139;4188:2;4176:9;4167:7;4163:23;4159:32;4156:2;;;4204:1;4201;4194:12;4156:2;4247:1;4272:53;4317:7;4308:6;4297:9;4293:22;4272:53;:::i;:::-;4262:63;;4218:117;4374:2;4400:50;4442:7;4433:6;4422:9;4418:22;4400:50;:::i;:::-;4390:60;;4345:115;4146:321;;;;;:::o;4473:407::-;4541:6;4549;4598:2;4586:9;4577:7;4573:23;4569:32;4566:2;;;4614:1;4611;4604:12;4566:2;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4784:2;4810:53;4855:7;4846:6;4835:9;4831:22;4810:53;:::i;:::-;4800:63;;4755:118;4556:324;;;;;:::o;4886:564::-;4978:6;4986;4994;5043:2;5031:9;5022:7;5018:23;5014:32;5011:2;;;5059:1;5056;5049:12;5011:2;5130:1;5119:9;5115:17;5102:31;5160:18;5152:6;5149:30;5146:2;;;5192:1;5189;5182:12;5146:2;5228:80;5300:7;5291:6;5280:9;5276:22;5228:80;:::i;:::-;5210:98;;;;5073:245;5357:2;5383:50;5425:7;5416:6;5405:9;5401:22;5383:50;:::i;:::-;5373:60;;5328:115;5001:449;;;;;:::o;5456:405::-;5540:6;5589:2;5577:9;5568:7;5564:23;5560:32;5557:2;;;5605:1;5602;5595:12;5557:2;5676:1;5665:9;5661:17;5648:31;5706:18;5698:6;5695:30;5692:2;;;5738:1;5735;5728:12;5692:2;5766:78;5836:7;5827:6;5816:9;5812:22;5766:78;:::i;:::-;5756:88;;5619:235;5547:314;;;;:::o;5867:256::-;5923:6;5972:2;5960:9;5951:7;5947:23;5943:32;5940:2;;;5988:1;5985;5978:12;5940:2;6031:1;6056:50;6098:7;6089:6;6078:9;6074:22;6056:50;:::i;:::-;6046:60;;6002:114;5930:193;;;;:::o;6129:262::-;6188:6;6237:2;6225:9;6216:7;6212:23;6208:32;6205:2;;;6253:1;6250;6243:12;6205:2;6296:1;6321:53;6366:7;6357:6;6346:9;6342:22;6321:53;:::i;:::-;6311:63;;6267:117;6195:196;;;;:::o;6397:698::-;6483:6;6491;6499;6507;6556:3;6544:9;6535:7;6531:23;6527:33;6524:2;;;6573:1;6570;6563:12;6524:2;6616:1;6641:53;6686:7;6677:6;6666:9;6662:22;6641:53;:::i;:::-;6631:63;;6587:117;6743:2;6769:53;6814:7;6805:6;6794:9;6790:22;6769:53;:::i;:::-;6759:63;;6714:118;6871:2;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6842:118;6999:2;7025:53;7070:7;7061:6;7050:9;7046:22;7025:53;:::i;:::-;7015:63;;6970:118;6514:581;;;;;;;:::o;7101:179::-;7170:10;7191:46;7233:3;7225:6;7191:46;:::i;:::-;7269:4;7264:3;7260:14;7246:28;;7181:99;;;;:::o;7286:108::-;7363:24;7381:5;7363:24;:::i;:::-;7358:3;7351:37;7341:53;;:::o;7400:118::-;7487:24;7505:5;7487:24;:::i;:::-;7482:3;7475:37;7465:53;;:::o;7554:732::-;7673:3;7702:54;7750:5;7702:54;:::i;:::-;7772:86;7851:6;7846:3;7772:86;:::i;:::-;7765:93;;7882:56;7932:5;7882:56;:::i;:::-;7961:7;7992:1;7977:284;8002:6;7999:1;7996:13;7977:284;;;8078:6;8072:13;8105:63;8164:3;8149:13;8105:63;:::i;:::-;8098:70;;8191:60;8244:6;8191:60;:::i;:::-;8181:70;;8037:224;8024:1;8021;8017:9;8012:14;;7977:284;;;7981:14;8277:3;8270:10;;7678:608;;;;;;;:::o;8292:109::-;8373:21;8388:5;8373:21;:::i;:::-;8368:3;8361:34;8351:50;;:::o;8407:183::-;8520:63;8577:5;8520:63;:::i;:::-;8515:3;8508:76;8498:92;;:::o;8596:147::-;8691:45;8730:5;8691:45;:::i;:::-;8686:3;8679:58;8669:74;;:::o;8749:364::-;8837:3;8865:39;8898:5;8865:39;:::i;:::-;8920:71;8984:6;8979:3;8920:71;:::i;:::-;8913:78;;9000:52;9045:6;9040:3;9033:4;9026:5;9022:16;9000:52;:::i;:::-;9077:29;9099:6;9077:29;:::i;:::-;9072:3;9068:39;9061:46;;8841:272;;;;;:::o;9119:366::-;9261:3;9282:67;9346:2;9341:3;9282:67;:::i;:::-;9275:74;;9358:93;9447:3;9358:93;:::i;:::-;9476:2;9471:3;9467:12;9460:19;;9265:220;;;:::o;9491:366::-;9633:3;9654:67;9718:2;9713:3;9654:67;:::i;:::-;9647:74;;9730:93;9819:3;9730:93;:::i;:::-;9848:2;9843:3;9839:12;9832:19;;9637:220;;;:::o;9863:366::-;10005:3;10026:67;10090:2;10085:3;10026:67;:::i;:::-;10019:74;;10102:93;10191:3;10102:93;:::i;:::-;10220:2;10215:3;10211:12;10204:19;;10009:220;;;:::o;10235:366::-;10377:3;10398:67;10462:2;10457:3;10398:67;:::i;:::-;10391:74;;10474:93;10563:3;10474:93;:::i;:::-;10592:2;10587:3;10583:12;10576:19;;10381:220;;;:::o;10607:366::-;10749:3;10770:67;10834:2;10829:3;10770:67;:::i;:::-;10763:74;;10846:93;10935:3;10846:93;:::i;:::-;10964:2;10959:3;10955:12;10948:19;;10753:220;;;:::o;10979:366::-;11121:3;11142:67;11206:2;11201:3;11142:67;:::i;:::-;11135:74;;11218:93;11307:3;11218:93;:::i;:::-;11336:2;11331:3;11327:12;11320:19;;11125:220;;;:::o;11351:366::-;11493:3;11514:67;11578:2;11573:3;11514:67;:::i;:::-;11507:74;;11590:93;11679:3;11590:93;:::i;:::-;11708:2;11703:3;11699:12;11692:19;;11497:220;;;:::o;11723:366::-;11865:3;11886:67;11950:2;11945:3;11886:67;:::i;:::-;11879:74;;11962:93;12051:3;11962:93;:::i;:::-;12080:2;12075:3;12071:12;12064:19;;11869:220;;;:::o;12095:366::-;12237:3;12258:67;12322:2;12317:3;12258:67;:::i;:::-;12251:74;;12334:93;12423:3;12334:93;:::i;:::-;12452:2;12447:3;12443:12;12436:19;;12241:220;;;:::o;12467:366::-;12609:3;12630:67;12694:2;12689:3;12630:67;:::i;:::-;12623:74;;12706:93;12795:3;12706:93;:::i;:::-;12824:2;12819:3;12815:12;12808:19;;12613:220;;;:::o;12839:366::-;12981:3;13002:67;13066:2;13061:3;13002:67;:::i;:::-;12995:74;;13078:93;13167:3;13078:93;:::i;:::-;13196:2;13191:3;13187:12;13180:19;;12985:220;;;:::o;13211:366::-;13353:3;13374:67;13438:2;13433:3;13374:67;:::i;:::-;13367:74;;13450:93;13539:3;13450:93;:::i;:::-;13568:2;13563:3;13559:12;13552:19;;13357:220;;;:::o;13583:366::-;13725:3;13746:67;13810:2;13805:3;13746:67;:::i;:::-;13739:74;;13822:93;13911:3;13822:93;:::i;:::-;13940:2;13935:3;13931:12;13924:19;;13729:220;;;:::o;13955:366::-;14097:3;14118:67;14182:2;14177:3;14118:67;:::i;:::-;14111:74;;14194:93;14283:3;14194:93;:::i;:::-;14312:2;14307:3;14303:12;14296:19;;14101:220;;;:::o;14327:366::-;14469:3;14490:67;14554:2;14549:3;14490:67;:::i;:::-;14483:74;;14566:93;14655:3;14566:93;:::i;:::-;14684:2;14679:3;14675:12;14668:19;;14473:220;;;:::o;14699:118::-;14786:24;14804:5;14786:24;:::i;:::-;14781:3;14774:37;14764:53;;:::o;14823:112::-;14906:22;14922:5;14906:22;:::i;:::-;14901:3;14894:35;14884:51;;:::o;14941:222::-;15034:4;15072:2;15061:9;15057:18;15049:26;;15085:71;15153:1;15142:9;15138:17;15129:6;15085:71;:::i;:::-;15039:124;;;;:::o;15169:210::-;15256:4;15294:2;15283:9;15279:18;15271:26;;15307:65;15369:1;15358:9;15354:17;15345:6;15307:65;:::i;:::-;15261:118;;;;:::o;15385:274::-;15504:4;15542:2;15531:9;15527:18;15519:26;;15555:97;15649:1;15638:9;15634:17;15625:6;15555:97;:::i;:::-;15509:150;;;;:::o;15665:313::-;15778:4;15816:2;15805:9;15801:18;15793:26;;15865:9;15859:4;15855:20;15851:1;15840:9;15836:17;15829:47;15893:78;15966:4;15957:6;15893:78;:::i;:::-;15885:86;;15783:195;;;;:::o;15984:419::-;16150:4;16188:2;16177:9;16173:18;16165:26;;16237:9;16231:4;16227:20;16223:1;16212:9;16208:17;16201:47;16265:131;16391:4;16265:131;:::i;:::-;16257:139;;16155:248;;;:::o;16409:419::-;16575:4;16613:2;16602:9;16598:18;16590:26;;16662:9;16656:4;16652:20;16648:1;16637:9;16633:17;16626:47;16690:131;16816:4;16690:131;:::i;:::-;16682:139;;16580:248;;;:::o;16834:419::-;17000:4;17038:2;17027:9;17023:18;17015:26;;17087:9;17081:4;17077:20;17073:1;17062:9;17058:17;17051:47;17115:131;17241:4;17115:131;:::i;:::-;17107:139;;17005:248;;;:::o;17259:419::-;17425:4;17463:2;17452:9;17448:18;17440:26;;17512:9;17506:4;17502:20;17498:1;17487:9;17483:17;17476:47;17540:131;17666:4;17540:131;:::i;:::-;17532:139;;17430:248;;;:::o;17684:419::-;17850:4;17888:2;17877:9;17873:18;17865:26;;17937:9;17931:4;17927:20;17923:1;17912:9;17908:17;17901:47;17965:131;18091:4;17965:131;:::i;:::-;17957:139;;17855:248;;;:::o;18109:419::-;18275:4;18313:2;18302:9;18298:18;18290:26;;18362:9;18356:4;18352:20;18348:1;18337:9;18333:17;18326:47;18390:131;18516:4;18390:131;:::i;:::-;18382:139;;18280:248;;;:::o;18534:419::-;18700:4;18738:2;18727:9;18723:18;18715:26;;18787:9;18781:4;18777:20;18773:1;18762:9;18758:17;18751:47;18815:131;18941:4;18815:131;:::i;:::-;18807:139;;18705:248;;;:::o;18959:419::-;19125:4;19163:2;19152:9;19148:18;19140:26;;19212:9;19206:4;19202:20;19198:1;19187:9;19183:17;19176:47;19240:131;19366:4;19240:131;:::i;:::-;19232:139;;19130:248;;;:::o;19384:419::-;19550:4;19588:2;19577:9;19573:18;19565:26;;19637:9;19631:4;19627:20;19623:1;19612:9;19608:17;19601:47;19665:131;19791:4;19665:131;:::i;:::-;19657:139;;19555:248;;;:::o;19809:419::-;19975:4;20013:2;20002:9;19998:18;19990:26;;20062:9;20056:4;20052:20;20048:1;20037:9;20033:17;20026:47;20090:131;20216:4;20090:131;:::i;:::-;20082:139;;19980:248;;;:::o;20234:419::-;20400:4;20438:2;20427:9;20423:18;20415:26;;20487:9;20481:4;20477:20;20473:1;20462:9;20458:17;20451:47;20515:131;20641:4;20515:131;:::i;:::-;20507:139;;20405:248;;;:::o;20659:419::-;20825:4;20863:2;20852:9;20848:18;20840:26;;20912:9;20906:4;20902:20;20898:1;20887:9;20883:17;20876:47;20940:131;21066:4;20940:131;:::i;:::-;20932:139;;20830:248;;;:::o;21084:419::-;21250:4;21288:2;21277:9;21273:18;21265:26;;21337:9;21331:4;21327:20;21323:1;21312:9;21308:17;21301:47;21365:131;21491:4;21365:131;:::i;:::-;21357:139;;21255:248;;;:::o;21509:419::-;21675:4;21713:2;21702:9;21698:18;21690:26;;21762:9;21756:4;21752:20;21748:1;21737:9;21733:17;21726:47;21790:131;21916:4;21790:131;:::i;:::-;21782:139;;21680:248;;;:::o;21934:419::-;22100:4;22138:2;22127:9;22123:18;22115:26;;22187:9;22181:4;22177:20;22173:1;22162:9;22158:17;22151:47;22215:131;22341:4;22215:131;:::i;:::-;22207:139;;22105:248;;;:::o;22359:222::-;22452:4;22490:2;22479:9;22475:18;22467:26;;22503:71;22571:1;22560:9;22556:17;22547:6;22503:71;:::i;:::-;22457:124;;;;:::o;22587:831::-;22850:4;22888:3;22877:9;22873:19;22865:27;;22902:71;22970:1;22959:9;22955:17;22946:6;22902:71;:::i;:::-;22983:80;23059:2;23048:9;23044:18;23035:6;22983:80;:::i;:::-;23110:9;23104:4;23100:20;23095:2;23084:9;23080:18;23073:48;23138:108;23241:4;23232:6;23138:108;:::i;:::-;23130:116;;23256:72;23324:2;23313:9;23309:18;23300:6;23256:72;:::i;:::-;23338:73;23406:3;23395:9;23391:19;23382:6;23338:73;:::i;:::-;22855:563;;;;;;;;:::o;23424:214::-;23513:4;23551:2;23540:9;23536:18;23528:26;;23564:67;23628:1;23617:9;23613:17;23604:6;23564:67;:::i;:::-;23518:120;;;;:::o;23644:129::-;23678:6;23705:20;;:::i;:::-;23695:30;;23734:33;23762:4;23754:6;23734:33;:::i;:::-;23685:88;;;:::o;23779:75::-;23812:6;23845:2;23839:9;23829:19;;23819:35;:::o;23860:311::-;23937:4;24027:18;24019:6;24016:30;24013:2;;;24049:18;;:::i;:::-;24013:2;24099:4;24091:6;24087:17;24079:25;;24159:4;24153;24149:15;24141:23;;23942:229;;;:::o;24177:132::-;24244:4;24267:3;24259:11;;24297:4;24292:3;24288:14;24280:22;;24249:60;;;:::o;24315:114::-;24382:6;24416:5;24410:12;24400:22;;24389:40;;;:::o;24435:99::-;24487:6;24521:5;24515:12;24505:22;;24494:40;;;:::o;24540:113::-;24610:4;24642;24637:3;24633:14;24625:22;;24615:38;;;:::o;24659:184::-;24758:11;24792:6;24787:3;24780:19;24832:4;24827:3;24823:14;24808:29;;24770:73;;;;:::o;24849:169::-;24933:11;24967:6;24962:3;24955:19;25007:4;25002:3;24998:14;24983:29;;24945:73;;;;:::o;25024:305::-;25064:3;25083:20;25101:1;25083:20;:::i;:::-;25078:25;;25117:20;25135:1;25117:20;:::i;:::-;25112:25;;25271:1;25203:66;25199:74;25196:1;25193:81;25190:2;;;25277:18;;:::i;:::-;25190:2;25321:1;25318;25314:9;25307:16;;25068:261;;;;:::o;25335:185::-;25375:1;25392:20;25410:1;25392:20;:::i;:::-;25387:25;;25426:20;25444:1;25426:20;:::i;:::-;25421:25;;25465:1;25455:2;;25470:18;;:::i;:::-;25455:2;25512:1;25509;25505:9;25500:14;;25377:143;;;;:::o;25526:348::-;25566:7;25589:20;25607:1;25589:20;:::i;:::-;25584:25;;25623:20;25641:1;25623:20;:::i;:::-;25618:25;;25811:1;25743:66;25739:74;25736:1;25733:81;25728:1;25721:9;25714:17;25710:105;25707:2;;;25818:18;;:::i;:::-;25707:2;25866:1;25863;25859:9;25848:20;;25574:300;;;;:::o;25880:191::-;25920:4;25940:20;25958:1;25940:20;:::i;:::-;25935:25;;25974:20;25992:1;25974:20;:::i;:::-;25969:25;;26013:1;26010;26007:8;26004:2;;;26018:18;;:::i;:::-;26004:2;26063:1;26060;26056:9;26048:17;;25925:146;;;;:::o;26077:96::-;26114:7;26143:24;26161:5;26143:24;:::i;:::-;26132:35;;26122:51;;;:::o;26179:90::-;26213:7;26256:5;26249:13;26242:21;26231:32;;26221:48;;;:::o;26275:126::-;26312:7;26352:42;26345:5;26341:54;26330:65;;26320:81;;;:::o;26407:77::-;26444:7;26473:5;26462:16;;26452:32;;;:::o;26490:86::-;26525:7;26565:4;26558:5;26554:16;26543:27;;26533:43;;;:::o;26582:178::-;26658:9;26691:63;26748:5;26691:63;:::i;:::-;26678:76;;26668:92;;;:::o;26766:139::-;26842:9;26875:24;26893:5;26875:24;:::i;:::-;26862:37;;26852:53;;;:::o;26911:121::-;26969:9;27002:24;27020:5;27002:24;:::i;:::-;26989:37;;26979:53;;;:::o;27038:307::-;27106:1;27116:113;27130:6;27127:1;27124:13;27116:113;;;27215:1;27210:3;27206:11;27200:18;27196:1;27191:3;27187:11;27180:39;27152:2;27149:1;27145:10;27140:15;;27116:113;;;27247:6;27244:1;27241:13;27238:2;;;27327:1;27318:6;27313:3;27309:16;27302:27;27238:2;27087:258;;;;:::o;27351:281::-;27434:27;27456:4;27434:27;:::i;:::-;27426:6;27422:40;27564:6;27552:10;27549:22;27528:18;27516:10;27513:34;27510:62;27507:2;;;27575:18;;:::i;:::-;27507:2;27615:10;27611:2;27604:22;27394:238;;;:::o;27638:233::-;27677:3;27700:24;27718:5;27700:24;:::i;:::-;27691:33;;27746:66;27739:5;27736:77;27733:2;;;27816:18;;:::i;:::-;27733:2;27863:1;27856:5;27852:13;27845:20;;27681:190;;;:::o;27877:180::-;27925:77;27922:1;27915:88;28022:4;28019:1;28012:15;28046:4;28043:1;28036:15;28063:180;28111:77;28108:1;28101:88;28208:4;28205:1;28198:15;28232:4;28229:1;28222:15;28249:180;28297:77;28294:1;28287:88;28394:4;28391:1;28384:15;28418:4;28415:1;28408:15;28435:102;28476:6;28527:2;28523:7;28518:2;28511:5;28507:14;28503:28;28493:38;;28483:54;;;:::o;28543:222::-;28683:34;28679:1;28671:6;28667:14;28660:58;28752:5;28747:2;28739:6;28735:15;28728:30;28649:116;:::o;28771:250::-;28911:34;28907:1;28899:6;28895:14;28888:58;28980:33;28975:2;28967:6;28963:15;28956:58;28877:144;:::o;29027:229::-;29167:34;29163:1;29155:6;29151:14;29144:58;29236:12;29231:2;29223:6;29219:15;29212:37;29133:123;:::o;29262:178::-;29402:30;29398:1;29390:6;29386:14;29379:54;29368:72;:::o;29446:225::-;29586:34;29582:1;29574:6;29570:14;29563:58;29655:8;29650:2;29642:6;29638:15;29631:33;29552:119;:::o;29677:221::-;29817:34;29813:1;29805:6;29801:14;29794:58;29886:4;29881:2;29873:6;29869:15;29862:29;29783:115;:::o;29904:222::-;30044:34;30040:1;30032:6;30028:14;30021:58;30113:5;30108:2;30100:6;30096:15;30089:30;30010:116;:::o;30132:177::-;30272:29;30268:1;30260:6;30256:14;30249:53;30238:71;:::o;30315:173::-;30455:25;30451:1;30443:6;30439:14;30432:49;30421:67;:::o;30494:220::-;30634:34;30630:1;30622:6;30618:14;30611:58;30703:3;30698:2;30690:6;30686:15;30679:28;30600:114;:::o;30720:182::-;30860:34;30856:1;30848:6;30844:14;30837:58;30826:76;:::o;30908:228::-;31048:34;31044:1;31036:6;31032:14;31025:58;31117:11;31112:2;31104:6;31100:15;31093:36;31014:122;:::o;31142:224::-;31282:34;31278:1;31270:6;31266:14;31259:58;31351:7;31346:2;31338:6;31334:15;31327:32;31248:118;:::o;31372:222::-;31512:34;31508:1;31500:6;31496:14;31489:58;31581:5;31576:2;31568:6;31564:15;31557:30;31478:116;:::o;31600:223::-;31740:34;31736:1;31728:6;31724:14;31717:58;31809:6;31804:2;31796:6;31792:15;31785:31;31706:117;:::o;31829:122::-;31902:24;31920:5;31902:24;:::i;:::-;31895:5;31892:35;31882:2;;31941:1;31938;31931:12;31882:2;31872:79;:::o;31957:116::-;32027:21;32042:5;32027:21;:::i;:::-;32020:5;32017:32;32007:2;;32063:1;32060;32053:12;32007:2;31997:76;:::o;32079:122::-;32152:24;32170:5;32152:24;:::i;:::-;32145:5;32142:35;32132:2;;32191:1;32188;32181:12;32132:2;32122:79;:::o

Swarm Source

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