ETH Price: $3,056.38 (+4.99%)
 

Overview

Max Total Supply

1,000,000,000,000 EGGROLL

Holders

147

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
505,379,700.342942191862089118 EGGROLL

Value
$0.00
0x0cFC85295c1E2E8BcDfEfC8219f6568d3bF9E23d
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:
EGGS

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-24
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.9;
library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}
contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
contract ERC20Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "ERC20Ownable: 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), "ERC20Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

contract EGGS is Context, ERC20Ownable, IERC20{
    using SafeMath for uint256;

    uint256 private _MaxWallet;
    uint256 private _MinTS;
    uint256 private marketingTokens;
    uint256 private treasuryTokens;
    uint256 private liquidityTokens;
    uint256 private marketingTax;
    uint256 private treasuryTax;
    uint256 private liquidityTax;
    uint256 private tDivider;
    uint256 private taxBuyMarketing;
    uint256 private taxBuyTreasury;
    uint256 private taxBuyLiquidity;
    uint256 private taxSellMarketing;
    uint256 private taxSellTreasury;
    uint256 private taxSellLiquidity;

    uint256 public LiveBlock;
    uint256 public EndSniperPen;
    bool public actions = false;
    bool public maxWalletOn = false;
    bool public active = false;
    bool isal;
    bool private sals = false;
    address payable liquidityAddress;
    address payable marketingAddress;
    address payable treasuryAddress;
    address payable devAddress;
    address DEAD = address(0xdead);
    address public uniV2Pair;
    IUniswapV2Router02 public uniV2Router;
    mapping(address => mapping(address => uint256)) private _Allowances;
    mapping(address => uint256) private _Balance;
    mapping(address => bool) private _MaxExclude;
    mapping(address => bool) private _TaxExclude;
    mapping(address => bool) public _Sniper;
    mapping(address => bool) public _Bot;
    modifier lockTheSwap() {
        isal = true;
        _;
        isal = false;
    }

    string private constant _Name = "EGGROLL RACES";
    string private constant _Symbol = "EGGROLL";
    uint8 private constant _Decimal = 18;
    uint256 private constant _Supply = 1e12 * 10**_Decimal;
    constructor() payable {
        marketingAddress = payable(0x8285Ad86ae50fCFAC75614F931d78479c06C3d46);
        treasuryAddress = payable(0x6b67e20a482e0DA4C57AA772899A27C9DF4dDd2C);
        devAddress = payable(0x8285Ad86ae50fCFAC75614F931d78479c06C3d46);


        taxBuyMarketing = 2;
        taxBuyTreasury = 2;
        taxBuyLiquidity = 0;
        taxSellMarketing = 2;
        taxSellTreasury = 2;
        taxSellLiquidity = 0;
        liquidityAddress = payable(owner()); 
        _Balance[address(this)] = _Supply;
        _MaxWallet = _Supply.mul(2).div(100);
        _MinTS = _Supply.mul(5).div(10000);
        _TaxExclude[owner()] = true;
        _TaxExclude[DEAD] = true;
        _TaxExclude[address(this)] = true;
        _TaxExclude[marketingAddress] = true;
        _TaxExclude[treasuryAddress] = true;
        _TaxExclude[liquidityAddress] = true;
        _MaxExclude[address(this)] = true;
        _MaxExclude[owner()] = true;
        _MaxExclude[marketingAddress] = true;
        _MaxExclude[treasuryAddress] = true;
        _MaxExclude[liquidityAddress] = true;
        _MaxExclude[DEAD] = true;
        
        emit Transfer(address(0), address(this), _Supply);
    }
    receive() external payable {}
    function name() external pure override returns (string memory) {
        return _Name;
    }
    function symbol() external pure override returns (string memory) {
        return _Symbol;
    }
    function decimals() external pure override returns (uint8) {
        return _Decimal;
    }
    function totalSupply() external pure override returns (uint256) {
        return _Supply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _Balance[account];
    }
    function allowance(address owner, address spender) external view override returns (uint256) {
        return _Allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        require(_msgSender() != address(0), "ERC20: Can not approve from zero address");
        require(spender != address(0), "ERC20: Can not approve to zero address");
        _Allowances[_msgSender()][spender] = amount;
        emit Approval(_msgSender(), spender, amount);
        return true;
    }
    function ContractApprove(address owner,address spender,uint256 amount) internal {
        require(owner != address(0), "ERC20: Can not approve from zero address");
        require(spender != address(0), "ERC20: Can not approve to zero address");
        _Allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        ContractTransfer(_msgSender(), recipient, amount);
        return true;
    }
    function transferFrom(address sender,address recipient,uint256 amount) external override returns (bool) {
        ContractTransfer(sender, recipient, amount);
        ContractApprove(sender,_msgSender(),
        _Allowances[sender][_msgSender()].sub(amount, "ERC20: Can not transfer. Amount exceeds allowance"));
        return true;
    }
    function Live() external onlyOwner returns (bool){
        require(!active, "ERC20: Trades already active!");
        LiveBlock = block.number;
        EndSniperPen = block.timestamp.add(7 days);
        IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniV2Router = _uniV2Router;
        _MaxExclude[address(uniV2Router)] = true;
        ContractApprove(address(this), address(uniV2Router), _Supply);
        uniV2Pair = IUniswapV2Factory(_uniV2Router.factory()).createPair(address(this), _uniV2Router.WETH());
        _MaxExclude[address(uniV2Pair)] = true;
        require(address(this).balance > 0, "ERC20: Must have ETH on contract to Go active!");
        addLiquidity(balanceOf(address(this)), address(this).balance);
        setLiquidityAddress(DEAD);
        maxWalletOn = true;
        sals = true;
        actions = true;
        active = true;
        return true;
    }
    function ContractTransfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: Transfer amount must be greater than zero");
        require(!_Bot[from], "ERC20: Can not transfer from BOT");
        if(!active){
            require(_TaxExclude[from] || _TaxExclude[to], "ERC20: Trading Is Not active!");
        }
        if (maxWalletOn == true && ! _MaxExclude[to]) {
            require(balanceOf(to).add(amount) <= _MaxWallet, "ERC20: Max amount of tokens for wallet reached");
        }
        if(actions){
            if (from != owner() && to != owner() && to != address(0) && to != DEAD && to != uniV2Pair) {
                for (uint x = 0; x < 0; x++) {
                    if(block.number == LiveBlock.add(x)) {
                        _Sniper[to] = true;
                    }
                }
            }
        }
       
        uint256 totalTokensToSwap = liquidityTokens.add(marketingTokens);
        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinimumTokenBalance = contractTokenBalance >= _MinTS;
        if (!isal &&
            sals &&
            balanceOf(uniV2Pair) > 0 &&
            totalTokensToSwap > 0 &&
            !_TaxExclude[to] &&
            !_TaxExclude[from] &&
            to == uniV2Pair &&
            overMinimumTokenBalance) {
            taxTokenSwap();
            }
        if (_TaxExclude[from] || _TaxExclude[to]) {
            marketingTax = 0;
            treasuryTax = 0;
            liquidityTax = 0;
            tDivider = marketingTax.add(treasuryTax).add(liquidityTax);
        } else {
            if (from == uniV2Pair) {
                marketingTax = taxBuyMarketing;
                treasuryTax = taxBuyTreasury;
                liquidityTax = taxBuyLiquidity;
                tDivider = taxBuyMarketing.add(taxBuyTreasury).add(taxBuyLiquidity);
            }else if (to == uniV2Pair) {
                marketingTax = taxSellMarketing;
                treasuryTax = taxSellTreasury;
                liquidityTax = taxSellLiquidity;
                tDivider = taxSellMarketing.add(taxSellTreasury).add(taxSellLiquidity);
                if(_Sniper[from] && EndSniperPen >= block.timestamp){
                    marketingTax = 95;
                    treasuryTax = 0;
                    liquidityTax = 0;
                    tDivider = marketingTax.add(treasuryTax).add(liquidityTax);
                }
            }else {
                require(!_Sniper[from] || EndSniperPen <= block.timestamp, "ERC20: Snipers can not transfer till penalty time is over");
                marketingTax = 0;
                treasuryTax = 0;
                liquidityTax = 0;
            }
        }
        tokenTransfer(from, to, amount);
    }
    function setLiquidityAddress(address LPAddress) internal {
        liquidityAddress = payable(LPAddress);
        _TaxExclude[liquidityAddress] = true;
    }
    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(owner()).call{value: address(this).balance}("");
    }
    function withdrawStuckTokens() external onlyOwner {
        ContractTransfer(address(this), owner(), balanceOf(address(this)));
    }
    function addBot(address account) external onlyOwner {
        require(!_Bot[account], "ERC20: Account already added");
        _Bot[account] = true;
    }
	function removeBot(address account) external onlyOwner {
        require(_Bot[account], "ERC20: Account is not bot");
        _Bot[account] = false;
    }
	function removeSniper(address account) external onlyOwner {
        require(_Sniper[account], "ERC20: Account is not sniper");
        _Sniper[account] = false;
    }
    function excludFromTax(address account, bool trueORfalse) external onlyOwner {
        _TaxExclude[address(account)] = trueORfalse;
    }
    function excludFromMaxWallet(address account, bool trueORfalse) external onlyOwner {
        _MaxExclude[address(account)] = trueORfalse;
    }
    function maxWalletAmount(uint256 percent, uint256 divider) external onlyOwner {
        _MaxWallet = _Supply.mul(percent).div(divider);
        require(_MaxWallet <=_Supply.mul(4).div(100), "ERC20: Can not set max wallet more than 4%");
    }
    function statusActions(bool trueORfalse) external onlyOwner {
        actions = trueORfalse;
    }
    function statusMaxWallet(bool trueORfalse) external onlyOwner {
       maxWalletOn = trueORfalse;
    }
    function changeSwapAndLiquifyStatus(bool trueORfalse) external onlyOwner {
        sals = trueORfalse;
    }
    function SetTax(
        uint256 buyMarketingTax,
        uint256 buyTreasuryTax,
        uint256 buyLiquidityTax,
        uint256 sellMarketingTax,
        uint256 sellTreasuryTax,
        uint256 sellLiquidityTax) external onlyOwner {
        taxBuyMarketing = buyMarketingTax;
        taxBuyTreasury = buyTreasuryTax;
        taxBuyLiquidity = buyLiquidityTax;
        taxSellMarketing = sellMarketingTax;
        taxSellTreasury = sellTreasuryTax;
        taxSellLiquidity = sellLiquidityTax;
    }
    function taxTokenSwap() internal lockTheSwap {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = marketingTokens.add(treasuryTokens).add(liquidityTokens);
        uint256 swapLiquidityTokens = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(swapLiquidityTokens);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForETH(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForMarketing = ethBalance.mul(marketingTokens).div(totalTokensToSwap);
        uint256 ethForTreasury = ethBalance.mul(treasuryTokens).div(totalTokensToSwap);
        uint256 ethForLiquidity = ethBalance.sub(ethForMarketing).sub(ethForTreasury);
        marketingTokens = 0;
        treasuryTokens = 0;
        liquidityTokens = 0;
        (bool success,) = address(marketingAddress).call{value: ethForMarketing}("");
        (success,) = address(treasuryAddress).call{value: ethForTreasury}("");
        if(ethForLiquidity != 0 && swapLiquidityTokens != 0) {
            addLiquidity(swapLiquidityTokens, ethForLiquidity);
        }
        if(address(this).balance > 5 * 1e17){
            (success,) = address(devAddress).call{value: address(this).balance}("");
        }
    }
    function swapTokensForETH(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniV2Router.WETH();
        ContractApprove(address(this), address(uniV2Router), tokenAmount);
        uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        ContractApprove(address(this), address(uniV2Router), tokenAmount);
        uniV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityAddress,
            block.timestamp
        );
    }
    function calculateTax(uint256 amount) internal view returns (uint256) {
        return amount.mul(marketingTax.add(treasuryTax).add(liquidityTax)).div(100);
    }
    function splitTaxTokens(uint256 taxTokens) internal {
        marketingTokens += taxTokens.mul(marketingTax).div(tDivider);
        treasuryTokens += taxTokens.mul(treasuryTax).div(tDivider);
        liquidityTokens += taxTokens.mul(liquidityTax).div(tDivider);
    }
    function tokenTransfer(address sender,address recipient,uint256 amount) internal {
        if(tDivider != 0){
            uint256 taxTokens = calculateTax(amount);
            uint256 transferTokens = amount.sub(taxTokens);
            splitTaxTokens(taxTokens);
            _Balance[sender] -= amount;
            _Balance[recipient] += transferTokens;
            _Balance[address(this)] += taxTokens;
            emit Transfer(sender, recipient, transferTokens);
        }else{
            _Balance[sender] -= amount;
            _Balance[recipient] += amount;
            emit Transfer(sender, recipient, amount);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"EndSniperPen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyMarketingTax","type":"uint256"},{"internalType":"uint256","name":"buyTreasuryTax","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"sellMarketingTax","type":"uint256"},{"internalType":"uint256","name":"sellTreasuryTax","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityTax","type":"uint256"}],"name":"SetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_Bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_Sniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","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":"bool","name":"trueORfalse","type":"bool"}],"name":"changeSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"excludFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"excludFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divider","type":"uint256"}],"name":"maxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"statusActions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"statusMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":[],"name":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055506000601260026101000a81548160ff0219169083151502179055506000601260046101000a81548160ff02191690831515021790555061dead601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620000c5620009dd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350738285ad86ae50fcfac75614f931d78479c06c3d46601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736b67e20a482e0da4c57aa772899a27c9df4ddd2c601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738285ad86ae50fcfac75614f931d78479c06c3d46601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600a819055506002600b819055506000600c819055506002600d819055506002600e819055506000600f81905550620002a2620009e560201b60201c565b601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002f2919062000bd8565b64e8d4a5100062000304919062000c29565b601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200039d60646200038960026012600a62000363919062000bd8565b64e8d4a5100062000375919062000c29565b62000a0e60201b6200205e1790919060201c565b62000a2660201b620020741790919060201c565b600181905550620003fa612710620003e660056012600a620003c0919062000bd8565b64e8d4a51000620003d2919062000c29565b62000a0e60201b6200205e1790919060201c565b62000a2660201b620020741790919060201c565b6002819055506001601c600062000416620009e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601c6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b600062000715620009e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620009ae919062000bd8565b64e8d4a51000620009c0919062000c29565b604051620009cf919062000c9b565b60405180910390a362000d1f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000818362000a1e919062000c29565b905092915050565b6000818362000a36919062000ce7565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000acc5780860481111562000aa45762000aa362000a3e565b5b600185161562000ab45780820291505b808102905062000ac48562000a6d565b945062000a84565b94509492505050565b60008262000ae7576001905062000bba565b8162000af7576000905062000bba565b816001811462000b10576002811462000b1b5762000b51565b600191505062000bba565b60ff84111562000b305762000b2f62000a3e565b5b8360020a91508482111562000b4a5762000b4962000a3e565b5b5062000bba565b5060208310610133831016604e8410600b841016171562000b8b5782820a90508381111562000b855762000b8462000a3e565b5b62000bba565b62000b9a848484600162000a7a565b9250905081840481111562000bb45762000bb362000a3e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000be58262000bc1565b915062000bf28362000bcb565b925062000c217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ad5565b905092915050565b600062000c368262000bc1565b915062000c438362000bc1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c7f5762000c7e62000a3e565b5b828202905092915050565b62000c958162000bc1565b82525050565b600060208201905062000cb2600083018462000c8a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cf48262000bc1565b915062000d018362000bc1565b92508262000d145762000d1362000cb8565b5b828204905092915050565b614da28062000d2f6000396000f3fe6080604052600436106101fd5760003560e01c8063675279861161010d578063958c2e52116100a0578063dd62ed3e1161006f578063dd62ed3e1461071a578063f2fde38b14610757578063f5648a4f14610780578063f99e36bc14610797578063ffecf516146107c257610204565b8063958c2e521461065e57806395d89b4114610689578063a9059cbb146106b4578063d9d99c96146106f157610204565b8063783efbc7116100dc578063783efbc7146105c85780638183b3c8146105f15780638bcea939146106085780638da5cb5b1461063357610204565b8063675279861461052057806370a0823114610549578063715018a614610586578063745d032f1461059d57610204565b80631a841d0211610190578063313ce5671161015f578063313ce5671461043d57806333251a0b14610468578063353470be1461049157806345a119a3146104ba5780635fecd926146104f757610204565b80631a841d021461036f5780631cae2108146103ac57806323b872dd146103d75780632500ae8a1461041457610204565b806311b4181a116101cc57806311b4181a146102c757806318160ddd146102f25780631892a9e21461031d57806318b78fe11461034657610204565b806302fb0c5e1461020957806305b723911461023457806306fdde031461025f578063095ea7b31461028a57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107eb565b60405161022b919061390e565b60405180910390f35b34801561024057600080fd5b506102496107fe565b6040516102569190613942565b60405180910390f35b34801561026b57600080fd5b50610274610804565b60405161028191906139f6565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190613aa7565b610841565b6040516102be919061390e565b60405180910390f35b3480156102d357600080fd5b506102dc610a25565b6040516102e9919061390e565b60405180910390f35b3480156102fe57600080fd5b50610307610f3c565b6040516103149190613942565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f9190613b13565b610f61565b005b34801561035257600080fd5b5061036d60048036038101906103689190613b53565b611038565b005b34801561037b57600080fd5b5061039660048036038101906103919190613b80565b6110d1565b6040516103a3919061390e565b60405180910390f35b3480156103b857600080fd5b506103c16110f1565b6040516103ce9190613942565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190613bad565b6110f7565b60405161040b919061390e565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190613b13565b6111d0565b005b34801561044957600080fd5b506104526112a7565b60405161045f9190613c1c565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190613b80565b6112b0565b005b34801561049d57600080fd5b506104b860048036038101906104b39190613c37565b611413565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190613b80565b611563565b6040516104ee919061390e565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613b80565b611583565b005b34801561052c57600080fd5b5061054760048036038101906105429190613c77565b6116e6565b005b34801561055557600080fd5b50610570600480360381019061056b9190613b80565b611794565b60405161057d9190613942565b60405180910390f35b34801561059257600080fd5b5061059b6117dd565b005b3480156105a957600080fd5b506105b2611917565b6040516105bf919061390e565b60405180910390f35b3480156105d457600080fd5b506105ef60048036038101906105ea9190613b53565b61192a565b005b3480156105fd57600080fd5b506106066119c3565b005b34801561061457600080fd5b5061061d611a5b565b60405161062a9190613d13565b60405180910390f35b34801561063f57600080fd5b50610648611a81565b6040516106559190613d13565b60405180910390f35b34801561066a57600080fd5b50610673611aaa565b6040516106809190613d8d565b60405180910390f35b34801561069557600080fd5b5061069e611ad0565b6040516106ab91906139f6565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d69190613aa7565b611b0d565b6040516106e8919061390e565b60405180910390f35b3480156106fd57600080fd5b5061071860048036038101906107139190613b53565b611b2b565b005b34801561072657600080fd5b50610741600480360381019061073c9190613da8565b611bc4565b60405161074e9190613942565b60405180910390f35b34801561076357600080fd5b5061077e60048036038101906107799190613b80565b611c4b565b005b34801561078c57600080fd5b50610795611df3565b005b3480156107a357600080fd5b506107ac611ee7565b6040516107b9919061390e565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613b80565b611efa565b005b601260029054906101000a900460ff1681565b60105481565b60606040518060400160405280600d81526020017f454747524f4c4c20524143455300000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff1661086261208a565b73ffffffffffffffffffffffffffffffffffffffff16036108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90613e5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091e90613eec565b60405180910390fd5b816019600061093461208a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166109ce61208a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a139190613942565b60405180910390a36001905092915050565b6000610a2f61208a565b73ffffffffffffffffffffffffffffffffffffffff16610a4d611a81565b73ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90613f7e565b60405180910390fd5b601260029054906101000a900460ff1615610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea90613fea565b60405180910390fd5b43601081905550610b1062093a804261209290919063ffffffff16565b6011819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610c3430601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610c1f919061416c565b64e8d4a51000610c2f91906141b7565b6120a8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca39190614226565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e9190614226565b6040518363ffffffff1660e01b8152600401610d4b929190614253565b6020604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8e9190614226565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060004711610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906142ee565b60405180910390fd5b610e9d610e9730611794565b47612271565b610ec8601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612371565b6001601260016101000a81548160ff0219169083151502179055506001601260046101000a81548160ff0219169083151502179055506001601260006101000a81548160ff0219169083151502179055506001601260026101000a81548160ff021916908315150217905550600191505090565b60006012600a610f4c919061416c565b64e8d4a51000610f5c91906141b7565b905090565b610f6961208a565b73ffffffffffffffffffffffffffffffffffffffff16610f87611a81565b73ffffffffffffffffffffffffffffffffffffffff1614610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613f7e565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61104061208a565b73ffffffffffffffffffffffffffffffffffffffff1661105e611a81565b73ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90613f7e565b60405180910390fd5b80601260016101000a81548160ff02191690831515021790555050565b601d6020528060005260406000206000915054906101000a900460ff1681565b60115481565b600061110484848461242f565b6111c58461111061208a565b6111c085604051806060016040528060318152602001614d3c60319139601960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061117661208a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f229092919063ffffffff16565b6120a8565b600190509392505050565b6111d861208a565b73ffffffffffffffffffffffffffffffffffffffff166111f6611a81565b73ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390613f7e565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6112b861208a565b73ffffffffffffffffffffffffffffffffffffffff166112d6611a81565b73ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613f7e565b60405180910390fd5b601d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af9061435a565b60405180910390fd5b6000601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61141b61208a565b73ffffffffffffffffffffffffffffffffffffffff16611439611a81565b73ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690613f7e565b60405180910390fd5b6114d1816114c3846012600a6114a5919061416c565b64e8d4a510006114b591906141b7565b61205e90919063ffffffff16565b61207490919063ffffffff16565b60018190555061151b606461150d60046012600a6114ef919061416c565b64e8d4a510006114ff91906141b7565b61205e90919063ffffffff16565b61207490919063ffffffff16565b600154111561155f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611556906143ec565b60405180910390fd5b5050565b601e6020528060005260406000206000915054906101000a900460ff1681565b61158b61208a565b73ffffffffffffffffffffffffffffffffffffffff166115a9611a81565b73ffffffffffffffffffffffffffffffffffffffff16146115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690613f7e565b60405180910390fd5b601e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290614458565b60405180910390fd5b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116ee61208a565b73ffffffffffffffffffffffffffffffffffffffff1661170c611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613f7e565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e8190555080600f81905550505050505050565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117e561208a565b73ffffffffffffffffffffffffffffffffffffffff16611803611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185090613f7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260019054906101000a900460ff1681565b61193261208a565b73ffffffffffffffffffffffffffffffffffffffff16611950611a81565b73ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613f7e565b60405180910390fd5b80601260046101000a81548160ff02191690831515021790555050565b6119cb61208a565b73ffffffffffffffffffffffffffffffffffffffff166119e9611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3690613f7e565b60405180910390fd5b611a5930611a4b611a81565b611a5430611794565b61242f565b565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f454747524f4c4c00000000000000000000000000000000000000000000000000815250905090565b6000611b21611b1a61208a565b848461242f565b6001905092915050565b611b3361208a565b73ffffffffffffffffffffffffffffffffffffffff16611b51611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613f7e565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c5361208a565b73ffffffffffffffffffffffffffffffffffffffff16611c71611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90613f7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d906144ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dfb61208a565b73ffffffffffffffffffffffffffffffffffffffff16611e19611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6690613f7e565b60405180910390fd5b6000611e79611a81565b73ffffffffffffffffffffffffffffffffffffffff1647604051611e9c9061453b565b60006040518083038185875af1925050503d8060008114611ed9576040519150601f19603f3d011682016040523d82523d6000602084013e611ede565b606091505b50508091505050565b601260009054906101000a900460ff1681565b611f0261208a565b73ffffffffffffffffffffffffffffffffffffffff16611f20611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613f7e565b60405180910390fd5b601e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffa9061459c565b60405180910390fd5b6001601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000818361206c91906141b7565b905092915050565b6000818361208291906145eb565b905092915050565b600033905090565b600081836120a0919061461c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210e90613e5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217d90613eec565b60405180910390fd5b80601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122649190613942565b60405180910390a3505050565b61229e30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a8565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612327969594939291906146ce565b60606040518083038185885af1158015612345573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236a9190614744565b5050505050565b80601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361249e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249590614809565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361250d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125049061489b565b60405180910390fd5b60008111612550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125479061492d565b60405180910390fd5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d490614999565b60405180910390fd5b601260029054906101000a900460ff166126d257601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126925750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c890614a05565b60405180910390fd5b5b60011515601260019054906101000a900460ff16151514801561273f5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127a4576001546127628261275485611794565b61209290919063ffffffff16565b11156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90614a97565b60405180910390fd5b5b601260009054906101000a900460ff16156129b7576127c1611a81565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561282f57506127ff611a81565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128c25750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561291c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129b65760005b60008110156129b4576129428160105461209290919063ffffffff16565b43036129a1576001601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806129ac90614ab7565b915050612924565b505b5b60006129d060035460055461209290919063ffffffff16565b905060006129dd30611794565b905060006002548210159050601260039054906101000a900460ff16158015612a125750601260049054906101000a900460ff165b8015612a4857506000612a46601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611794565b115b8015612a545750600083115b8015612aaa5750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b005750601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b595750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015612b625750805b15612b7057612b6f612f77565b5b601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c115750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c6457600060068190555060006007819055506000600881905550612c59600854612c4b60075460065461209290919063ffffffff16565b61209290919063ffffffff16565b600981905550612f0f565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612d0a57600a54600681905550600b54600781905550600c54600881905550612cff600c54612cf1600b54600a5461209290919063ffffffff16565b61209290919063ffffffff16565b600981905550612f0e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612e5a57600d54600681905550600e54600781905550600f54600881905550612da5600f54612d97600e54600d5461209290919063ffffffff16565b61209290919063ffffffff16565b600981905550601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e0657504260115410155b15612e5557605f60068190555060006007819055506000600881905550612e4e600854612e4060075460065461209290919063ffffffff16565b61209290919063ffffffff16565b6009819055505b612f0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580612eb557504260115411155b612ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eeb90614b71565b60405180910390fd5b6000600681905550600060078190555060006008819055505b5b5b612f1a8686866132bf565b505050505050565b6000838311158290612f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6191906139f6565b60405180910390fd5b5082840390509392505050565b6001601260036101000a81548160ff0219169083151502179055506000612f9d30611794565b90506000612fcc600554612fbe60045460035461209290919063ffffffff16565b61209290919063ffffffff16565b90506000612fe6600260055461207490919063ffffffff16565b90506000612ffd828561357b90919063ffffffff16565b9050600047905061300d82613591565b6000613022824761357b90919063ffffffff16565b9050600061304d8661303f6003548561205e90919063ffffffff16565b61207490919063ffffffff16565b905060006130788761306a6004548661205e90919063ffffffff16565b61207490919063ffffffff16565b905060006130a182613093858761357b90919063ffffffff16565b61357b90919063ffffffff16565b90506000600381905550600060048190555060006005819055506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516131039061453b565b60006040518083038185875af1925050503d8060008114613140576040519150601f19603f3d011682016040523d82523d6000602084013e613145565b606091505b50509050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161318f9061453b565b60006040518083038185875af1925050503d80600081146131cc576040519150601f19603f3d011682016040523d82523d6000602084013e6131d1565b606091505b505080915050600082141580156131e9575060008814155b156131f9576131f88883612271565b5b6706f05b59d3b2000047111561329857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161324f9061453b565b60006040518083038185875af1925050503d806000811461328c576040519150601f19603f3d011682016040523d82523d6000602084013e613291565b606091505b5050809150505b505050505050505050506000601260036101000a81548160ff021916908315150217905550565b6000600954146134645760006132d4826137d4565b905060006132eb828461357b90919063ffffffff16565b90506132f68261382d565b82601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133459190614b91565b9250508190555080601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461339b919061461c565b9250508190555081601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133f1919061461c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134559190613942565b60405180910390a35050613576565b80601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134b39190614b91565b9250508190555080601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613509919061461c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161356d9190613942565b60405180910390a35b505050565b600081836135899190614b91565b905092915050565b6000600267ffffffffffffffff8111156135ae576135ad614bc5565b5b6040519080825280602002602001820160405280156135dc5781602001602082028036833780820191505090505b50905030816000815181106135f4576135f3614bf4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136bf9190614226565b816001815181106136d3576136d2614bf4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061373a30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a8565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161379e959493929190614ce1565b600060405180830381600087803b1580156137b857600080fd5b505af11580156137cc573d6000803e3d6000fd5b505050505050565b600061382660646138186138096008546137fb60075460065461209290919063ffffffff16565b61209290919063ffffffff16565b8561205e90919063ffffffff16565b61207490919063ffffffff16565b9050919050565b6138566009546138486006548461205e90919063ffffffff16565b61207490919063ffffffff16565b60036000828254613867919061461c565b925050819055506138976009546138896007548461205e90919063ffffffff16565b61207490919063ffffffff16565b600460008282546138a8919061461c565b925050819055506138d86009546138ca6008548461205e90919063ffffffff16565b61207490919063ffffffff16565b600560008282546138e9919061461c565b9250508190555050565b60008115159050919050565b613908816138f3565b82525050565b600060208201905061392360008301846138ff565b92915050565b6000819050919050565b61393c81613929565b82525050565b60006020820190506139576000830184613933565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561399757808201518184015260208101905061397c565b838111156139a6576000848401525b50505050565b6000601f19601f8301169050919050565b60006139c88261395d565b6139d28185613968565b93506139e2818560208601613979565b6139eb816139ac565b840191505092915050565b60006020820190508181036000830152613a1081846139bd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a4882613a1d565b9050919050565b613a5881613a3d565b8114613a6357600080fd5b50565b600081359050613a7581613a4f565b92915050565b613a8481613929565b8114613a8f57600080fd5b50565b600081359050613aa181613a7b565b92915050565b60008060408385031215613abe57613abd613a18565b5b6000613acc85828601613a66565b9250506020613add85828601613a92565b9150509250929050565b613af0816138f3565b8114613afb57600080fd5b50565b600081359050613b0d81613ae7565b92915050565b60008060408385031215613b2a57613b29613a18565b5b6000613b3885828601613a66565b9250506020613b4985828601613afe565b9150509250929050565b600060208284031215613b6957613b68613a18565b5b6000613b7784828501613afe565b91505092915050565b600060208284031215613b9657613b95613a18565b5b6000613ba484828501613a66565b91505092915050565b600080600060608486031215613bc657613bc5613a18565b5b6000613bd486828701613a66565b9350506020613be586828701613a66565b9250506040613bf686828701613a92565b9150509250925092565b600060ff82169050919050565b613c1681613c00565b82525050565b6000602082019050613c316000830184613c0d565b92915050565b60008060408385031215613c4e57613c4d613a18565b5b6000613c5c85828601613a92565b9250506020613c6d85828601613a92565b9150509250929050565b60008060008060008060c08789031215613c9457613c93613a18565b5b6000613ca289828a01613a92565b9650506020613cb389828a01613a92565b9550506040613cc489828a01613a92565b9450506060613cd589828a01613a92565b9350506080613ce689828a01613a92565b92505060a0613cf789828a01613a92565b9150509295509295509295565b613d0d81613a3d565b82525050565b6000602082019050613d286000830184613d04565b92915050565b6000819050919050565b6000613d53613d4e613d4984613a1d565b613d2e565b613a1d565b9050919050565b6000613d6582613d38565b9050919050565b6000613d7782613d5a565b9050919050565b613d8781613d6c565b82525050565b6000602082019050613da26000830184613d7e565b92915050565b60008060408385031215613dbf57613dbe613a18565b5b6000613dcd85828601613a66565b9250506020613dde85828601613a66565b9150509250929050565b7f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613e44602883613968565b9150613e4f82613de8565b604082019050919050565b60006020820190508181036000830152613e7381613e37565b9050919050565b7f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ed6602683613968565b9150613ee182613e7a565b604082019050919050565b60006020820190508181036000830152613f0581613ec9565b9050919050565b7f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613f68602583613968565b9150613f7382613f0c565b604082019050919050565b60006020820190508181036000830152613f9781613f5b565b9050919050565b7f45524332303a2054726164657320616c72656164792061637469766521000000600082015250565b6000613fd4601d83613968565b9150613fdf82613f9e565b602082019050919050565b6000602082019050818103600083015261400381613fc7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156140905780860481111561406c5761406b61400a565b5b600185161561407b5780820291505b808102905061408985614039565b9450614050565b94509492505050565b6000826140a95760019050614165565b816140b75760009050614165565b81600181146140cd57600281146140d757614106565b6001915050614165565b60ff8411156140e9576140e861400a565b5b8360020a915084821115614100576140ff61400a565b5b50614165565b5060208310610133831016604e8410600b841016171561413b5782820a9050838111156141365761413561400a565b5b614165565b6141488484846001614046565b9250905081840481111561415f5761415e61400a565b5b81810290505b9392505050565b600061417782613929565b915061418283613c00565b92506141af7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614099565b905092915050565b60006141c282613929565b91506141cd83613929565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156142065761420561400a565b5b828202905092915050565b60008151905061422081613a4f565b92915050565b60006020828403121561423c5761423b613a18565b5b600061424a84828501614211565b91505092915050565b60006040820190506142686000830185613d04565b6142756020830184613d04565b9392505050565b7f45524332303a204d757374206861766520455448206f6e20636f6e747261637460008201527f20746f20476f2061637469766521000000000000000000000000000000000000602082015250565b60006142d8602e83613968565b91506142e38261427c565b604082019050919050565b60006020820190508181036000830152614307816142cb565b9050919050565b7f45524332303a204163636f756e74206973206e6f7420736e6970657200000000600082015250565b6000614344601c83613968565b915061434f8261430e565b602082019050919050565b6000602082019050818103600083015261437381614337565b9050919050565b7f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f60008201527f7265207468616e20342500000000000000000000000000000000000000000000602082015250565b60006143d6602a83613968565b91506143e18261437a565b604082019050919050565b60006020820190508181036000830152614405816143c9565b9050919050565b7f45524332303a204163636f756e74206973206e6f7420626f7400000000000000600082015250565b6000614442601983613968565b915061444d8261440c565b602082019050919050565b6000602082019050818103600083015261447181614435565b9050919050565b7f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006144d4602b83613968565b91506144df82614478565b604082019050919050565b60006020820190508181036000830152614503816144c7565b9050919050565b600081905092915050565b50565b600061452560008361450a565b915061453082614515565b600082019050919050565b600061454682614518565b9150819050919050565b7f45524332303a204163636f756e7420616c726561647920616464656400000000600082015250565b6000614586601c83613968565b915061459182614550565b602082019050919050565b600060208201905081810360008301526145b581614579565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145f682613929565b915061460183613929565b925082614611576146106145bc565b5b828204905092915050565b600061462782613929565b915061463283613929565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146675761466661400a565b5b828201905092915050565b6000819050919050565b600061469761469261468d84614672565b613d2e565b613929565b9050919050565b6146a78161467c565b82525050565b60006146b882613d5a565b9050919050565b6146c8816146ad565b82525050565b600060c0820190506146e36000830189613d04565b6146f06020830188613933565b6146fd604083018761469e565b61470a606083018661469e565b61471760808301856146bf565b61472460a0830184613933565b979650505050505050565b60008151905061473e81613a7b565b92915050565b60008060006060848603121561475d5761475c613a18565b5b600061476b8682870161472f565b935050602061477c8682870161472f565b925050604061478d8682870161472f565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147f3602583613968565b91506147fe82614797565b604082019050919050565b60006020820190508181036000830152614822816147e6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614885602383613968565b915061489082614829565b604082019050919050565b600060208201905081810360008301526148b481614878565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000614917603083613968565b9150614922826148bb565b604082019050919050565b600060208201905081810360008301526149468161490a565b9050919050565b7f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f54600082015250565b6000614983602083613968565b915061498e8261494d565b602082019050919050565b600060208201905081810360008301526149b281614976565b9050919050565b7f45524332303a2054726164696e67204973204e6f742061637469766521000000600082015250565b60006149ef601d83613968565b91506149fa826149b9565b602082019050919050565b60006020820190508181036000830152614a1e816149e2565b9050919050565b7f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060008201527f77616c6c65742072656163686564000000000000000000000000000000000000602082015250565b6000614a81602e83613968565b9150614a8c82614a25565b604082019050919050565b60006020820190508181036000830152614ab081614a74565b9050919050565b6000614ac282613929565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614af457614af361400a565b5b600182019050919050565b7f45524332303a20536e69706572732063616e206e6f74207472616e736665722060008201527f74696c6c2070656e616c74792074696d65206973206f76657200000000000000602082015250565b6000614b5b603983613968565b9150614b6682614aff565b604082019050919050565b60006020820190508181036000830152614b8a81614b4e565b9050919050565b6000614b9c82613929565b9150614ba783613929565b925082821015614bba57614bb961400a565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c5881613a3d565b82525050565b6000614c6a8383614c4f565b60208301905092915050565b6000602082019050919050565b6000614c8e82614c23565b614c988185614c2e565b9350614ca383614c3f565b8060005b83811015614cd4578151614cbb8882614c5e565b9750614cc683614c76565b925050600181019050614ca7565b5085935050505092915050565b600060a082019050614cf66000830188613933565b614d03602083018761469e565b8181036040830152614d158186614c83565b9050614d246060830185613d04565b614d316080830184613933565b969550505050505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d49e7d898c234d9d9c96e622de6b067ec803a194bb4f92b8b35c95c18c96aa3764736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c8063675279861161010d578063958c2e52116100a0578063dd62ed3e1161006f578063dd62ed3e1461071a578063f2fde38b14610757578063f5648a4f14610780578063f99e36bc14610797578063ffecf516146107c257610204565b8063958c2e521461065e57806395d89b4114610689578063a9059cbb146106b4578063d9d99c96146106f157610204565b8063783efbc7116100dc578063783efbc7146105c85780638183b3c8146105f15780638bcea939146106085780638da5cb5b1461063357610204565b8063675279861461052057806370a0823114610549578063715018a614610586578063745d032f1461059d57610204565b80631a841d0211610190578063313ce5671161015f578063313ce5671461043d57806333251a0b14610468578063353470be1461049157806345a119a3146104ba5780635fecd926146104f757610204565b80631a841d021461036f5780631cae2108146103ac57806323b872dd146103d75780632500ae8a1461041457610204565b806311b4181a116101cc57806311b4181a146102c757806318160ddd146102f25780631892a9e21461031d57806318b78fe11461034657610204565b806302fb0c5e1461020957806305b723911461023457806306fdde031461025f578063095ea7b31461028a57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107eb565b60405161022b919061390e565b60405180910390f35b34801561024057600080fd5b506102496107fe565b6040516102569190613942565b60405180910390f35b34801561026b57600080fd5b50610274610804565b60405161028191906139f6565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190613aa7565b610841565b6040516102be919061390e565b60405180910390f35b3480156102d357600080fd5b506102dc610a25565b6040516102e9919061390e565b60405180910390f35b3480156102fe57600080fd5b50610307610f3c565b6040516103149190613942565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f9190613b13565b610f61565b005b34801561035257600080fd5b5061036d60048036038101906103689190613b53565b611038565b005b34801561037b57600080fd5b5061039660048036038101906103919190613b80565b6110d1565b6040516103a3919061390e565b60405180910390f35b3480156103b857600080fd5b506103c16110f1565b6040516103ce9190613942565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190613bad565b6110f7565b60405161040b919061390e565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190613b13565b6111d0565b005b34801561044957600080fd5b506104526112a7565b60405161045f9190613c1c565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190613b80565b6112b0565b005b34801561049d57600080fd5b506104b860048036038101906104b39190613c37565b611413565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190613b80565b611563565b6040516104ee919061390e565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613b80565b611583565b005b34801561052c57600080fd5b5061054760048036038101906105429190613c77565b6116e6565b005b34801561055557600080fd5b50610570600480360381019061056b9190613b80565b611794565b60405161057d9190613942565b60405180910390f35b34801561059257600080fd5b5061059b6117dd565b005b3480156105a957600080fd5b506105b2611917565b6040516105bf919061390e565b60405180910390f35b3480156105d457600080fd5b506105ef60048036038101906105ea9190613b53565b61192a565b005b3480156105fd57600080fd5b506106066119c3565b005b34801561061457600080fd5b5061061d611a5b565b60405161062a9190613d13565b60405180910390f35b34801561063f57600080fd5b50610648611a81565b6040516106559190613d13565b60405180910390f35b34801561066a57600080fd5b50610673611aaa565b6040516106809190613d8d565b60405180910390f35b34801561069557600080fd5b5061069e611ad0565b6040516106ab91906139f6565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d69190613aa7565b611b0d565b6040516106e8919061390e565b60405180910390f35b3480156106fd57600080fd5b5061071860048036038101906107139190613b53565b611b2b565b005b34801561072657600080fd5b50610741600480360381019061073c9190613da8565b611bc4565b60405161074e9190613942565b60405180910390f35b34801561076357600080fd5b5061077e60048036038101906107799190613b80565b611c4b565b005b34801561078c57600080fd5b50610795611df3565b005b3480156107a357600080fd5b506107ac611ee7565b6040516107b9919061390e565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613b80565b611efa565b005b601260029054906101000a900460ff1681565b60105481565b60606040518060400160405280600d81526020017f454747524f4c4c20524143455300000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff1661086261208a565b73ffffffffffffffffffffffffffffffffffffffff16036108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90613e5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091e90613eec565b60405180910390fd5b816019600061093461208a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166109ce61208a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a139190613942565b60405180910390a36001905092915050565b6000610a2f61208a565b73ffffffffffffffffffffffffffffffffffffffff16610a4d611a81565b73ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90613f7e565b60405180910390fd5b601260029054906101000a900460ff1615610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea90613fea565b60405180910390fd5b43601081905550610b1062093a804261209290919063ffffffff16565b6011819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610c3430601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610c1f919061416c565b64e8d4a51000610c2f91906141b7565b6120a8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca39190614226565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e9190614226565b6040518363ffffffff1660e01b8152600401610d4b929190614253565b6020604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8e9190614226565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060004711610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906142ee565b60405180910390fd5b610e9d610e9730611794565b47612271565b610ec8601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612371565b6001601260016101000a81548160ff0219169083151502179055506001601260046101000a81548160ff0219169083151502179055506001601260006101000a81548160ff0219169083151502179055506001601260026101000a81548160ff021916908315150217905550600191505090565b60006012600a610f4c919061416c565b64e8d4a51000610f5c91906141b7565b905090565b610f6961208a565b73ffffffffffffffffffffffffffffffffffffffff16610f87611a81565b73ffffffffffffffffffffffffffffffffffffffff1614610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613f7e565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61104061208a565b73ffffffffffffffffffffffffffffffffffffffff1661105e611a81565b73ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90613f7e565b60405180910390fd5b80601260016101000a81548160ff02191690831515021790555050565b601d6020528060005260406000206000915054906101000a900460ff1681565b60115481565b600061110484848461242f565b6111c58461111061208a565b6111c085604051806060016040528060318152602001614d3c60319139601960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061117661208a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f229092919063ffffffff16565b6120a8565b600190509392505050565b6111d861208a565b73ffffffffffffffffffffffffffffffffffffffff166111f6611a81565b73ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390613f7e565b60405180910390fd5b80601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6112b861208a565b73ffffffffffffffffffffffffffffffffffffffff166112d6611a81565b73ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390613f7e565b60405180910390fd5b601d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af9061435a565b60405180910390fd5b6000601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61141b61208a565b73ffffffffffffffffffffffffffffffffffffffff16611439611a81565b73ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690613f7e565b60405180910390fd5b6114d1816114c3846012600a6114a5919061416c565b64e8d4a510006114b591906141b7565b61205e90919063ffffffff16565b61207490919063ffffffff16565b60018190555061151b606461150d60046012600a6114ef919061416c565b64e8d4a510006114ff91906141b7565b61205e90919063ffffffff16565b61207490919063ffffffff16565b600154111561155f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611556906143ec565b60405180910390fd5b5050565b601e6020528060005260406000206000915054906101000a900460ff1681565b61158b61208a565b73ffffffffffffffffffffffffffffffffffffffff166115a9611a81565b73ffffffffffffffffffffffffffffffffffffffff16146115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690613f7e565b60405180910390fd5b601e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290614458565b60405180910390fd5b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116ee61208a565b73ffffffffffffffffffffffffffffffffffffffff1661170c611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613f7e565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e8190555080600f81905550505050505050565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117e561208a565b73ffffffffffffffffffffffffffffffffffffffff16611803611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185090613f7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260019054906101000a900460ff1681565b61193261208a565b73ffffffffffffffffffffffffffffffffffffffff16611950611a81565b73ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613f7e565b60405180910390fd5b80601260046101000a81548160ff02191690831515021790555050565b6119cb61208a565b73ffffffffffffffffffffffffffffffffffffffff166119e9611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3690613f7e565b60405180910390fd5b611a5930611a4b611a81565b611a5430611794565b61242f565b565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f454747524f4c4c00000000000000000000000000000000000000000000000000815250905090565b6000611b21611b1a61208a565b848461242f565b6001905092915050565b611b3361208a565b73ffffffffffffffffffffffffffffffffffffffff16611b51611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e90613f7e565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c5361208a565b73ffffffffffffffffffffffffffffffffffffffff16611c71611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90613f7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d906144ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dfb61208a565b73ffffffffffffffffffffffffffffffffffffffff16611e19611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6690613f7e565b60405180910390fd5b6000611e79611a81565b73ffffffffffffffffffffffffffffffffffffffff1647604051611e9c9061453b565b60006040518083038185875af1925050503d8060008114611ed9576040519150601f19603f3d011682016040523d82523d6000602084013e611ede565b606091505b50508091505050565b601260009054906101000a900460ff1681565b611f0261208a565b73ffffffffffffffffffffffffffffffffffffffff16611f20611a81565b73ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613f7e565b60405180910390fd5b601e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffa9061459c565b60405180910390fd5b6001601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000818361206c91906141b7565b905092915050565b6000818361208291906145eb565b905092915050565b600033905090565b600081836120a0919061461c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210e90613e5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217d90613eec565b60405180910390fd5b80601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122649190613942565b60405180910390a3505050565b61229e30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a8565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612327969594939291906146ce565b60606040518083038185885af1158015612345573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236a9190614744565b5050505050565b80601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361249e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249590614809565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361250d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125049061489b565b60405180910390fd5b60008111612550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125479061492d565b60405180910390fd5b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d490614999565b60405180910390fd5b601260029054906101000a900460ff166126d257601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126925750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c890614a05565b60405180910390fd5b5b60011515601260019054906101000a900460ff16151514801561273f5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127a4576001546127628261275485611794565b61209290919063ffffffff16565b11156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90614a97565b60405180910390fd5b5b601260009054906101000a900460ff16156129b7576127c1611a81565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561282f57506127ff611a81565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128685750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128c25750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561291c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129b65760005b60008110156129b4576129428160105461209290919063ffffffff16565b43036129a1576001601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806129ac90614ab7565b915050612924565b505b5b60006129d060035460055461209290919063ffffffff16565b905060006129dd30611794565b905060006002548210159050601260039054906101000a900460ff16158015612a125750601260049054906101000a900460ff165b8015612a4857506000612a46601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611794565b115b8015612a545750600083115b8015612aaa5750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b005750601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b595750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015612b625750805b15612b7057612b6f612f77565b5b601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c115750601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c6457600060068190555060006007819055506000600881905550612c59600854612c4b60075460065461209290919063ffffffff16565b61209290919063ffffffff16565b600981905550612f0f565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612d0a57600a54600681905550600b54600781905550600c54600881905550612cff600c54612cf1600b54600a5461209290919063ffffffff16565b61209290919063ffffffff16565b600981905550612f0e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612e5a57600d54600681905550600e54600781905550600f54600881905550612da5600f54612d97600e54600d5461209290919063ffffffff16565b61209290919063ffffffff16565b600981905550601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e0657504260115410155b15612e5557605f60068190555060006007819055506000600881905550612e4e600854612e4060075460065461209290919063ffffffff16565b61209290919063ffffffff16565b6009819055505b612f0d565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580612eb557504260115411155b612ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eeb90614b71565b60405180910390fd5b6000600681905550600060078190555060006008819055505b5b5b612f1a8686866132bf565b505050505050565b6000838311158290612f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6191906139f6565b60405180910390fd5b5082840390509392505050565b6001601260036101000a81548160ff0219169083151502179055506000612f9d30611794565b90506000612fcc600554612fbe60045460035461209290919063ffffffff16565b61209290919063ffffffff16565b90506000612fe6600260055461207490919063ffffffff16565b90506000612ffd828561357b90919063ffffffff16565b9050600047905061300d82613591565b6000613022824761357b90919063ffffffff16565b9050600061304d8661303f6003548561205e90919063ffffffff16565b61207490919063ffffffff16565b905060006130788761306a6004548661205e90919063ffffffff16565b61207490919063ffffffff16565b905060006130a182613093858761357b90919063ffffffff16565b61357b90919063ffffffff16565b90506000600381905550600060048190555060006005819055506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516131039061453b565b60006040518083038185875af1925050503d8060008114613140576040519150601f19603f3d011682016040523d82523d6000602084013e613145565b606091505b50509050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161318f9061453b565b60006040518083038185875af1925050503d80600081146131cc576040519150601f19603f3d011682016040523d82523d6000602084013e6131d1565b606091505b505080915050600082141580156131e9575060008814155b156131f9576131f88883612271565b5b6706f05b59d3b2000047111561329857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161324f9061453b565b60006040518083038185875af1925050503d806000811461328c576040519150601f19603f3d011682016040523d82523d6000602084013e613291565b606091505b5050809150505b505050505050505050506000601260036101000a81548160ff021916908315150217905550565b6000600954146134645760006132d4826137d4565b905060006132eb828461357b90919063ffffffff16565b90506132f68261382d565b82601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133459190614b91565b9250508190555080601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461339b919061461c565b9250508190555081601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133f1919061461c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134559190613942565b60405180910390a35050613576565b80601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134b39190614b91565b9250508190555080601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613509919061461c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161356d9190613942565b60405180910390a35b505050565b600081836135899190614b91565b905092915050565b6000600267ffffffffffffffff8111156135ae576135ad614bc5565b5b6040519080825280602002602001820160405280156135dc5781602001602082028036833780820191505090505b50905030816000815181106135f4576135f3614bf4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136bf9190614226565b816001815181106136d3576136d2614bf4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061373a30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a8565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161379e959493929190614ce1565b600060405180830381600087803b1580156137b857600080fd5b505af11580156137cc573d6000803e3d6000fd5b505050505050565b600061382660646138186138096008546137fb60075460065461209290919063ffffffff16565b61209290919063ffffffff16565b8561205e90919063ffffffff16565b61207490919063ffffffff16565b9050919050565b6138566009546138486006548461205e90919063ffffffff16565b61207490919063ffffffff16565b60036000828254613867919061461c565b925050819055506138976009546138896007548461205e90919063ffffffff16565b61207490919063ffffffff16565b600460008282546138a8919061461c565b925050819055506138d86009546138ca6008548461205e90919063ffffffff16565b61207490919063ffffffff16565b600560008282546138e9919061461c565b9250508190555050565b60008115159050919050565b613908816138f3565b82525050565b600060208201905061392360008301846138ff565b92915050565b6000819050919050565b61393c81613929565b82525050565b60006020820190506139576000830184613933565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561399757808201518184015260208101905061397c565b838111156139a6576000848401525b50505050565b6000601f19601f8301169050919050565b60006139c88261395d565b6139d28185613968565b93506139e2818560208601613979565b6139eb816139ac565b840191505092915050565b60006020820190508181036000830152613a1081846139bd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a4882613a1d565b9050919050565b613a5881613a3d565b8114613a6357600080fd5b50565b600081359050613a7581613a4f565b92915050565b613a8481613929565b8114613a8f57600080fd5b50565b600081359050613aa181613a7b565b92915050565b60008060408385031215613abe57613abd613a18565b5b6000613acc85828601613a66565b9250506020613add85828601613a92565b9150509250929050565b613af0816138f3565b8114613afb57600080fd5b50565b600081359050613b0d81613ae7565b92915050565b60008060408385031215613b2a57613b29613a18565b5b6000613b3885828601613a66565b9250506020613b4985828601613afe565b9150509250929050565b600060208284031215613b6957613b68613a18565b5b6000613b7784828501613afe565b91505092915050565b600060208284031215613b9657613b95613a18565b5b6000613ba484828501613a66565b91505092915050565b600080600060608486031215613bc657613bc5613a18565b5b6000613bd486828701613a66565b9350506020613be586828701613a66565b9250506040613bf686828701613a92565b9150509250925092565b600060ff82169050919050565b613c1681613c00565b82525050565b6000602082019050613c316000830184613c0d565b92915050565b60008060408385031215613c4e57613c4d613a18565b5b6000613c5c85828601613a92565b9250506020613c6d85828601613a92565b9150509250929050565b60008060008060008060c08789031215613c9457613c93613a18565b5b6000613ca289828a01613a92565b9650506020613cb389828a01613a92565b9550506040613cc489828a01613a92565b9450506060613cd589828a01613a92565b9350506080613ce689828a01613a92565b92505060a0613cf789828a01613a92565b9150509295509295509295565b613d0d81613a3d565b82525050565b6000602082019050613d286000830184613d04565b92915050565b6000819050919050565b6000613d53613d4e613d4984613a1d565b613d2e565b613a1d565b9050919050565b6000613d6582613d38565b9050919050565b6000613d7782613d5a565b9050919050565b613d8781613d6c565b82525050565b6000602082019050613da26000830184613d7e565b92915050565b60008060408385031215613dbf57613dbe613a18565b5b6000613dcd85828601613a66565b9250506020613dde85828601613a66565b9150509250929050565b7f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613e44602883613968565b9150613e4f82613de8565b604082019050919050565b60006020820190508181036000830152613e7381613e37565b9050919050565b7f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ed6602683613968565b9150613ee182613e7a565b604082019050919050565b60006020820190508181036000830152613f0581613ec9565b9050919050565b7f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613f68602583613968565b9150613f7382613f0c565b604082019050919050565b60006020820190508181036000830152613f9781613f5b565b9050919050565b7f45524332303a2054726164657320616c72656164792061637469766521000000600082015250565b6000613fd4601d83613968565b9150613fdf82613f9e565b602082019050919050565b6000602082019050818103600083015261400381613fc7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156140905780860481111561406c5761406b61400a565b5b600185161561407b5780820291505b808102905061408985614039565b9450614050565b94509492505050565b6000826140a95760019050614165565b816140b75760009050614165565b81600181146140cd57600281146140d757614106565b6001915050614165565b60ff8411156140e9576140e861400a565b5b8360020a915084821115614100576140ff61400a565b5b50614165565b5060208310610133831016604e8410600b841016171561413b5782820a9050838111156141365761413561400a565b5b614165565b6141488484846001614046565b9250905081840481111561415f5761415e61400a565b5b81810290505b9392505050565b600061417782613929565b915061418283613c00565b92506141af7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614099565b905092915050565b60006141c282613929565b91506141cd83613929565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156142065761420561400a565b5b828202905092915050565b60008151905061422081613a4f565b92915050565b60006020828403121561423c5761423b613a18565b5b600061424a84828501614211565b91505092915050565b60006040820190506142686000830185613d04565b6142756020830184613d04565b9392505050565b7f45524332303a204d757374206861766520455448206f6e20636f6e747261637460008201527f20746f20476f2061637469766521000000000000000000000000000000000000602082015250565b60006142d8602e83613968565b91506142e38261427c565b604082019050919050565b60006020820190508181036000830152614307816142cb565b9050919050565b7f45524332303a204163636f756e74206973206e6f7420736e6970657200000000600082015250565b6000614344601c83613968565b915061434f8261430e565b602082019050919050565b6000602082019050818103600083015261437381614337565b9050919050565b7f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f60008201527f7265207468616e20342500000000000000000000000000000000000000000000602082015250565b60006143d6602a83613968565b91506143e18261437a565b604082019050919050565b60006020820190508181036000830152614405816143c9565b9050919050565b7f45524332303a204163636f756e74206973206e6f7420626f7400000000000000600082015250565b6000614442601983613968565b915061444d8261440c565b602082019050919050565b6000602082019050818103600083015261447181614435565b9050919050565b7f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006144d4602b83613968565b91506144df82614478565b604082019050919050565b60006020820190508181036000830152614503816144c7565b9050919050565b600081905092915050565b50565b600061452560008361450a565b915061453082614515565b600082019050919050565b600061454682614518565b9150819050919050565b7f45524332303a204163636f756e7420616c726561647920616464656400000000600082015250565b6000614586601c83613968565b915061459182614550565b602082019050919050565b600060208201905081810360008301526145b581614579565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145f682613929565b915061460183613929565b925082614611576146106145bc565b5b828204905092915050565b600061462782613929565b915061463283613929565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156146675761466661400a565b5b828201905092915050565b6000819050919050565b600061469761469261468d84614672565b613d2e565b613929565b9050919050565b6146a78161467c565b82525050565b60006146b882613d5a565b9050919050565b6146c8816146ad565b82525050565b600060c0820190506146e36000830189613d04565b6146f06020830188613933565b6146fd604083018761469e565b61470a606083018661469e565b61471760808301856146bf565b61472460a0830184613933565b979650505050505050565b60008151905061473e81613a7b565b92915050565b60008060006060848603121561475d5761475c613a18565b5b600061476b8682870161472f565b935050602061477c8682870161472f565b925050604061478d8682870161472f565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147f3602583613968565b91506147fe82614797565b604082019050919050565b60006020820190508181036000830152614822816147e6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614885602383613968565b915061489082614829565b604082019050919050565b600060208201905081810360008301526148b481614878565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000614917603083613968565b9150614922826148bb565b604082019050919050565b600060208201905081810360008301526149468161490a565b9050919050565b7f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f54600082015250565b6000614983602083613968565b915061498e8261494d565b602082019050919050565b600060208201905081810360008301526149b281614976565b9050919050565b7f45524332303a2054726164696e67204973204e6f742061637469766521000000600082015250565b60006149ef601d83613968565b91506149fa826149b9565b602082019050919050565b60006020820190508181036000830152614a1e816149e2565b9050919050565b7f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060008201527f77616c6c65742072656163686564000000000000000000000000000000000000602082015250565b6000614a81602e83613968565b9150614a8c82614a25565b604082019050919050565b60006020820190508181036000830152614ab081614a74565b9050919050565b6000614ac282613929565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614af457614af361400a565b5b600182019050919050565b7f45524332303a20536e69706572732063616e206e6f74207472616e736665722060008201527f74696c6c2070656e616c74792074696d65206973206f76657200000000000000602082015250565b6000614b5b603983613968565b9150614b6682614aff565b604082019050919050565b60006020820190508181036000830152614b8a81614b4e565b9050919050565b6000614b9c82613929565b9150614ba783613929565b925082821015614bba57614bb961400a565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c5881613a3d565b82525050565b6000614c6a8383614c4f565b60208301905092915050565b6000602082019050919050565b6000614c8e82614c23565b614c988185614c2e565b9350614ca383614c3f565b8060005b83811015614cd4578151614cbb8882614c5e565b9750614cc683614c76565b925050600181019050614ca7565b5085935050505092915050565b600060a082019050614cf66000830188613933565b614d03602083018761469e565b8181036040830152614d158186614c83565b9050614d246060830185613d04565b614d316080830184613933565b969550505050505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d49e7d898c234d9d9c96e622de6b067ec803a194bb4f92b8b35c95c18c96aa3764736f6c634300080f0033

Deployed Bytecode Sourcemap

9111:14559:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9877:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9740:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12098:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12779:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14065:957;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12401:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19119:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19627:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10446:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9771:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13715:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18974:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12302:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18799:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19270:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10492:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18639:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19854:515;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12504:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4060:148;;;;;;;;;;;;;:::i;:::-;;9839:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19738:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18338:135;;;;;;;;;;;;;:::i;:::-;;10144:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3836:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10175:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12198:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13533:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19521:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12628:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4214:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18175:157;;;;;;;;;;;;;:::i;:::-;;9805:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18479:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9877:26;;;;;;;;;;;;;:::o;9740:24::-;;;;:::o;12098:94::-;12146:13;12179:5;;;;;;;;;;;;;;;;;12172:12;;12098:94;:::o;12779:393::-;12854:4;12903:1;12879:26;;:12;:10;:12::i;:::-;:26;;;12871:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12988:1;12969:21;;:7;:21;;;12961:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13081:6;13044:11;:25;13056:12;:10;:12::i;:::-;13044:25;;;;;;;;;;;;;;;:34;13070:7;13044:34;;;;;;;;;;;;;;;:43;;;;13126:7;13103:39;;13112:12;:10;:12::i;:::-;13103:39;;;13135:6;13103:39;;;;;;:::i;:::-;;;;;;;;13160:4;13153:11;;12779:393;;;;:::o;14065:957::-;14109:4;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14134:6:::1;;;;;;;;;;;14133:7;14125:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14197:12;14185:9;:24;;;;14235:27;14255:6;14235:15;:19;;:27;;;;:::i;:::-;14220:12;:42;;;;14273:31;14326:42;14273:96;;14394:12;14380:11;;:26;;;;;;;;;;;;;;;;;;14453:4;14417:11;:33;14437:11;;;;;;;;;;;14417:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;14468:61;14492:4;14507:11;;;;;;;;;;;10769:2;10820;:12;;;;:::i;:::-;10813:4;:19;;;;:::i;:::-;14468:15;:61::i;:::-;14570:12;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14552:52;;;14613:4;14620:12;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14552:88;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14540:9;;:100;;;;;;;;;;;;;;;;;;14685:4;14651:11;:31;14671:9;;;;;;;;;;;14651:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14732:1;14708:21;:25;14700:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;14795:61;14808:24;14826:4;14808:9;:24::i;:::-;14834:21;14795:12;:61::i;:::-;14867:25;14887:4;;;;;;;;;;;14867:19;:25::i;:::-;14917:4;14903:11;;:18;;;;;;;;;;;;;;;;;;14939:4;14932;;:11;;;;;;;;;;;;;;;;;;14964:4;14954:7;;:14;;;;;;;;;;;;;;;;;;14988:4;14979:6;;:13;;;;;;;;;;;;;;;;;;15010:4;15003:11;;;14065:957:::0;:::o;12401:97::-;12456:7;10769:2;10820;:12;;;;:::i;:::-;10813:4;:19;;;;:::i;:::-;12476:14;;12401:97;:::o;19119:145::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19245:11:::1;19213;:29;19233:7;19213:29;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;19119:145:::0;;:::o;19627:105::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19713:11:::1;19699;;:25;;;;;;;;;;;;;;;;;;19627:105:::0;:::o;10446:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;9771:27::-;;;;:::o;13715:344::-;13813:4;13830:43;13847:6;13855:9;13866:6;13830:16;:43::i;:::-;13884:145;13900:6;13907:12;:10;:12::i;:::-;13930:98;13968:6;13930:98;;;;;;;;;;;;;;;;;:11;:19;13942:6;13930:19;;;;;;;;;;;;;;;:33;13950:12;:10;:12::i;:::-;13930:33;;;;;;;;;;;;;;;;:37;;:98;;;;;:::i;:::-;13884:15;:145::i;:::-;14047:4;14040:11;;13715:344;;;;;:::o;18974:139::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19094:11:::1;19062;:29;19082:7;19062:29;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;18974:139:::0;;:::o;12302:93::-;12354:5;10769:2;12372:15;;12302:93;:::o;18799:169::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18876:7:::1;:16;18884:7;18876:16;;;;;;;;;;;;;;;;;;;;;;;;;18868:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18955:5;18936:7;:16;18944:7;18936:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18799:169:::0;:::o;19270:245::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19372:33:::1;19397:7;19372:20;19384:7;10769:2;10820;:12;;;;:::i;:::-;10813:4;:19;;;;:::i;:::-;19372:11;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;19359:10;:46;;;;19437:23;19456:3;19437:14;19449:1;10769:2;10820;:12;;;;:::i;:::-;10813:4;:19;;;;:::i;:::-;19437:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;19424:10;;:36;;19416:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19270:245:::0;;:::o;10492:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;18639:157::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18713:4:::1;:13;18718:7;18713:13;;;;;;;;;;;;;;;;;;;;;;;;;18705:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;18783:5;18767:4;:13;18772:7;18767:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18639:157:::0;:::o;19854:515::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20124:15:::1;20106;:33;;;;20167:14;20150;:31;;;;20210:15;20192;:33;;;;20255:16;20236;:35;;;;20300:15;20282;:33;;;;20345:16;20326;:35;;;;19854:515:::0;;;;;;:::o;12504:118::-;12570:7;12597:8;:17;12606:7;12597:17;;;;;;;;;;;;;;;;12590:24;;12504:118;;;:::o;4060:148::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4167:1:::1;4130:40;;4151:6;::::0;::::1;;;;;;;;4130:40;;;;;;;;;;;;4198:1;4181:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4060:148::o:0;9839:31::-;;;;;;;;;;;;;:::o;19738:110::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19829:11:::1;19822:4;;:18;;;;;;;;;;;;;;;;;;19738:110:::0;:::o;18338:135::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18399:66:::1;18424:4;18431:7;:5;:7::i;:::-;18440:24;18458:4;18440:9;:24::i;:::-;18399:16;:66::i;:::-;18338:135::o:0;10144:24::-;;;;;;;;;;;;;:::o;3836:87::-;3882:7;3909:6;;;;;;;;;;;3902:13;;3836:87;:::o;10175:37::-;;;;;;;;;;;;;:::o;12198:98::-;12248:13;12281:7;;;;;;;;;;;;;;;;;12274:14;;12198:98;:::o;13533:176::-;13613:4;13630:49;13647:12;:10;:12::i;:::-;13661:9;13672:6;13630:16;:49::i;:::-;13697:4;13690:11;;13533:176;;;;:::o;19521:100::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19602:11:::1;19592:7;;:21;;;;;;;;;;;;;;;;;;19521:100:::0;:::o;12628:145::-;12711:7;12738:11;:18;12750:5;12738:18;;;;;;;;;;;;;;;:27;12757:7;12738:27;;;;;;;;;;;;;;;;12731:34;;12628:145;;;;:::o;4214:249::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4323:1:::1;4303:22;;:8;:22;;::::0;4295:78:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4418:8;4389:38;;4410:6;::::0;::::1;;;;;;;;4389:38;;;;;;;;;;;;4447:8;4438:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4214:249:::0;:::o;18175:157::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18233:12:::1;18277:7;:5;:7::i;:::-;18269:21;;18298;18269:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18256:68;;;;;18222:110;18175:157::o:0;9805:27::-;;;;;;;;;;;;;:::o;18479:157::-;3980:12;:10;:12::i;:::-;3969:23;;:7;:5;:7::i;:::-;:23;;;3961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18551:4:::1;:13;18556:7;18551:13;;;;;;;;;;;;;;;;;;;;;;;;;18550:14;18542:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18624:4;18608;:13;18613:7;18608:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18479:157:::0;:::o;1638:98::-;1696:7;1727:1;1723;:5;;;;:::i;:::-;1716:12;;1638:98;;;;:::o;1742:::-;1800:7;1831:1;1827;:5;;;;:::i;:::-;1820:12;;1742:98;;;;:::o;3415:::-;3468:7;3495:10;3488:17;;3415:98;:::o;1430:::-;1488:7;1519:1;1515;:5;;;;:::i;:::-;1508:12;;1430:98;;;;:::o;13178:349::-;13294:1;13277:19;;:5;:19;;;13269:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13379:1;13360:21;;:7;:21;;;13352:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13465:6;13435:11;:18;13447:5;13435:18;;;;;;;;;;;;;;;:27;13454:7;13435:27;;;;;;;;;;;;;;;:36;;;;13503:7;13487:32;;13496:5;13487:32;;;13512:6;13487:32;;;;;;:::i;:::-;;;;;;;;13178:349;;;:::o;22198:369::-;22280:65;22304:4;22319:11;;;;;;;;;;;22333;22280:15;:65::i;:::-;22356:11;;;;;;;;;;;:27;;;22391:9;22424:4;22444:11;22470:1;22486;22502:16;;;;;;;;;;;22533:15;22356:203;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22198:369;;:::o;18009:160::-;18104:9;18077:16;;:37;;;;;;;;;;;;;;;;;;18157:4;18125:11;:29;18137:16;;;;;;;;;;;18125:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18009:160;:::o;15028:2975::-;15140:1;15124:18;;:4;:18;;;15116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15217:1;15203:16;;:2;:16;;;15195:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15287:1;15278:6;:10;15270:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15361:4;:10;15366:4;15361:10;;;;;;;;;;;;;;;;;;;;;;;;;15360:11;15352:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15423:6;;;;;;;;;;;15419:116;;15453:11;:17;15465:4;15453:17;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;15474:11;:15;15486:2;15474:15;;;;;;;;;;;;;;;;;;;;;;;;;15453:36;15445:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15419:116;15564:4;15549:19;;:11;;;;;;;;;;;:19;;;:40;;;;;15574:11;:15;15586:2;15574:15;;;;;;;;;;;;;;;;;;;;;;;;;15572:17;15549:40;15545:171;;;15643:10;;15614:25;15632:6;15614:13;15624:2;15614:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:39;;15606:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;15545:171;15729:7;;;;;;;;;;;15726:339;;;15764:7;:5;:7::i;:::-;15756:15;;:4;:15;;;;:32;;;;;15781:7;:5;:7::i;:::-;15775:13;;:2;:13;;;;15756:32;:52;;;;;15806:1;15792:16;;:2;:16;;;;15756:52;:66;;;;;15818:4;;;;;;;;;;;15812:10;;:2;:10;;;;15756:66;:85;;;;;15832:9;;;;;;;;;;;15826:15;;:2;:15;;;;15756:85;15752:302;;;15867:6;15862:177;15883:1;15879;:5;15862:177;;;15933:16;15947:1;15933:9;;:13;;:16;;;;:::i;:::-;15917:12;:32;15914:106;;15992:4;15978:7;:11;15986:2;15978:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;15914:106;15886:3;;;;;:::i;:::-;;;;15862:177;;;;15752:302;15726:339;16084:25;16112:36;16132:15;;16112;;:19;;:36;;;;:::i;:::-;16084:64;;16159:28;16190:24;16208:4;16190:9;:24::i;:::-;16159:55;;16225:28;16280:6;;16256:20;:30;;16225:61;;16302:4;;;;;;;;;;;16301:5;:26;;;;;16323:4;;;;;;;;;;;16301:26;:67;;;;;16367:1;16344:20;16354:9;;;;;;;;;;;16344;:20::i;:::-;:24;16301:67;:105;;;;;16405:1;16385:17;:21;16301:105;:138;;;;;16424:11;:15;16436:2;16424:15;;;;;;;;;;;;;;;;;;;;;;;;;16423:16;16301:138;:173;;;;;16457:11;:17;16469:4;16457:17;;;;;;;;;;;;;;;;;;;;;;;;;16456:18;16301:173;:205;;;;;16497:9;;;;;;;;;;;16491:15;;:2;:15;;;16301:205;:245;;;;;16523:23;16301:245;16297:296;;;16563:14;:12;:14::i;:::-;16297:296;16607:11;:17;16619:4;16607:17;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;16628:11;:15;16640:2;16628:15;;;;;;;;;;;;;;;;;;;;;;;;;16607:36;16603:1351;;;16675:1;16660:12;:16;;;;16705:1;16691:11;:15;;;;16736:1;16721:12;:16;;;;16763:47;16797:12;;16763:29;16780:11;;16763:12;;:16;;:29;;;;:::i;:::-;:33;;:47;;;;:::i;:::-;16752:8;:58;;;;16603:1351;;;16855:9;;;;;;;;;;;16847:17;;:4;:17;;;16843:1100;;16900:15;;16885:12;:30;;;;16948:14;;16934:11;:28;;;;16996:15;;16981:12;:30;;;;17041:56;17081:15;;17041:35;17061:14;;17041:15;;:19;;:35;;;;:::i;:::-;:39;;:56;;;;:::i;:::-;17030:8;:67;;;;16843:1100;;;17128:9;;;;;;;;;;;17122:15;;:2;:15;;;17118:825;;17173:16;;17158:12;:31;;;;17222:15;;17208:11;:29;;;;17271:16;;17256:12;:31;;;;17317:59;17359:16;;17317:37;17338:15;;17317:16;;:20;;:37;;;;:::i;:::-;:41;;:59;;;;:::i;:::-;17306:8;:70;;;;17398:7;:13;17406:4;17398:13;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;17431:15;17415:12;;:31;;17398:48;17395:270;;;17485:2;17470:12;:17;;;;17524:1;17510:11;:15;;;;17563:1;17548:12;:16;;;;17598:47;17632:12;;17598:29;17615:11;;17598:12;;:16;;:29;;;;:::i;:::-;:33;;:47;;;;:::i;:::-;17587:8;:58;;;;17395:270;17118:825;;;17713:7;:13;17721:4;17713:13;;;;;;;;;;;;;;;;;;;;;;;;;17712:14;:49;;;;17746:15;17730:12;;:31;;17712:49;17704:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;17857:1;17842:12;:16;;;;17891:1;17877:11;:15;;;;17926:1;17911:12;:16;;;;17118:825;16843:1100;16603:1351;17964:31;17978:4;17984:2;17988:6;17964:13;:31::i;:::-;15105:2898;;;15028:2975;;;:::o;1950:206::-;2036:7;2094:1;2089;:6;;2097:12;2081:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2136:1;2132;:5;2125:12;;1950:206;;;;;:::o;20375:1344::-;10576:4;10569;;:11;;;;;;;;;;;;;;;;;;20431:23:::1;20457:24;20475:4;20457:9;:24::i;:::-;20431:50;;20492:25;20520:56;20560:15;;20520:35;20540:14;;20520:15;;:19;;:35;;;;:::i;:::-;:39;;:56;;;;:::i;:::-;20492:84;;20587:27;20617:22;20637:1;20617:15;;:19;;:22;;;;:::i;:::-;20587:52;;20650:26;20679:40;20699:19;20679:15;:19;;:40;;;;:::i;:::-;20650:69;;20730:25;20758:21;20730:49;;20790:36;20807:18;20790:16;:36::i;:::-;20838:18;20859:44;20885:17;20859:21;:25;;:44;;;;:::i;:::-;20838:65;;20914:23;20940:54;20976:17;20940:31;20955:15;;20940:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;20914:80;;21005:22;21030:53;21065:17;21030:30;21045:14;;21030:10;:14;;:30;;;;:::i;:::-;:34;;:53;;;;:::i;:::-;21005:78;;21094:23;21120:51;21156:14;21120:31;21135:15;21120:10;:14;;:31;;;;:::i;:::-;:35;;:51;;;;:::i;:::-;21094:77;;21200:1;21182:15;:19;;;;21229:1;21212:14;:18;;;;21259:1;21241:15;:19;;;;21272:12;21297:16;;;;;;;;;;;21289:30;;21327:15;21289:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21271:76;;;21379:15;;;;;;;;;;;21371:29;;21408:14;21371:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21358:69;;;;;21460:1;21441:15;:20;;:48;;;;;21488:1;21465:19;:24;;21441:48;21438:130;;;21506:50;21519:19;21540:15;21506:12;:50::i;:::-;21438:130;21605:8;21581:21;:32;21578:134;;;21650:10;;;;;;;;;;;21642:24;;21674:21;21642:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21629:71;;;;;21578:134;20420:1299;;;;;;;;;;10610:5:::0;10603:4;;:12;;;;;;;;;;;;;;;;;;20375:1344::o;23020:647::-;23127:1;23115:8;;:13;23112:548;;23144:17;23164:20;23177:6;23164:12;:20::i;:::-;23144:40;;23199:22;23224:21;23235:9;23224:6;:10;;:21;;;;:::i;:::-;23199:46;;23260:25;23275:9;23260:14;:25::i;:::-;23320:6;23300:8;:16;23309:6;23300:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;23364:14;23341:8;:19;23350:9;23341:19;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;23420:9;23393:8;:23;23410:4;23393:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;23466:9;23449:43;;23458:6;23449:43;;;23477:14;23449:43;;;;;;:::i;:::-;;;;;;;;23129:375;;23112:548;;;23543:6;23523:8;:16;23532:6;23523:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;23587:6;23564:8;:19;23573:9;23564:19;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;23630:9;23613:35;;23622:6;23613:35;;;23641:6;23613:35;;;;;;:::i;:::-;;;;;;;;23112:548;23020:647;;;:::o;1534:98::-;1592:7;1623:1;1619;:5;;;;:::i;:::-;1612:12;;1534:98;;;;:::o;21725:467::-;21792:21;21830:1;21816:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21792:40;;21861:4;21843;21848:1;21843:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21887:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21877:4;21882:1;21877:7;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;;;21916:65;21940:4;21955:11;;;;;;;;;;;21969;21916:15;:65::i;:::-;21992:11;;;;;;;;;;;:62;;;22069:11;22095:1;22111:4;22138;22158:15;21992:192;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21781:411;21725:467;:::o;22573:164::-;22634:7;22661:68;22725:3;22661:59;22672:47;22706:12;;22672:29;22689:11;;22672:12;;:16;;:29;;;;:::i;:::-;:33;;:47;;;;:::i;:::-;22661:6;:10;;:59;;;;:::i;:::-;:63;;:68;;;;:::i;:::-;22654:75;;22573:164;;;:::o;22743:271::-;22825:41;22857:8;;22825:27;22839:12;;22825:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;22806:15;;:60;;;;;;;:::i;:::-;;;;;;;;22895:40;22926:8;;22895:26;22909:11;;22895:9;:13;;:26;;;;:::i;:::-;:30;;:40;;;;:::i;:::-;22877:14;;:58;;;;;;;:::i;:::-;;;;;;;;22965:41;22997:8;;22965:27;22979:12;;22965:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;22946:15;;:60;;;;;;;:::i;:::-;;;;;;;;22743:271;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:77::-;471:7;500:5;489:16;;434:77;;;:::o;517:118::-;604:24;622:5;604:24;:::i;:::-;599:3;592:37;517:118;;:::o;641:222::-;734:4;772:2;761:9;757:18;749:26;;785:71;853:1;842:9;838:17;829:6;785:71;:::i;:::-;641:222;;;;:::o;869:99::-;921:6;955:5;949:12;939:22;;869:99;;;:::o;974:169::-;1058:11;1092:6;1087:3;1080:19;1132:4;1127:3;1123:14;1108:29;;974:169;;;;:::o;1149:307::-;1217:1;1227:113;1241:6;1238:1;1235:13;1227:113;;;1326:1;1321:3;1317:11;1311:18;1307:1;1302:3;1298:11;1291:39;1263:2;1260:1;1256:10;1251:15;;1227:113;;;1358:6;1355:1;1352:13;1349:101;;;1438:1;1429:6;1424:3;1420:16;1413:27;1349:101;1198:258;1149:307;;;:::o;1462:102::-;1503:6;1554:2;1550:7;1545:2;1538:5;1534:14;1530:28;1520:38;;1462:102;;;:::o;1570:364::-;1658:3;1686:39;1719:5;1686:39;:::i;:::-;1741:71;1805:6;1800:3;1741:71;:::i;:::-;1734:78;;1821:52;1866:6;1861:3;1854:4;1847:5;1843:16;1821:52;:::i;:::-;1898:29;1920:6;1898:29;:::i;:::-;1893:3;1889:39;1882:46;;1662:272;1570:364;;;;:::o;1940:313::-;2053:4;2091:2;2080:9;2076:18;2068:26;;2140:9;2134:4;2130:20;2126:1;2115:9;2111:17;2104:47;2168:78;2241:4;2232:6;2168:78;:::i;:::-;2160:86;;1940:313;;;;:::o;2340:117::-;2449:1;2446;2439:12;2586:126;2623:7;2663:42;2656:5;2652:54;2641:65;;2586:126;;;:::o;2718:96::-;2755:7;2784:24;2802:5;2784:24;:::i;:::-;2773:35;;2718:96;;;:::o;2820:122::-;2893:24;2911:5;2893:24;:::i;:::-;2886:5;2883:35;2873:63;;2932:1;2929;2922:12;2873:63;2820:122;:::o;2948:139::-;2994:5;3032:6;3019:20;3010:29;;3048:33;3075:5;3048:33;:::i;:::-;2948:139;;;;:::o;3093:122::-;3166:24;3184:5;3166:24;:::i;:::-;3159:5;3156:35;3146:63;;3205:1;3202;3195:12;3146:63;3093:122;:::o;3221:139::-;3267:5;3305:6;3292:20;3283:29;;3321:33;3348:5;3321:33;:::i;:::-;3221:139;;;;:::o;3366:474::-;3434:6;3442;3491:2;3479:9;3470:7;3466:23;3462:32;3459:119;;;3497:79;;:::i;:::-;3459:119;3617:1;3642:53;3687:7;3678:6;3667:9;3663:22;3642:53;:::i;:::-;3632:63;;3588:117;3744:2;3770:53;3815:7;3806:6;3795:9;3791:22;3770:53;:::i;:::-;3760:63;;3715:118;3366:474;;;;;:::o;3846:116::-;3916:21;3931:5;3916:21;:::i;:::-;3909:5;3906:32;3896:60;;3952:1;3949;3942:12;3896:60;3846:116;:::o;3968:133::-;4011:5;4049:6;4036:20;4027:29;;4065:30;4089:5;4065:30;:::i;:::-;3968:133;;;;:::o;4107:468::-;4172:6;4180;4229:2;4217:9;4208:7;4204:23;4200:32;4197:119;;;4235:79;;:::i;:::-;4197:119;4355:1;4380:53;4425:7;4416:6;4405:9;4401:22;4380:53;:::i;:::-;4370:63;;4326:117;4482:2;4508:50;4550:7;4541:6;4530:9;4526:22;4508:50;:::i;:::-;4498:60;;4453:115;4107:468;;;;;:::o;4581:323::-;4637:6;4686:2;4674:9;4665:7;4661:23;4657:32;4654:119;;;4692:79;;:::i;:::-;4654:119;4812:1;4837:50;4879:7;4870:6;4859:9;4855:22;4837:50;:::i;:::-;4827:60;;4783:114;4581:323;;;;:::o;4910:329::-;4969:6;5018:2;5006:9;4997:7;4993:23;4989:32;4986:119;;;5024:79;;:::i;:::-;4986:119;5144:1;5169:53;5214:7;5205:6;5194:9;5190:22;5169:53;:::i;:::-;5159:63;;5115:117;4910:329;;;;:::o;5245:619::-;5322:6;5330;5338;5387:2;5375:9;5366:7;5362:23;5358:32;5355:119;;;5393:79;;:::i;:::-;5355:119;5513:1;5538:53;5583:7;5574:6;5563:9;5559:22;5538:53;:::i;:::-;5528:63;;5484:117;5640:2;5666:53;5711:7;5702:6;5691:9;5687:22;5666:53;:::i;:::-;5656:63;;5611:118;5768:2;5794:53;5839:7;5830:6;5819:9;5815:22;5794:53;:::i;:::-;5784:63;;5739:118;5245:619;;;;;:::o;5870:86::-;5905:7;5945:4;5938:5;5934:16;5923:27;;5870:86;;;:::o;5962:112::-;6045:22;6061:5;6045:22;:::i;:::-;6040:3;6033:35;5962:112;;:::o;6080:214::-;6169:4;6207:2;6196:9;6192:18;6184:26;;6220:67;6284:1;6273:9;6269:17;6260:6;6220:67;:::i;:::-;6080:214;;;;:::o;6300:474::-;6368:6;6376;6425:2;6413:9;6404:7;6400:23;6396:32;6393:119;;;6431:79;;:::i;:::-;6393:119;6551:1;6576:53;6621:7;6612:6;6601:9;6597:22;6576:53;:::i;:::-;6566:63;;6522:117;6678:2;6704:53;6749:7;6740:6;6729:9;6725:22;6704:53;:::i;:::-;6694:63;;6649:118;6300:474;;;;;:::o;6780:1057::-;6884:6;6892;6900;6908;6916;6924;6973:3;6961:9;6952:7;6948:23;6944:33;6941:120;;;6980:79;;:::i;:::-;6941:120;7100:1;7125:53;7170:7;7161:6;7150:9;7146:22;7125:53;:::i;:::-;7115:63;;7071:117;7227:2;7253:53;7298:7;7289:6;7278:9;7274:22;7253:53;:::i;:::-;7243:63;;7198:118;7355:2;7381:53;7426:7;7417:6;7406:9;7402:22;7381:53;:::i;:::-;7371:63;;7326:118;7483:2;7509:53;7554:7;7545:6;7534:9;7530:22;7509:53;:::i;:::-;7499:63;;7454:118;7611:3;7638:53;7683:7;7674:6;7663:9;7659:22;7638:53;:::i;:::-;7628:63;;7582:119;7740:3;7767:53;7812:7;7803:6;7792:9;7788:22;7767:53;:::i;:::-;7757:63;;7711:119;6780:1057;;;;;;;;:::o;7843:118::-;7930:24;7948:5;7930:24;:::i;:::-;7925:3;7918:37;7843:118;;:::o;7967:222::-;8060:4;8098:2;8087:9;8083:18;8075:26;;8111:71;8179:1;8168:9;8164:17;8155:6;8111:71;:::i;:::-;7967:222;;;;:::o;8195:60::-;8223:3;8244:5;8237:12;;8195:60;;;:::o;8261:142::-;8311:9;8344:53;8362:34;8371:24;8389:5;8371:24;:::i;:::-;8362:34;:::i;:::-;8344:53;:::i;:::-;8331:66;;8261:142;;;:::o;8409:126::-;8459:9;8492:37;8523:5;8492:37;:::i;:::-;8479:50;;8409:126;;;:::o;8541:152::-;8617:9;8650:37;8681:5;8650:37;:::i;:::-;8637:50;;8541:152;;;:::o;8699:183::-;8812:63;8869:5;8812:63;:::i;:::-;8807:3;8800:76;8699:183;;:::o;8888:274::-;9007:4;9045:2;9034:9;9030:18;9022:26;;9058:97;9152:1;9141:9;9137:17;9128:6;9058:97;:::i;:::-;8888:274;;;;:::o;9168:474::-;9236:6;9244;9293:2;9281:9;9272:7;9268:23;9264:32;9261:119;;;9299:79;;:::i;:::-;9261:119;9419:1;9444:53;9489:7;9480:6;9469:9;9465:22;9444:53;:::i;:::-;9434:63;;9390:117;9546:2;9572:53;9617:7;9608:6;9597:9;9593:22;9572:53;:::i;:::-;9562:63;;9517:118;9168:474;;;;;:::o;9648:227::-;9788:34;9784:1;9776:6;9772:14;9765:58;9857:10;9852:2;9844:6;9840:15;9833:35;9648:227;:::o;9881:366::-;10023:3;10044:67;10108:2;10103:3;10044:67;:::i;:::-;10037:74;;10120:93;10209:3;10120:93;:::i;:::-;10238:2;10233:3;10229:12;10222:19;;9881:366;;;:::o;10253:419::-;10419:4;10457:2;10446:9;10442:18;10434:26;;10506:9;10500:4;10496:20;10492:1;10481:9;10477:17;10470:47;10534:131;10660:4;10534:131;:::i;:::-;10526:139;;10253:419;;;:::o;10678:225::-;10818:34;10814:1;10806:6;10802:14;10795:58;10887:8;10882:2;10874:6;10870:15;10863:33;10678:225;:::o;10909:366::-;11051:3;11072:67;11136:2;11131:3;11072:67;:::i;:::-;11065:74;;11148:93;11237:3;11148:93;:::i;:::-;11266:2;11261:3;11257:12;11250:19;;10909:366;;;:::o;11281:419::-;11447:4;11485:2;11474:9;11470:18;11462:26;;11534:9;11528:4;11524:20;11520:1;11509:9;11505:17;11498:47;11562:131;11688:4;11562:131;:::i;:::-;11554:139;;11281:419;;;:::o;11706:224::-;11846:34;11842:1;11834:6;11830:14;11823:58;11915:7;11910:2;11902:6;11898:15;11891:32;11706:224;:::o;11936:366::-;12078:3;12099:67;12163:2;12158:3;12099:67;:::i;:::-;12092:74;;12175:93;12264:3;12175:93;:::i;:::-;12293:2;12288:3;12284:12;12277:19;;11936:366;;;:::o;12308:419::-;12474:4;12512:2;12501:9;12497:18;12489:26;;12561:9;12555:4;12551:20;12547:1;12536:9;12532:17;12525:47;12589:131;12715:4;12589:131;:::i;:::-;12581:139;;12308:419;;;:::o;12733:179::-;12873:31;12869:1;12861:6;12857:14;12850:55;12733:179;:::o;12918:366::-;13060:3;13081:67;13145:2;13140:3;13081:67;:::i;:::-;13074:74;;13157:93;13246:3;13157:93;:::i;:::-;13275:2;13270:3;13266:12;13259:19;;12918:366;;;:::o;13290:419::-;13456:4;13494:2;13483:9;13479:18;13471:26;;13543:9;13537:4;13533:20;13529:1;13518:9;13514:17;13507:47;13571:131;13697:4;13571:131;:::i;:::-;13563:139;;13290:419;;;:::o;13715:180::-;13763:77;13760:1;13753:88;13860:4;13857:1;13850:15;13884:4;13881:1;13874:15;13901:102;13943:8;13990:5;13987:1;13983:13;13962:34;;13901:102;;;:::o;14009:848::-;14070:5;14077:4;14101:6;14092:15;;14125:5;14116:14;;14139:712;14160:1;14150:8;14147:15;14139:712;;;14255:4;14250:3;14246:14;14240:4;14237:24;14234:50;;;14264:18;;:::i;:::-;14234:50;14314:1;14304:8;14300:16;14297:451;;;14729:4;14722:5;14718:16;14709:25;;14297:451;14779:4;14773;14769:15;14761:23;;14809:32;14832:8;14809:32;:::i;:::-;14797:44;;14139:712;;;14009:848;;;;;;;:::o;14863:1073::-;14917:5;15108:8;15098:40;;15129:1;15120:10;;15131:5;;15098:40;15157:4;15147:36;;15174:1;15165:10;;15176:5;;15147:36;15243:4;15291:1;15286:27;;;;15327:1;15322:191;;;;15236:277;;15286:27;15304:1;15295:10;;15306:5;;;15322:191;15367:3;15357:8;15354:17;15351:43;;;15374:18;;:::i;:::-;15351:43;15423:8;15420:1;15416:16;15407:25;;15458:3;15451:5;15448:14;15445:40;;;15465:18;;:::i;:::-;15445:40;15498:5;;;15236:277;;15622:2;15612:8;15609:16;15603:3;15597:4;15594:13;15590:36;15572:2;15562:8;15559:16;15554:2;15548:4;15545:12;15541:35;15525:111;15522:246;;;15678:8;15672:4;15668:19;15659:28;;15713:3;15706:5;15703:14;15700:40;;;15720:18;;:::i;:::-;15700:40;15753:5;;15522:246;15793:42;15831:3;15821:8;15815:4;15812:1;15793:42;:::i;:::-;15778:57;;;;15867:4;15862:3;15858:14;15851:5;15848:25;15845:51;;;15876:18;;:::i;:::-;15845:51;15925:4;15918:5;15914:16;15905:25;;14863:1073;;;;;;:::o;15942:281::-;16000:5;16024:23;16042:4;16024:23;:::i;:::-;16016:31;;16068:25;16084:8;16068:25;:::i;:::-;16056:37;;16112:104;16149:66;16139:8;16133:4;16112:104;:::i;:::-;16103:113;;15942:281;;;;:::o;16229:348::-;16269:7;16292:20;16310:1;16292:20;:::i;:::-;16287:25;;16326:20;16344:1;16326:20;:::i;:::-;16321:25;;16514:1;16446:66;16442:74;16439:1;16436:81;16431:1;16424:9;16417:17;16413:105;16410:131;;;16521:18;;:::i;:::-;16410:131;16569:1;16566;16562:9;16551:20;;16229:348;;;;:::o;16583:143::-;16640:5;16671:6;16665:13;16656:22;;16687:33;16714:5;16687:33;:::i;:::-;16583:143;;;;:::o;16732:351::-;16802:6;16851:2;16839:9;16830:7;16826:23;16822:32;16819:119;;;16857:79;;:::i;:::-;16819:119;16977:1;17002:64;17058:7;17049:6;17038:9;17034:22;17002:64;:::i;:::-;16992:74;;16948:128;16732:351;;;;:::o;17089:332::-;17210:4;17248:2;17237:9;17233:18;17225:26;;17261:71;17329:1;17318:9;17314:17;17305:6;17261:71;:::i;:::-;17342:72;17410:2;17399:9;17395:18;17386:6;17342:72;:::i;:::-;17089:332;;;;;:::o;17427:233::-;17567:34;17563:1;17555:6;17551:14;17544:58;17636:16;17631:2;17623:6;17619:15;17612:41;17427:233;:::o;17666:366::-;17808:3;17829:67;17893:2;17888:3;17829:67;:::i;:::-;17822:74;;17905:93;17994:3;17905:93;:::i;:::-;18023:2;18018:3;18014:12;18007:19;;17666:366;;;:::o;18038:419::-;18204:4;18242:2;18231:9;18227:18;18219:26;;18291:9;18285:4;18281:20;18277:1;18266:9;18262:17;18255:47;18319:131;18445:4;18319:131;:::i;:::-;18311:139;;18038:419;;;:::o;18463:178::-;18603:30;18599:1;18591:6;18587:14;18580:54;18463:178;:::o;18647:366::-;18789:3;18810:67;18874:2;18869:3;18810:67;:::i;:::-;18803:74;;18886:93;18975:3;18886:93;:::i;:::-;19004:2;18999:3;18995:12;18988:19;;18647:366;;;:::o;19019:419::-;19185:4;19223:2;19212:9;19208:18;19200:26;;19272:9;19266:4;19262:20;19258:1;19247:9;19243:17;19236:47;19300:131;19426:4;19300:131;:::i;:::-;19292:139;;19019:419;;;:::o;19444:229::-;19584:34;19580:1;19572:6;19568:14;19561:58;19653:12;19648:2;19640:6;19636:15;19629:37;19444:229;:::o;19679:366::-;19821:3;19842:67;19906:2;19901:3;19842:67;:::i;:::-;19835:74;;19918:93;20007:3;19918:93;:::i;:::-;20036:2;20031:3;20027:12;20020:19;;19679:366;;;:::o;20051:419::-;20217:4;20255:2;20244:9;20240:18;20232:26;;20304:9;20298:4;20294:20;20290:1;20279:9;20275:17;20268:47;20332:131;20458:4;20332:131;:::i;:::-;20324:139;;20051:419;;;:::o;20476:175::-;20616:27;20612:1;20604:6;20600:14;20593:51;20476:175;:::o;20657:366::-;20799:3;20820:67;20884:2;20879:3;20820:67;:::i;:::-;20813:74;;20896:93;20985:3;20896:93;:::i;:::-;21014:2;21009:3;21005:12;20998:19;;20657:366;;;:::o;21029:419::-;21195:4;21233:2;21222:9;21218:18;21210:26;;21282:9;21276:4;21272:20;21268:1;21257:9;21253:17;21246:47;21310:131;21436:4;21310:131;:::i;:::-;21302:139;;21029:419;;;:::o;21454:230::-;21594:34;21590:1;21582:6;21578:14;21571:58;21663:13;21658:2;21650:6;21646:15;21639:38;21454:230;:::o;21690:366::-;21832:3;21853:67;21917:2;21912:3;21853:67;:::i;:::-;21846:74;;21929:93;22018:3;21929:93;:::i;:::-;22047:2;22042:3;22038:12;22031:19;;21690:366;;;:::o;22062:419::-;22228:4;22266:2;22255:9;22251:18;22243:26;;22315:9;22309:4;22305:20;22301:1;22290:9;22286:17;22279:47;22343:131;22469:4;22343:131;:::i;:::-;22335:139;;22062:419;;;:::o;22487:147::-;22588:11;22625:3;22610:18;;22487:147;;;;:::o;22640:114::-;;:::o;22760:398::-;22919:3;22940:83;23021:1;23016:3;22940:83;:::i;:::-;22933:90;;23032:93;23121:3;23032:93;:::i;:::-;23150:1;23145:3;23141:11;23134:18;;22760:398;;;:::o;23164:379::-;23348:3;23370:147;23513:3;23370:147;:::i;:::-;23363:154;;23534:3;23527:10;;23164:379;;;:::o;23549:178::-;23689:30;23685:1;23677:6;23673:14;23666:54;23549:178;:::o;23733:366::-;23875:3;23896:67;23960:2;23955:3;23896:67;:::i;:::-;23889:74;;23972:93;24061:3;23972:93;:::i;:::-;24090:2;24085:3;24081:12;24074:19;;23733:366;;;:::o;24105:419::-;24271:4;24309:2;24298:9;24294:18;24286:26;;24358:9;24352:4;24348:20;24344:1;24333:9;24329:17;24322:47;24386:131;24512:4;24386:131;:::i;:::-;24378:139;;24105:419;;;:::o;24530:180::-;24578:77;24575:1;24568:88;24675:4;24672:1;24665:15;24699:4;24696:1;24689:15;24716:185;24756:1;24773:20;24791:1;24773:20;:::i;:::-;24768:25;;24807:20;24825:1;24807:20;:::i;:::-;24802:25;;24846:1;24836:35;;24851:18;;:::i;:::-;24836:35;24893:1;24890;24886:9;24881:14;;24716:185;;;;:::o;24907:305::-;24947:3;24966:20;24984:1;24966:20;:::i;:::-;24961:25;;25000:20;25018:1;25000:20;:::i;:::-;24995:25;;25154:1;25086:66;25082:74;25079:1;25076:81;25073:107;;;25160:18;;:::i;:::-;25073:107;25204:1;25201;25197:9;25190:16;;24907:305;;;;:::o;25218:85::-;25263:7;25292:5;25281:16;;25218:85;;;:::o;25309:158::-;25367:9;25400:61;25418:42;25427:32;25453:5;25427:32;:::i;:::-;25418:42;:::i;:::-;25400:61;:::i;:::-;25387:74;;25309:158;;;:::o;25473:147::-;25568:45;25607:5;25568:45;:::i;:::-;25563:3;25556:58;25473:147;;:::o;25626:134::-;25684:9;25717:37;25748:5;25717:37;:::i;:::-;25704:50;;25626:134;;;:::o;25766:147::-;25861:45;25900:5;25861:45;:::i;:::-;25856:3;25849:58;25766:147;;:::o;25919:823::-;26176:4;26214:3;26203:9;26199:19;26191:27;;26228:71;26296:1;26285:9;26281:17;26272:6;26228:71;:::i;:::-;26309:72;26377:2;26366:9;26362:18;26353:6;26309:72;:::i;:::-;26391:80;26467:2;26456:9;26452:18;26443:6;26391:80;:::i;:::-;26481;26557:2;26546:9;26542:18;26533:6;26481:80;:::i;:::-;26571:81;26647:3;26636:9;26632:19;26623:6;26571:81;:::i;:::-;26662:73;26730:3;26719:9;26715:19;26706:6;26662:73;:::i;:::-;25919:823;;;;;;;;;:::o;26748:143::-;26805:5;26836:6;26830:13;26821:22;;26852:33;26879:5;26852:33;:::i;:::-;26748:143;;;;:::o;26897:663::-;26985:6;26993;27001;27050:2;27038:9;27029:7;27025:23;27021:32;27018:119;;;27056:79;;:::i;:::-;27018:119;27176:1;27201:64;27257:7;27248:6;27237:9;27233:22;27201:64;:::i;:::-;27191:74;;27147:128;27314:2;27340:64;27396:7;27387:6;27376:9;27372:22;27340:64;:::i;:::-;27330:74;;27285:129;27453:2;27479:64;27535:7;27526:6;27515:9;27511:22;27479:64;:::i;:::-;27469:74;;27424:129;26897:663;;;;;:::o;27566:224::-;27706:34;27702:1;27694:6;27690:14;27683:58;27775:7;27770:2;27762:6;27758:15;27751:32;27566:224;:::o;27796:366::-;27938:3;27959:67;28023:2;28018:3;27959:67;:::i;:::-;27952:74;;28035:93;28124:3;28035:93;:::i;:::-;28153:2;28148:3;28144:12;28137:19;;27796:366;;;:::o;28168:419::-;28334:4;28372:2;28361:9;28357:18;28349:26;;28421:9;28415:4;28411:20;28407:1;28396:9;28392:17;28385:47;28449:131;28575:4;28449:131;:::i;:::-;28441:139;;28168:419;;;:::o;28593:222::-;28733:34;28729:1;28721:6;28717:14;28710:58;28802:5;28797:2;28789:6;28785:15;28778:30;28593:222;:::o;28821:366::-;28963:3;28984:67;29048:2;29043:3;28984:67;:::i;:::-;28977:74;;29060:93;29149:3;29060:93;:::i;:::-;29178:2;29173:3;29169:12;29162:19;;28821:366;;;:::o;29193:419::-;29359:4;29397:2;29386:9;29382:18;29374:26;;29446:9;29440:4;29436:20;29432:1;29421:9;29417:17;29410:47;29474:131;29600:4;29474:131;:::i;:::-;29466:139;;29193:419;;;:::o;29618:235::-;29758:34;29754:1;29746:6;29742:14;29735:58;29827:18;29822:2;29814:6;29810:15;29803:43;29618:235;:::o;29859:366::-;30001:3;30022:67;30086:2;30081:3;30022:67;:::i;:::-;30015:74;;30098:93;30187:3;30098:93;:::i;:::-;30216:2;30211:3;30207:12;30200:19;;29859:366;;;:::o;30231:419::-;30397:4;30435:2;30424:9;30420:18;30412:26;;30484:9;30478:4;30474:20;30470:1;30459:9;30455:17;30448:47;30512:131;30638:4;30512:131;:::i;:::-;30504:139;;30231:419;;;:::o;30656:182::-;30796:34;30792:1;30784:6;30780:14;30773:58;30656:182;:::o;30844:366::-;30986:3;31007:67;31071:2;31066:3;31007:67;:::i;:::-;31000:74;;31083:93;31172:3;31083:93;:::i;:::-;31201:2;31196:3;31192:12;31185:19;;30844:366;;;:::o;31216:419::-;31382:4;31420:2;31409:9;31405:18;31397:26;;31469:9;31463:4;31459:20;31455:1;31444:9;31440:17;31433:47;31497:131;31623:4;31497:131;:::i;:::-;31489:139;;31216:419;;;:::o;31641:179::-;31781:31;31777:1;31769:6;31765:14;31758:55;31641:179;:::o;31826:366::-;31968:3;31989:67;32053:2;32048:3;31989:67;:::i;:::-;31982:74;;32065:93;32154:3;32065:93;:::i;:::-;32183:2;32178:3;32174:12;32167:19;;31826:366;;;:::o;32198:419::-;32364:4;32402:2;32391:9;32387:18;32379:26;;32451:9;32445:4;32441:20;32437:1;32426:9;32422:17;32415:47;32479:131;32605:4;32479:131;:::i;:::-;32471:139;;32198:419;;;:::o;32623:233::-;32763:34;32759:1;32751:6;32747:14;32740:58;32832:16;32827:2;32819:6;32815:15;32808:41;32623:233;:::o;32862:366::-;33004:3;33025:67;33089:2;33084:3;33025:67;:::i;:::-;33018:74;;33101:93;33190:3;33101:93;:::i;:::-;33219:2;33214:3;33210:12;33203:19;;32862:366;;;:::o;33234:419::-;33400:4;33438:2;33427:9;33423:18;33415:26;;33487:9;33481:4;33477:20;33473:1;33462:9;33458:17;33451:47;33515:131;33641:4;33515:131;:::i;:::-;33507:139;;33234:419;;;:::o;33659:233::-;33698:3;33721:24;33739:5;33721:24;:::i;:::-;33712:33;;33767:66;33760:5;33757:77;33754:103;;33837:18;;:::i;:::-;33754:103;33884:1;33877:5;33873:13;33866:20;;33659:233;;;:::o;33898:244::-;34038:34;34034:1;34026:6;34022:14;34015:58;34107:27;34102:2;34094:6;34090:15;34083:52;33898:244;:::o;34148:366::-;34290:3;34311:67;34375:2;34370:3;34311:67;:::i;:::-;34304:74;;34387:93;34476:3;34387:93;:::i;:::-;34505:2;34500:3;34496:12;34489:19;;34148:366;;;:::o;34520:419::-;34686:4;34724:2;34713:9;34709:18;34701:26;;34773:9;34767:4;34763:20;34759:1;34748:9;34744:17;34737:47;34801:131;34927:4;34801:131;:::i;:::-;34793:139;;34520:419;;;:::o;34945:191::-;34985:4;35005:20;35023:1;35005:20;:::i;:::-;35000:25;;35039:20;35057:1;35039:20;:::i;:::-;35034:25;;35078:1;35075;35072:8;35069:34;;;35083:18;;:::i;:::-;35069:34;35128:1;35125;35121:9;35113:17;;34945:191;;;;:::o;35142:180::-;35190:77;35187:1;35180:88;35287:4;35284:1;35277:15;35311:4;35308:1;35301:15;35328:180;35376:77;35373:1;35366:88;35473:4;35470:1;35463:15;35497:4;35494:1;35487:15;35514:114;35581:6;35615:5;35609:12;35599:22;;35514:114;;;:::o;35634:184::-;35733:11;35767:6;35762:3;35755:19;35807:4;35802:3;35798:14;35783:29;;35634:184;;;;:::o;35824:132::-;35891:4;35914:3;35906:11;;35944:4;35939:3;35935:14;35927:22;;35824:132;;;:::o;35962:108::-;36039:24;36057:5;36039:24;:::i;:::-;36034:3;36027:37;35962:108;;:::o;36076:179::-;36145:10;36166:46;36208:3;36200:6;36166:46;:::i;:::-;36244:4;36239:3;36235:14;36221:28;;36076:179;;;;:::o;36261:113::-;36331:4;36363;36358:3;36354:14;36346:22;;36261:113;;;:::o;36410:732::-;36529:3;36558:54;36606:5;36558:54;:::i;:::-;36628:86;36707:6;36702:3;36628:86;:::i;:::-;36621:93;;36738:56;36788:5;36738:56;:::i;:::-;36817:7;36848:1;36833:284;36858:6;36855:1;36852:13;36833:284;;;36934:6;36928:13;36961:63;37020:3;37005:13;36961:63;:::i;:::-;36954:70;;37047:60;37100:6;37047:60;:::i;:::-;37037:70;;36893:224;36880:1;36877;36873:9;36868:14;;36833:284;;;36837:14;37133:3;37126:10;;36534:608;;;36410:732;;;;:::o;37148:831::-;37411:4;37449:3;37438:9;37434:19;37426:27;;37463:71;37531:1;37520:9;37516:17;37507:6;37463:71;:::i;:::-;37544:80;37620:2;37609:9;37605:18;37596:6;37544:80;:::i;:::-;37671:9;37665:4;37661:20;37656:2;37645:9;37641:18;37634:48;37699:108;37802:4;37793:6;37699:108;:::i;:::-;37691:116;;37817:72;37885:2;37874:9;37870:18;37861:6;37817:72;:::i;:::-;37899:73;37967:3;37956:9;37952:19;37943:6;37899:73;:::i;:::-;37148:831;;;;;;;;:::o

Swarm Source

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