ETH Price: $4,019.81 (+2.83%)

Token

(0x0ec72cd6690db40b16be166858299f19d4f8e5b0)
 

Overview

Max Total Supply

10,000,000,000 ERC-20 TOKEN*

Holders

1,067

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
supawah.eth
Balance
713,687.643237611 ERC-20 TOKEN*

Value
$0.00
0xdc54b6c74eb571dbcfcc19c4e573f91b091d0c17
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:
TehGoldenOne

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-14
*/

/*
“Following the footprints you end up places you never thought you would go. You discover the magic and beauty that was hidden in plain sight.”
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract TehGoldenOne is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e10 * 10**9;
    
    uint256 private _buyFourFee = 2;
    uint256 private _previousBuyFourFee = _buyFourFee;
    uint256 private _buyLiquidityFee = 1;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyRewardFee = 1;
    uint256 private _previousBuyRewardFee = _buyRewardFee;
    
    uint256 private _sellFourFee = 2;
    uint256 private _previousSellFourFee = _sellFourFee;
    uint256 private _sellLiquidityFee = 1;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellRewardFee = 1;
    uint256 private _previousSellRewardFee = _sellRewardFee;

    uint256 private tokensForReward;
    uint256 private tokensForFour;
    uint256 private tokensForLiquidity;

    address payable private _rewardWallet;
    address payable private _FourWallet;
    address payable private _liquidityWallet;
    
    string private constant _name = "Teh Golden One";
    string private constant _symbol = "Gold 1";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private tradingActiveBlock = 0; // 0 means trading is not active
    uint256 private blocksToBlacklist = 10;
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private swapTokensAtAmount = 0;
    
    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event MaxSellAmountUpdated(uint _maxSellAmount);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _FourWallet = payable(0xa3998ffeA36240f51496C3dAbF159F428d37d953);
        _liquidityWallet = payable(address(0xdead));
        _rewardWallet = payable(0xa3998ffeA36240f51496C3dAbF159F428d37d953);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_FourWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        _isExcludedFromFee[_rewardWallet] = true;
        emit Transfer(address(0x3188e04C9743691576175eE935Bbf07cB4dd829d), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from] && cooldownEnabled) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

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

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForReward + tokensForFour;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForReward = ethBalance.mul(tokensForReward).div(totalTokensToSwap);
        uint256 ethForFour = ethBalance.mul(tokensForFour).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForReward - ethForFour;
        
        
        tokensForLiquidity = 0;
        tokensForReward = 0;
        tokensForFour = 0;
        
        (success,) = address(_rewardWallet).call{value: ethForReward}("");
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_FourWallet).call{value: address(this).balance}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _liquidityWallet,
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FourWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e7 * 10**9;
        _maxSellAmount = 5e7 * 10**9;
        _maxWalletAmount = 1e8 * 10**9;
        swapTokensAtAmount = 5e6 * 10**9;
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e3 * 10**9, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= 5e6 * 10**9, "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setFourWallet(address FourWallet) public onlyOwner() {
        require(FourWallet != address(0), "FourWallet address cannot be 0");
        _isExcludedFromFee[_FourWallet] = false;
        _FourWallet = payable(FourWallet);
        _isExcludedFromFee[_FourWallet] = true;
    }

    function setRewardWallet(address rewardWallet) public onlyOwner() {
        require(rewardWallet != address(0), "rewardWallet address cannot be 0");
        _isExcludedFromFee[_rewardWallet] = false;
        _rewardWallet = payable(rewardWallet);
        _isExcludedFromFee[_rewardWallet] = true;
    }

    function setLiquidityWallet(address liquidityWallet) public onlyOwner() {
        require(liquidityWallet != address(0), "liquidityWallet address cannot be 0");
        _isExcludedFromFee[_liquidityWallet] = false;
        _liquidityWallet = payable(liquidityWallet);
        _isExcludedFromFee[_liquidityWallet] = true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setBuyFee(uint256 buyFourFee, uint256 buyLiquidityFee, uint256 buyRewardFee) external onlyOwner {
        require(buyFourFee + buyLiquidityFee + buyRewardFee <= 30, "Must keep buy taxes below 30%");
        _buyFourFee = buyFourFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyRewardFee = buyRewardFee;
    }

    function setSellFee(uint256 sellFourFee, uint256 sellLiquidityFee, uint256 sellRewardFee) external onlyOwner {
        require(sellFourFee + sellLiquidityFee + sellRewardFee <= 60, "Must keep sell taxes below 60%");
        _sellFourFee = sellFourFee;
        _sellLiquidityFee = sellLiquidityFee;
        _sellRewardFee = sellRewardFee;
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyFourFee == 0 && _buyLiquidityFee == 0 && _buyRewardFee == 0 && _sellFourFee == 0 && _sellLiquidityFee == 0 && _sellRewardFee == 0) return;
        
        _previousBuyFourFee = _buyFourFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyRewardFee = _buyRewardFee;
        _previousSellFourFee = _sellFourFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellRewardFee = _sellRewardFee;
        
        _buyFourFee = 0;
        _buyLiquidityFee = 0;
        _buyRewardFee = 0;
        _sellFourFee = 0;
        _sellLiquidityFee = 0;
        _sellRewardFee = 0;
    }
    
    function restoreAllFee() private {
        _buyFourFee = _previousBuyFourFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyRewardFee = _previousBuyRewardFee;
        _sellFourFee = _previousSellFourFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
        _sellRewardFee = _previousSellRewardFee;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 FourFee;
        uint256 liqFee;
        uint256 rwrdFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            liqFee = 92;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                FourFee = _sellFourFee;
                liqFee = _sellLiquidityFee;
                rwrdFee = _sellRewardFee;
            } else {
                FourFee = _buyFourFee;
                liqFee = _buyLiquidityFee;
                rwrdFee = _buyRewardFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForReward += fees * rwrdFee / _totalFees;
        tokensForFour += fees * FourFee / _totalFees;
        tokensForLiquidity += fees * liqFee / _totalFees;
            
        if(fees > 0) {
            _transferStandard(sender, address(this), fees);
        }
            
        return amount -= fees;
    }

    receive() external payable {}
    
    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() public onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        require(!tradingOpen, "Can only withdraw if trading hasn't started");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellFourFee + _sellLiquidityFee + _sellRewardFee;
        }
        return _buyFourFee + _buyLiquidityFee + _buyRewardFee;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFourFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"buyRewardFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"FourWallet","type":"address"}],"name":"setFourWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardWallet","type":"address"}],"name":"setRewardWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellFourFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"sellRewardFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","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":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260026007556007546008556001600955600954600a556001600b55600b54600c556002600d55600d54600e556001600f55600f5460105560016011556011546012556000601a60166101000a81548160ff0219169083151502179055506000601a60176101000a81548160ff0219169083151502179055506000601a60186101000a81548160ff0219169083151502179055506000601b55600a601c55678ac7230489e80000601d55678ac7230489e80000601e55678ac7230489e80000601f556000602055348015620000d757600080fd5b506000620000ea6200059560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a3998ffea36240f51496c3dabf159f428d37d953601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a3998ffea36240f51496c3dabf159f428d37d953601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550678ac7230489e8000060026000620002926200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002e66200059d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200050d6200059560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16733188e04c9743691576175ee935bbf07cb4dd829d73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620005879190620005d7565b60405180910390a3620005fe565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005d181620005f4565b82525050565b6000602082019050620005ee6000830184620005c6565b92915050565b6000819050919050565b61533c806200060e6000396000f3fe6080604052600436106101dc5760003560e01c8063715018a611610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063afa4f3b2116100d1578063afa4f3b214610529578063b406049314610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b8063715018a61461047f5780638da5cb5b1461049657806395d89b41146104c1578063a9059cbb146104ec576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780636fc3eaec1461042b57806370a0823114610442576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a919061465d565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613f71565b610730565b6040516102479190614642565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b60405161027291906148ff565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614069565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613f22565b610867565b6040516102d89190614642565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614069565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e94565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190614040565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e94565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a791906149ab565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e94565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613fee565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e94565b610fc0565b005b34801561043757600080fd5b506104406111fd565b005b34801561044e57600080fd5b5061046960048036038101906104649190613e94565b6112a3565b60405161047691906148ff565b60405180910390f35b34801561048b57600080fd5b506104946112ec565b005b3480156104a257600080fd5b506104ab61143f565b6040516104b89190614513565b60405180910390f35b3480156104cd57600080fd5b506104d6611468565b6040516104e3919061465d565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e9190613f71565b6114a5565b6040516105209190614642565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190614040565b6114c3565b005b34801561055e57600080fd5b5061057960048036038101906105749190613e94565b6115f4565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613fad565b611831565b005b3480156105b057600080fd5b506105b9611981565b005b3480156105c757600080fd5b506105d0611a2f565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613ee6565b611fbb565b60405161060691906148ff565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613fee565b612042565b005b34801561064457600080fd5b5061065f600480360381019061065a9190614040565b6120f4565b005b34801561066d57600080fd5b5061068860048036038101906106839190614040565b612193565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e94565b612232565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190614040565b612322565b005b3480156106e857600080fd5b506106f16123c1565b005b60606040518060400160405280600e81526020017f54656820476f6c64656e204f6e65000000000000000000000000000000000000815250905090565b600061074461073d612517565b848461251f565b6001905092915050565b6000678ac7230489e80000905090565b610766612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061479f565b60405180910390fd5b603c8183856108029190614a77565b61080c9190614a77565b111561084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610844906147bf565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126ea565b61093584610880612517565b610930856040518060600160405280602881526020016152df60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e6612517565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8a9092919063ffffffff16565b61251f565b600190509392505050565b610948612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061479f565b60405180910390fd5b601e8183856109e49190614a77565b6109ee9190614a77565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061477f565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a51612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad59061479f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b41612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061479f565b60405180910390fd5b80601f8190555050565b610be0612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c649061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd4906147ff565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e26612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061479f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f16612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a9061479f565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc8612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c9061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061487f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611205612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061479f565b60405180910390fd5b60004790506112a081612fee565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f4612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113789061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f476f6c6420310000000000000000000000000000000000000000000000000000815250905090565b60006114b96114b2612517565b84846126ea565b6001905092915050565b6114cb612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f9061479f565b60405180910390fd5b64e8d4a510008110156115a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611597906146df565b60405180910390fd5b6611c37937e080008111156115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e1906146ff565b60405180910390fd5b8060208190555050565b6115fc612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f0906148bf565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611839612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd9061479f565b60405180910390fd5b60005b815181101561197d57600160056000848481518110611911577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061197590614c8d565b9150506118c9565b5050565b611989612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061479f565b60405180910390fd5b6000611a21306112a3565b9050611a2c8161305a565b50565b611a37612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061479f565b60405180910390fd5b601a60149054906101000a900460ff1615611b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0b9061485f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ba330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e8000061251f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611be957600080fd5b505afa158015611bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c219190613ebd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8357600080fd5b505afa158015611c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbb9190613ebd565b6040518363ffffffff1660e01b8152600401611cd892919061452e565b602060405180830381600087803b158015611cf257600080fd5b505af1158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a9190613ebd565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611db3306112a3565b600080611dbe61143f565b426040518863ffffffff1660e01b8152600401611de0969594939291906145e1565b6060604051808303818588803b158015611df957600080fd5b505af1158015611e0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e3291906140b8565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066b1a2bc2ec50000601d8190555066b1a2bc2ec50000601e8190555067016345785d8a0000601f819055506611c37937e080006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f65929190614557565b602060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190614017565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61204a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ce9061479f565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120fc612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121809061479f565b60405180910390fd5b80601c8190555050565b61219b612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f9061479f565b60405180910390fd5b80601e8190555050565b61223a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be9061479f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61232a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae9061479f565b60405180910390fd5b80601d8190555050565b6123c9612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244d9061479f565b60405180910390fd5b601a60149054906101000a900460ff16156124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d906148df565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124cc906144fe565b60006040518083038185875af1925050503d8060008114612509576040519150601f19603f3d011682016040523d82523d6000602084013e61250e565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125869061483f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f69061469f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126dd91906148ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561275a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127519061481f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c19061467f565b60405180910390fd5b6000811161280d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612804906147df565b60405180910390fd5b60008061281861143f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612886575061285661143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128bf5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128f9575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156129125750601a60159054906101000a900460ff16155b15612d8857600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129bb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6129c457600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a735750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612ac95750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ae15750601a60189054906101000a900460ff165b15612c1f57601d54831115612b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b229061473f565b60405180910390fd5b601f5483612b38866112a3565b612b429190614a77565b1115612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a9061471f565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612bce57600080fd5b601e42612bdb9190614a77565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612cca5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612d205750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d385750601a60189054906101000a900460ff165b15612d8757601e54831115612d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d799061489f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e295750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e3357600091505b6000612e3e306112a3565b9050600060205482118015612e505750825b9050808015612e6b5750601a60179054906101000a900460ff165b8015612e845750601a60159054906101000a900460ff16155b8015612eda5750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f305750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f74576001601a60156101000a81548160ff021916908315150217905550612f58613354565b6000601a60156101000a81548160ff0219169083151502179055505b612f81878787878761363b565b50505050505050565b6000838311158290612fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc9919061465d565b60405180910390fd5b5060008385612fe19190614b58565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613056573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156130b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156130e65781602001602082028036833780820191505090505b5090503081600081518110613124577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156131c657600080fd5b505afa1580156131da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fe9190613ebd565b81600181518110613238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061329f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461251f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161330395949392919061491a565b600060405180830381600087803b15801561331d57600080fd5b505af1158015613331573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b600061335f306112a3565b905060006014546013546015546133769190614a77565b6133809190614a77565b90506000808314806133925750600082145b1561339f57505050613639565b600a6020546133ae9190614afe565b8311156133c757600a6020546133c49190614afe565b92505b6000600283601554866133da9190614afe565b6133e49190614acd565b6133ee9190614acd565b90506000613405828661367b90919063ffffffff16565b905060004790506134158261305a565b600061342a824761367b90919063ffffffff16565b9050600061345587613447601354856136c590919063ffffffff16565b61374090919063ffffffff16565b9050600061348088613472601454866136c590919063ffffffff16565b61374090919063ffffffff16565b905060008183856134919190614b58565b61349b9190614b58565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134fb906144fe565b60006040518083038185875af1925050503d8060008114613538576040519150601f19603f3d011682016040523d82523d6000602084013e61353d565b606091505b5050809850506000871180156135535750600081115b156135a057613562878261378a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260155460405161359793929190614974565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135e6906144fe565b60006040518083038185875af1925050503d8060008114613623576040519150601f19603f3d011682016040523d82523d6000602084013e613628565b606091505b505080985050505050505050505050505b565b8161364d57613648613899565b61365b565b613658858483613958565b92505b613666858585613aa2565b8161367457613673613c36565b5b5050505050565b60006136bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f8a565b905092915050565b6000808314156136d8576000905061373a565b600082846136e69190614afe565b90508284826136f59190614acd565b14613735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372c9061475f565b60405180910390fd5b809150505b92915050565b600061378283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c6e565b905092915050565b6137b730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461251f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161384096959493929190614580565b6060604051808303818588803b15801561385957600080fd5b505af115801561386d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061389291906140b8565b5050505050565b60006007541480156138ad57506000600954145b80156138bb57506000600b54145b80156138c957506000600d54145b80156138d757506000600f54145b80156138e557506000601154145b156138ef57613956565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546139719190614a77565b106139835760639350605c91506139b9565b61398c86613cd1565b935085156139a857600d549250600f54915060115490506139b8565b60075492506009549150600b5490505b5b60006139e160646139d3878b6136c590919063ffffffff16565b61374090919063ffffffff16565b90508482826139f09190614afe565b6139fa9190614acd565b60136000828254613a0b9190614a77565b92505081905550848482613a1f9190614afe565b613a299190614acd565b60146000828254613a3a9190614a77565b92505081905550848382613a4e9190614afe565b613a589190614acd565b60156000828254613a699190614a77565b925050819055506000811115613a8557613a84893083613aa2565b5b8088613a919190614b58565b975087955050505050509392505050565b613af481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461367b90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b8981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d2290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c2991906148ff565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cac919061465d565b60405180910390fd5b5060008385613cc49190614acd565b9050809150509392505050565b60008115613cfd57601154600f54600d54613cec9190614a77565b613cf69190614a77565b9050613d1d565b600b54600954600754613d109190614a77565b613d1a9190614a77565b90505b919050565b6000808284613d319190614a77565b905083811015613d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6d906146bf565b60405180910390fd5b8091505092915050565b6000613d93613d8e846149eb565b6149c6565b90508083825260208201905082856020860282011115613db257600080fd5b60005b85811015613de25781613dc88882613dec565b845260208401935060208301925050600181019050613db5565b5050509392505050565b600081359050613dfb81615299565b92915050565b600081519050613e1081615299565b92915050565b600082601f830112613e2757600080fd5b8135613e37848260208601613d80565b91505092915050565b600081359050613e4f816152b0565b92915050565b600081519050613e64816152b0565b92915050565b600081359050613e79816152c7565b92915050565b600081519050613e8e816152c7565b92915050565b600060208284031215613ea657600080fd5b6000613eb484828501613dec565b91505092915050565b600060208284031215613ecf57600080fd5b6000613edd84828501613e01565b91505092915050565b60008060408385031215613ef957600080fd5b6000613f0785828601613dec565b9250506020613f1885828601613dec565b9150509250929050565b600080600060608486031215613f3757600080fd5b6000613f4586828701613dec565b9350506020613f5686828701613dec565b9250506040613f6786828701613e6a565b9150509250925092565b60008060408385031215613f8457600080fd5b6000613f9285828601613dec565b9250506020613fa385828601613e6a565b9150509250929050565b600060208284031215613fbf57600080fd5b600082013567ffffffffffffffff811115613fd957600080fd5b613fe584828501613e16565b91505092915050565b60006020828403121561400057600080fd5b600061400e84828501613e40565b91505092915050565b60006020828403121561402957600080fd5b600061403784828501613e55565b91505092915050565b60006020828403121561405257600080fd5b600061406084828501613e6a565b91505092915050565b60008060006060848603121561407e57600080fd5b600061408c86828701613e6a565b935050602061409d86828701613e6a565b92505060406140ae86828701613e6a565b9150509250925092565b6000806000606084860312156140cd57600080fd5b60006140db86828701613e7f565b93505060206140ec86828701613e7f565b92505060406140fd86828701613e7f565b9150509250925092565b6000614113838361412e565b60208301905092915050565b61412881614be1565b82525050565b61413781614b8c565b82525050565b61414681614b8c565b82525050565b600061415782614a27565b6141618185614a4a565b935061416c83614a17565b8060005b8381101561419d5781516141848882614107565b975061418f83614a3d565b925050600181019050614170565b5085935050505092915050565b6141b381614b9e565b82525050565b6141c281614bf3565b82525050565b60006141d382614a32565b6141dd8185614a66565b93506141ed818560208601614c29565b6141f681614d63565b840191505092915050565b600061420e602383614a66565b915061421982614d74565b604082019050919050565b6000614231602283614a66565b915061423c82614dc3565b604082019050919050565b6000614254601b83614a66565b915061425f82614e12565b602082019050919050565b6000614277603583614a66565b915061428282614e3b565b604082019050919050565b600061429a603483614a66565b91506142a582614e8a565b604082019050919050565b60006142bd602483614a66565b91506142c882614ed9565b604082019050919050565b60006142e0602983614a66565b91506142eb82614f28565b604082019050919050565b6000614303602183614a66565b915061430e82614f77565b604082019050919050565b6000614326601d83614a66565b915061433182614fc6565b602082019050919050565b6000614349602083614a66565b915061435482614fef565b602082019050919050565b600061436c601e83614a66565b915061437782615018565b602082019050919050565b600061438f602983614a66565b915061439a82615041565b604082019050919050565b60006143b2602383614a66565b91506143bd82615090565b604082019050919050565b60006143d5602583614a66565b91506143e0826150df565b604082019050919050565b60006143f8600083614a5b565b91506144038261512e565b600082019050919050565b600061441b602483614a66565b915061442682615131565b604082019050919050565b600061443e601783614a66565b915061444982615180565b602082019050919050565b6000614461602083614a66565b915061446c826151a9565b602082019050919050565b6000614484602a83614a66565b915061448f826151d2565b604082019050919050565b60006144a7601e83614a66565b91506144b282615221565b602082019050919050565b60006144ca602b83614a66565b91506144d58261524a565b604082019050919050565b6144e981614bca565b82525050565b6144f881614bd4565b82525050565b6000614509826143eb565b9150819050919050565b6000602082019050614528600083018461413d565b92915050565b6000604082019050614543600083018561413d565b614550602083018461413d565b9392505050565b600060408201905061456c600083018561413d565b61457960208301846144e0565b9392505050565b600060c082019050614595600083018961413d565b6145a260208301886144e0565b6145af60408301876141b9565b6145bc60608301866141b9565b6145c9608083018561411f565b6145d660a08301846144e0565b979650505050505050565b600060c0820190506145f6600083018961413d565b61460360208301886144e0565b61461060408301876141b9565b61461d60608301866141b9565b61462a608083018561413d565b61463760a08301846144e0565b979650505050505050565b600060208201905061465760008301846141aa565b92915050565b6000602082019050818103600083015261467781846141c8565b905092915050565b6000602082019050818103600083015261469881614201565b9050919050565b600060208201905081810360008301526146b881614224565b9050919050565b600060208201905081810360008301526146d881614247565b9050919050565b600060208201905081810360008301526146f88161426a565b9050919050565b600060208201905081810360008301526147188161428d565b9050919050565b60006020820190508181036000830152614738816142b0565b9050919050565b60006020820190508181036000830152614758816142d3565b9050919050565b60006020820190508181036000830152614778816142f6565b9050919050565b6000602082019050818103600083015261479881614319565b9050919050565b600060208201905081810360008301526147b88161433c565b9050919050565b600060208201905081810360008301526147d88161435f565b9050919050565b600060208201905081810360008301526147f881614382565b9050919050565b60006020820190508181036000830152614818816143a5565b9050919050565b60006020820190508181036000830152614838816143c8565b9050919050565b600060208201905081810360008301526148588161440e565b9050919050565b6000602082019050818103600083015261487881614431565b9050919050565b6000602082019050818103600083015261489881614454565b9050919050565b600060208201905081810360008301526148b881614477565b9050919050565b600060208201905081810360008301526148d88161449a565b9050919050565b600060208201905081810360008301526148f8816144bd565b9050919050565b600060208201905061491460008301846144e0565b92915050565b600060a08201905061492f60008301886144e0565b61493c60208301876141b9565b818103604083015261494e818661414c565b905061495d606083018561413d565b61496a60808301846144e0565b9695505050505050565b600060608201905061498960008301866144e0565b61499660208301856144e0565b6149a360408301846144e0565b949350505050565b60006020820190506149c060008301846144ef565b92915050565b60006149d06149e1565b90506149dc8282614c5c565b919050565b6000604051905090565b600067ffffffffffffffff821115614a0657614a05614d34565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a8282614bca565b9150614a8d83614bca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ac257614ac1614cd6565b5b828201905092915050565b6000614ad882614bca565b9150614ae383614bca565b925082614af357614af2614d05565b5b828204905092915050565b6000614b0982614bca565b9150614b1483614bca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b4d57614b4c614cd6565b5b828202905092915050565b6000614b6382614bca565b9150614b6e83614bca565b925082821015614b8157614b80614cd6565b5b828203905092915050565b6000614b9782614baa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614bec82614c05565b9050919050565b6000614bfe82614bca565b9050919050565b6000614c1082614c17565b9050919050565b6000614c2282614baa565b9050919050565b60005b83811015614c47578082015181840152602081019050614c2c565b83811115614c56576000848401525b50505050565b614c6582614d63565b810181811067ffffffffffffffff82111715614c8457614c83614d34565b5b80604052505050565b6000614c9882614bca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ccb57614cca614cd6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f466f757257616c6c657420616464726573732063616e6e6f7420626520300000600082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152a281614b8c565b81146152ad57600080fd5b50565b6152b981614b9e565b81146152c457600080fd5b50565b6152d081614bca565b81146152db57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdeb50fd5962544e08b94540c151b48586c7f233455e4793564664889ce3461d64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a611610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063afa4f3b2116100d1578063afa4f3b214610529578063b406049314610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b8063715018a61461047f5780638da5cb5b1461049657806395d89b41146104c1578063a9059cbb146104ec576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780636fc3eaec1461042b57806370a0823114610442576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a919061465d565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613f71565b610730565b6040516102479190614642565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b60405161027291906148ff565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614069565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613f22565b610867565b6040516102d89190614642565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614069565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e94565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190614040565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e94565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a791906149ab565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e94565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613fee565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e94565b610fc0565b005b34801561043757600080fd5b506104406111fd565b005b34801561044e57600080fd5b5061046960048036038101906104649190613e94565b6112a3565b60405161047691906148ff565b60405180910390f35b34801561048b57600080fd5b506104946112ec565b005b3480156104a257600080fd5b506104ab61143f565b6040516104b89190614513565b60405180910390f35b3480156104cd57600080fd5b506104d6611468565b6040516104e3919061465d565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e9190613f71565b6114a5565b6040516105209190614642565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190614040565b6114c3565b005b34801561055e57600080fd5b5061057960048036038101906105749190613e94565b6115f4565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613fad565b611831565b005b3480156105b057600080fd5b506105b9611981565b005b3480156105c757600080fd5b506105d0611a2f565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613ee6565b611fbb565b60405161060691906148ff565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613fee565b612042565b005b34801561064457600080fd5b5061065f600480360381019061065a9190614040565b6120f4565b005b34801561066d57600080fd5b5061068860048036038101906106839190614040565b612193565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e94565b612232565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190614040565b612322565b005b3480156106e857600080fd5b506106f16123c1565b005b60606040518060400160405280600e81526020017f54656820476f6c64656e204f6e65000000000000000000000000000000000000815250905090565b600061074461073d612517565b848461251f565b6001905092915050565b6000678ac7230489e80000905090565b610766612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea9061479f565b60405180910390fd5b603c8183856108029190614a77565b61080c9190614a77565b111561084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610844906147bf565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126ea565b61093584610880612517565b610930856040518060600160405280602881526020016152df60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e6612517565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8a9092919063ffffffff16565b61251f565b600190509392505050565b610948612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061479f565b60405180910390fd5b601e8183856109e49190614a77565b6109ee9190614a77565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a269061477f565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a51612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad59061479f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b41612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061479f565b60405180910390fd5b80601f8190555050565b610be0612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c649061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd4906147ff565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e26612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061479f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f16612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a9061479f565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc8612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c9061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061487f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611205612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112899061479f565b60405180910390fd5b60004790506112a081612fee565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f4612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611381576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113789061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f476f6c6420310000000000000000000000000000000000000000000000000000815250905090565b60006114b96114b2612517565b84846126ea565b6001905092915050565b6114cb612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f9061479f565b60405180910390fd5b64e8d4a510008110156115a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611597906146df565b60405180910390fd5b6611c37937e080008111156115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e1906146ff565b60405180910390fd5b8060208190555050565b6115fc612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f0906148bf565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611839612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd9061479f565b60405180910390fd5b60005b815181101561197d57600160056000848481518110611911577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061197590614c8d565b9150506118c9565b5050565b611989612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061479f565b60405180910390fd5b6000611a21306112a3565b9050611a2c8161305a565b50565b611a37612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061479f565b60405180910390fd5b601a60149054906101000a900460ff1615611b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0b9061485f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ba330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e8000061251f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611be957600080fd5b505afa158015611bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c219190613ebd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8357600080fd5b505afa158015611c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbb9190613ebd565b6040518363ffffffff1660e01b8152600401611cd892919061452e565b602060405180830381600087803b158015611cf257600080fd5b505af1158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a9190613ebd565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611db3306112a3565b600080611dbe61143f565b426040518863ffffffff1660e01b8152600401611de0969594939291906145e1565b6060604051808303818588803b158015611df957600080fd5b505af1158015611e0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e3291906140b8565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066b1a2bc2ec50000601d8190555066b1a2bc2ec50000601e8190555067016345785d8a0000601f819055506611c37937e080006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f65929190614557565b602060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190614017565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61204a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ce9061479f565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120fc612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121809061479f565b60405180910390fd5b80601c8190555050565b61219b612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f9061479f565b60405180910390fd5b80601e8190555050565b61223a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be9061479f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61232a612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae9061479f565b60405180910390fd5b80601d8190555050565b6123c9612517565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244d9061479f565b60405180910390fd5b601a60149054906101000a900460ff16156124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d906148df565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124cc906144fe565b60006040518083038185875af1925050503d8060008114612509576040519150601f19603f3d011682016040523d82523d6000602084013e61250e565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561258f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125869061483f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f69061469f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126dd91906148ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561275a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127519061481f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c19061467f565b60405180910390fd5b6000811161280d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612804906147df565b60405180910390fd5b60008061281861143f565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612886575061285661143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128bf5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128f9575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156129125750601a60159054906101000a900460ff16155b15612d8857600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129bb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6129c457600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a735750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612ac95750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ae15750601a60189054906101000a900460ff165b15612c1f57601d54831115612b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b229061473f565b60405180910390fd5b601f5483612b38866112a3565b612b429190614a77565b1115612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a9061471f565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612bce57600080fd5b601e42612bdb9190614a77565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612cca5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612d205750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d385750601a60189054906101000a900460ff165b15612d8757601e54831115612d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d799061489f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e295750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e3357600091505b6000612e3e306112a3565b9050600060205482118015612e505750825b9050808015612e6b5750601a60179054906101000a900460ff165b8015612e845750601a60159054906101000a900460ff16155b8015612eda5750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f305750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f74576001601a60156101000a81548160ff021916908315150217905550612f58613354565b6000601a60156101000a81548160ff0219169083151502179055505b612f81878787878761363b565b50505050505050565b6000838311158290612fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc9919061465d565b60405180910390fd5b5060008385612fe19190614b58565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613056573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156130b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156130e65781602001602082028036833780820191505090505b5090503081600081518110613124577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156131c657600080fd5b505afa1580156131da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fe9190613ebd565b81600181518110613238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061329f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461251f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161330395949392919061491a565b600060405180830381600087803b15801561331d57600080fd5b505af1158015613331573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b600061335f306112a3565b905060006014546013546015546133769190614a77565b6133809190614a77565b90506000808314806133925750600082145b1561339f57505050613639565b600a6020546133ae9190614afe565b8311156133c757600a6020546133c49190614afe565b92505b6000600283601554866133da9190614afe565b6133e49190614acd565b6133ee9190614acd565b90506000613405828661367b90919063ffffffff16565b905060004790506134158261305a565b600061342a824761367b90919063ffffffff16565b9050600061345587613447601354856136c590919063ffffffff16565b61374090919063ffffffff16565b9050600061348088613472601454866136c590919063ffffffff16565b61374090919063ffffffff16565b905060008183856134919190614b58565b61349b9190614b58565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134fb906144fe565b60006040518083038185875af1925050503d8060008114613538576040519150601f19603f3d011682016040523d82523d6000602084013e61353d565b606091505b5050809850506000871180156135535750600081115b156135a057613562878261378a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260155460405161359793929190614974565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516135e6906144fe565b60006040518083038185875af1925050503d8060008114613623576040519150601f19603f3d011682016040523d82523d6000602084013e613628565b606091505b505080985050505050505050505050505b565b8161364d57613648613899565b61365b565b613658858483613958565b92505b613666858585613aa2565b8161367457613673613c36565b5b5050505050565b60006136bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f8a565b905092915050565b6000808314156136d8576000905061373a565b600082846136e69190614afe565b90508284826136f59190614acd565b14613735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161372c9061475f565b60405180910390fd5b809150505b92915050565b600061378283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c6e565b905092915050565b6137b730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461251f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161384096959493929190614580565b6060604051808303818588803b15801561385957600080fd5b505af115801561386d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061389291906140b8565b5050505050565b60006007541480156138ad57506000600954145b80156138bb57506000600b54145b80156138c957506000600d54145b80156138d757506000600f54145b80156138e557506000601154145b156138ef57613956565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546139719190614a77565b106139835760639350605c91506139b9565b61398c86613cd1565b935085156139a857600d549250600f54915060115490506139b8565b60075492506009549150600b5490505b5b60006139e160646139d3878b6136c590919063ffffffff16565b61374090919063ffffffff16565b90508482826139f09190614afe565b6139fa9190614acd565b60136000828254613a0b9190614a77565b92505081905550848482613a1f9190614afe565b613a299190614acd565b60146000828254613a3a9190614a77565b92505081905550848382613a4e9190614afe565b613a589190614acd565b60156000828254613a699190614a77565b925050819055506000811115613a8557613a84893083613aa2565b5b8088613a919190614b58565b975087955050505050509392505050565b613af481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461367b90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b8981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d2290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c2991906148ff565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cac919061465d565b60405180910390fd5b5060008385613cc49190614acd565b9050809150509392505050565b60008115613cfd57601154600f54600d54613cec9190614a77565b613cf69190614a77565b9050613d1d565b600b54600954600754613d109190614a77565b613d1a9190614a77565b90505b919050565b6000808284613d319190614a77565b905083811015613d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6d906146bf565b60405180910390fd5b8091505092915050565b6000613d93613d8e846149eb565b6149c6565b90508083825260208201905082856020860282011115613db257600080fd5b60005b85811015613de25781613dc88882613dec565b845260208401935060208301925050600181019050613db5565b5050509392505050565b600081359050613dfb81615299565b92915050565b600081519050613e1081615299565b92915050565b600082601f830112613e2757600080fd5b8135613e37848260208601613d80565b91505092915050565b600081359050613e4f816152b0565b92915050565b600081519050613e64816152b0565b92915050565b600081359050613e79816152c7565b92915050565b600081519050613e8e816152c7565b92915050565b600060208284031215613ea657600080fd5b6000613eb484828501613dec565b91505092915050565b600060208284031215613ecf57600080fd5b6000613edd84828501613e01565b91505092915050565b60008060408385031215613ef957600080fd5b6000613f0785828601613dec565b9250506020613f1885828601613dec565b9150509250929050565b600080600060608486031215613f3757600080fd5b6000613f4586828701613dec565b9350506020613f5686828701613dec565b9250506040613f6786828701613e6a565b9150509250925092565b60008060408385031215613f8457600080fd5b6000613f9285828601613dec565b9250506020613fa385828601613e6a565b9150509250929050565b600060208284031215613fbf57600080fd5b600082013567ffffffffffffffff811115613fd957600080fd5b613fe584828501613e16565b91505092915050565b60006020828403121561400057600080fd5b600061400e84828501613e40565b91505092915050565b60006020828403121561402957600080fd5b600061403784828501613e55565b91505092915050565b60006020828403121561405257600080fd5b600061406084828501613e6a565b91505092915050565b60008060006060848603121561407e57600080fd5b600061408c86828701613e6a565b935050602061409d86828701613e6a565b92505060406140ae86828701613e6a565b9150509250925092565b6000806000606084860312156140cd57600080fd5b60006140db86828701613e7f565b93505060206140ec86828701613e7f565b92505060406140fd86828701613e7f565b9150509250925092565b6000614113838361412e565b60208301905092915050565b61412881614be1565b82525050565b61413781614b8c565b82525050565b61414681614b8c565b82525050565b600061415782614a27565b6141618185614a4a565b935061416c83614a17565b8060005b8381101561419d5781516141848882614107565b975061418f83614a3d565b925050600181019050614170565b5085935050505092915050565b6141b381614b9e565b82525050565b6141c281614bf3565b82525050565b60006141d382614a32565b6141dd8185614a66565b93506141ed818560208601614c29565b6141f681614d63565b840191505092915050565b600061420e602383614a66565b915061421982614d74565b604082019050919050565b6000614231602283614a66565b915061423c82614dc3565b604082019050919050565b6000614254601b83614a66565b915061425f82614e12565b602082019050919050565b6000614277603583614a66565b915061428282614e3b565b604082019050919050565b600061429a603483614a66565b91506142a582614e8a565b604082019050919050565b60006142bd602483614a66565b91506142c882614ed9565b604082019050919050565b60006142e0602983614a66565b91506142eb82614f28565b604082019050919050565b6000614303602183614a66565b915061430e82614f77565b604082019050919050565b6000614326601d83614a66565b915061433182614fc6565b602082019050919050565b6000614349602083614a66565b915061435482614fef565b602082019050919050565b600061436c601e83614a66565b915061437782615018565b602082019050919050565b600061438f602983614a66565b915061439a82615041565b604082019050919050565b60006143b2602383614a66565b91506143bd82615090565b604082019050919050565b60006143d5602583614a66565b91506143e0826150df565b604082019050919050565b60006143f8600083614a5b565b91506144038261512e565b600082019050919050565b600061441b602483614a66565b915061442682615131565b604082019050919050565b600061443e601783614a66565b915061444982615180565b602082019050919050565b6000614461602083614a66565b915061446c826151a9565b602082019050919050565b6000614484602a83614a66565b915061448f826151d2565b604082019050919050565b60006144a7601e83614a66565b91506144b282615221565b602082019050919050565b60006144ca602b83614a66565b91506144d58261524a565b604082019050919050565b6144e981614bca565b82525050565b6144f881614bd4565b82525050565b6000614509826143eb565b9150819050919050565b6000602082019050614528600083018461413d565b92915050565b6000604082019050614543600083018561413d565b614550602083018461413d565b9392505050565b600060408201905061456c600083018561413d565b61457960208301846144e0565b9392505050565b600060c082019050614595600083018961413d565b6145a260208301886144e0565b6145af60408301876141b9565b6145bc60608301866141b9565b6145c9608083018561411f565b6145d660a08301846144e0565b979650505050505050565b600060c0820190506145f6600083018961413d565b61460360208301886144e0565b61461060408301876141b9565b61461d60608301866141b9565b61462a608083018561413d565b61463760a08301846144e0565b979650505050505050565b600060208201905061465760008301846141aa565b92915050565b6000602082019050818103600083015261467781846141c8565b905092915050565b6000602082019050818103600083015261469881614201565b9050919050565b600060208201905081810360008301526146b881614224565b9050919050565b600060208201905081810360008301526146d881614247565b9050919050565b600060208201905081810360008301526146f88161426a565b9050919050565b600060208201905081810360008301526147188161428d565b9050919050565b60006020820190508181036000830152614738816142b0565b9050919050565b60006020820190508181036000830152614758816142d3565b9050919050565b60006020820190508181036000830152614778816142f6565b9050919050565b6000602082019050818103600083015261479881614319565b9050919050565b600060208201905081810360008301526147b88161433c565b9050919050565b600060208201905081810360008301526147d88161435f565b9050919050565b600060208201905081810360008301526147f881614382565b9050919050565b60006020820190508181036000830152614818816143a5565b9050919050565b60006020820190508181036000830152614838816143c8565b9050919050565b600060208201905081810360008301526148588161440e565b9050919050565b6000602082019050818103600083015261487881614431565b9050919050565b6000602082019050818103600083015261489881614454565b9050919050565b600060208201905081810360008301526148b881614477565b9050919050565b600060208201905081810360008301526148d88161449a565b9050919050565b600060208201905081810360008301526148f8816144bd565b9050919050565b600060208201905061491460008301846144e0565b92915050565b600060a08201905061492f60008301886144e0565b61493c60208301876141b9565b818103604083015261494e818661414c565b905061495d606083018561413d565b61496a60808301846144e0565b9695505050505050565b600060608201905061498960008301866144e0565b61499660208301856144e0565b6149a360408301846144e0565b949350505050565b60006020820190506149c060008301846144ef565b92915050565b60006149d06149e1565b90506149dc8282614c5c565b919050565b6000604051905090565b600067ffffffffffffffff821115614a0657614a05614d34565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a8282614bca565b9150614a8d83614bca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ac257614ac1614cd6565b5b828201905092915050565b6000614ad882614bca565b9150614ae383614bca565b925082614af357614af2614d05565b5b828204905092915050565b6000614b0982614bca565b9150614b1483614bca565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b4d57614b4c614cd6565b5b828202905092915050565b6000614b6382614bca565b9150614b6e83614bca565b925082821015614b8157614b80614cd6565b5b828203905092915050565b6000614b9782614baa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614bec82614c05565b9050919050565b6000614bfe82614bca565b9050919050565b6000614c1082614c17565b9050919050565b6000614c2282614baa565b9050919050565b60005b83811015614c47578082015181840152602081019050614c2c565b83811115614c56576000848401525b50505050565b614c6582614d63565b810181811067ffffffffffffffff82111715614c8457614c83614d34565b5b80604052505050565b6000614c9882614bca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ccb57614cca614cd6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f466f757257616c6c657420616464726573732063616e6e6f7420626520300000600082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152a281614b8c565b81146152ad57600080fd5b50565b6152b981614b9e565b81146152c457600080fd5b50565b6152d081614bca565b81146152db57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fdeb50fd5962544e08b94540c151b48586c7f233455e4793564664889ce3461d64736f6c63430008040033

Deployed Bytecode Sourcemap

3675:17087:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6680:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7511:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6957:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16484:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7680:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16142:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18005:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14502:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15562:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6866:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15901:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8001:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15247:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20108:153;;;;;;;;;;;;;:::i;:::-;;7060:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2754:148;;;;;;;;;;;;;:::i;:::-;;2540:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6771:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7185:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14623:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14948:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14108:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19942:154;;;;;;;;;;;;;:::i;:::-;;13120:976;;;;;;;;;;;;;:::i;:::-;;7360:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8112:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16840:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14387:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16024:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14280:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20269:239;;;;;;;;;;;;;:::i;:::-;;6680:83;6717:13;6750:5;;;;;;;;;;;;;;;;;6743:12;;6680:83;:::o;7511:161::-;7586:4;7603:39;7612:12;:10;:12::i;:::-;7626:7;7635:6;7603:8;:39::i;:::-;7660:4;7653:11;;7511:161;;;;:::o;6957:95::-;7010:7;4080:12;7030:14;;6957:95;:::o;16484:348::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16662:2:::1;16645:13;16626:16;16612:11;:30;;;;:::i;:::-;:46;;;;:::i;:::-;:52;;16604:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;16725:11;16710:12;:26;;;;16767:16;16747:17;:36;;;;16811:13;16794:14;:30;;;;16484:348:::0;;;:::o;7680:313::-;7778:4;7795:36;7805:6;7813:9;7824:6;7795:9;:36::i;:::-;7842:121;7851:6;7859:12;:10;:12::i;:::-;7873:89;7911:6;7873:89;;;;;;;;;;;;;;;;;:11;:19;7885:6;7873:19;;;;;;;;;;;;;;;:33;7893:12;:10;:12::i;:::-;7873:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7842:8;:121::i;:::-;7981:4;7974:11;;7680:313;;;;;:::o;16142:334::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16313:2:::1;16297:12;16279:15;16266:10;:28;;;;:::i;:::-;:43;;;;:::i;:::-;:49;;16258:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;16374:10;16360:11;:24;;;;16414:15;16395:16;:34;;;;16456:12;16440:13;:28;;;;16142:334:::0;;;:::o;18005:88::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18080:5:::1;18065:4;:12;18070:6;18065:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18005:88:::0;:::o;14502:109::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14595:8:::1;14576:16;:27;;;;14502:109:::0;:::o;15562:331::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15680:1:::1;15653:29;;:15;:29;;;;15645:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;15772:5;15733:18;:36;15752:16;;;;;;;;;;;15733:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;15815:15;15788:16;;:43;;;;;;;;;;;;;;;;;;15881:4;15842:18;:36;15861:16;;;;;;;;;;;15842:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;15562:331:::0;:::o;6866:83::-;6907:5;5123:1;6925:16;;6866:83;:::o;15901:111::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16000:4:::1;15970:18;:27;15989:7;15970:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;15901:111:::0;:::o;8001:103::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8091:5:::1;8073:15;;:23;;;;;;;;;;;;;;;;;;8001:103:::0;:::o;15247:307::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15356:1:::1;15332:26;;:12;:26;;;;15324:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15442:5;15406:18;:33;15425:13;;;;;;;;;;;15406:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;15482:12;15458:13;;:37;;;;;;;;;;;;;;;;;;15542:4;15506:18;:33;15525:13;;;;;;;;;;;15506:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;15247:307:::0;:::o;20108:153::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20160:26:::1;20189:21;20160:50;;20221:32;20234:18;20221:12;:32::i;:::-;2737:1;20108:153::o:0;7060:117::-;7126:7;7153;:16;7161:7;7153:16;;;;;;;;;;;;;;;;7146:23;;7060:117;;;:::o;2754:148::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2861:1:::1;2824:40;;2845:6;::::0;::::1;;;;;;;;2824:40;;;;;;;;;;;;2892:1;2875:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2754:148::o:0;2540:79::-;2578:7;2605:6;;;;;;;;;;;2598:13;;2540:79;:::o;6771:87::-;6810:13;6843:7;;;;;;;;;;;;;;;;;6836:14;;6771:87;:::o;7185:167::-;7263:4;7280:42;7290:12;:10;:12::i;:::-;7304:9;7315:6;7280:9;:42::i;:::-;7340:4;7333:11;;7185:167;;;;:::o;14623:317::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14722:11:::1;14709:9;:24;;14701:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14823:11;14810:9;:24;;14802:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;14923:9;14902:18;:30;;;;14623:317:::0;:::o;14948:291::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15051:1:::1;15029:24;;:10;:24;;;;15021:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15133:5;15099:18;:31;15118:11;;;;;;;;;;;15099:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15171:10;15149:11;;:33;;;;;;;;;;;;;;;;;;15227:4;15193:18;:31;15212:11;;;;;;;;;;;15193:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14948:291:::0;:::o;14108:164::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14182:6:::1;14177:88;14198:5;:12;14194:1;:16;14177:88;;;14249:4;14232;:14;14237:5;14243:1;14237:8;;;;;;;;;;;;;;;;;;;;;;14232:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14212:3;;;;;:::i;:::-;;;;14177:88;;;;14108:164:::0;:::o;19942:154::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19994:23:::1;20020:24;20038:4;20020:9;:24::i;:::-;19994:50;;20055:33;20072:15;20055:16;:33::i;:::-;2737:1;19942:154::o:0;13120:976::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13184:11:::1;;;;;;;;;;;13183:12;13175:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13233:35;13290:42;13233:100;;13362:16;13344:15;;:34;;;;;;;;;;;;;;;;;;13389:58;13406:4;13421:15;;;;;;;;;;;4080:12;13389:8;:58::i;:::-;13492:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13474:56;;;13539:4;13546:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13474:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13458:13;;:112;;;;;;;;;;;;;;;;;;13581:15;;;;;;;;;;;:31;;;13620:21;13651:4;13657:24;13675:4;13657:9;:24::i;:::-;13682:1;13684::::0;13686:7:::1;:5;:7::i;:::-;13694:15;13581:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13735:4;13721:11;;:18;;;;;;;;;;;;;;;;;;13768:4;13750:15;;:22;;;;;;;;;;;;;;;;;;13799:11;13783:13;:27;;;;13838:11;13821:14;:28;;;;13879:11;13860:16;:30;;;;13922:11;13901:18;:32;;;;13958:4;13944:11;;:18;;;;;;;;;;;;;;;;;;13994:12;13973:18;:33;;;;14024:13;;;;;;;;;;;14017:29;;;14055:15;;;;;;;;;;;14073:14;14017:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2737:1;13120:976::o:0;7360:143::-;7441:7;7468:11;:18;7480:5;7468:18;;;;;;;;;;;;;;;:27;7487:7;7468:27;;;;;;;;;;;;;;;;7461:34;;7360:143;;;;:::o;8112:94::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8193:5:::1;8179:11;;:19;;;;;;;;;;;;;;;;;;8112:94:::0;:::o;16840:108::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16934:6:::1;16914:17;:26;;;;16840:108:::0;:::o;14387:103::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14475:7:::1;14458:14;:24;;;;14387:103:::0;:::o;16024:110::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16121:5:::1;16091:18;:27;16110:7;16091:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16024:110:::0;:::o;14280:99::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14365:6:::1;14349:13;:22;;;;14280:99:::0;:::o;20269:239::-;2677:12;:10;:12::i;:::-;2667:22;;:6;;;;;;;;;;:22;;;2659:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20336:11:::1;;;;;;;;;;;20335:12;20327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20406:12;20450:10;20442:24;;20474:21;20442:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20429:71;;;;;2737:1;20269:239::o:0;258:98::-;311:7;338:10;331:17;;258:98;:::o;8214:335::-;8324:1;8307:19;;:5;:19;;;;8299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8405:1;8386:21;;:7;:21;;;;8378:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8487:6;8457:11;:18;8469:5;8457:18;;;;;;;;;;;;;;;:27;8476:7;8457:27;;;;;;;;;;;;;;;:36;;;;8525:7;8509:32;;8518:5;8509:32;;;8534:6;8509:32;;;;;;:::i;:::-;;;;;;;;8214:335;;;:::o;8557:1850::-;8661:1;8645:18;;:4;:18;;;;8637:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:1;8724:16;;:2;:16;;;;8716:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:1;8799:6;:10;8791:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8866:12;8897:15;8943:7;:5;:7::i;:::-;8935:15;;:4;:15;;;;:32;;;;;8960:7;:5;:7::i;:::-;8954:13;;:2;:13;;;;8935:32;:52;;;;;8985:1;8971:16;;:2;:16;;;;8935:52;:77;;;;;9005:6;8991:21;;:2;:21;;;;8935:77;:90;;;;;9017:8;;;;;;;;;;;9016:9;8935:90;8931:939;;;9051:4;:10;9056:4;9051:10;;;;;;;;;;;;;;;;;;;;;;;;;9050:11;:24;;;;;9066:4;:8;9071:2;9066:8;;;;;;;;;;;;;;;;;;;;;;;;;9065:9;9050:24;9042:33;;;;;;9102:4;9092:14;;9133:13;;;;;;;;;;;9125:21;;:4;:21;;;:55;;;;;9164:15;;;;;;;;;;;9150:30;;:2;:30;;;;9125:55;:82;;;;;9185:18;:22;9204:2;9185:22;;;;;;;;;;;;;;;;;;;;;;;;;9184:23;9125:82;:101;;;;;9211:15;;;;;;;;;;;9125:101;9121:451;;;9265:13;;9255:6;:23;;9247:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9377:16;;9367:6;9351:13;9361:2;9351:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;9343:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9476:15;9461:8;:12;9470:2;9461:12;;;;;;;;;;;;;;;;:30;9453:39;;;;;;9545:10;9526:15;:30;;;;:::i;:::-;9511:8;:12;9520:2;9511:12;;;;;;;;;;;;;;;:45;;;;9121:451;9610:13;;;;;;;;;;;9604:19;;:2;:19;;;:55;;;;;9643:15;;;;;;;;;;;9627:32;;:4;:32;;;;9604:55;:84;;;;;9664:18;:24;9683:4;9664:24;;;;;;;;;;;;;;;;;;;;;;;;;9663:25;9604:84;:103;;;;;9692:15;;;;;;;;;;;9604:103;9600:259;;;9746:14;;9736:6;:24;;9728:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:4;9826:17;;9600:259;8931:939;9885:18;:24;9904:4;9885:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9913:18;:22;9932:2;9913:22;;;;;;;;;;;;;;;;;;;;;;;;;9885:50;9882:97;;;9962:5;9952:15;;9882:97;9991:28;10022:24;10040:4;10022:9;:24::i;:::-;9991:55;;10057:12;10096:18;;10073:20;:41;10072:57;;;;;10119:10;10072:57;10057:72;;10146:7;:22;;;;;10157:11;;;;;;;;;;;10146:22;:35;;;;;10173:8;;;;;;;;;;;10172:9;10146:35;:64;;;;;10186:18;:24;10205:4;10186:24;;;;;;;;;;;;;;;;;;;;;;;;;10185:25;10146:64;:91;;;;;10215:18;:22;10234:2;10215:22;;;;;;;;;;;;;;;;;;;;;;;;;10214:23;10146:91;10142:195;;;10265:4;10254:8;;:15;;;;;;;;;;;;;;;;;;10284:10;:8;:10::i;:::-;10320:5;10309:8;;:16;;;;;;;;;;;;;;;;;;10142:195;10349:50;10364:4;10369:2;10372:6;10379:7;10388:10;10349:14;:50::i;:::-;8557:1850;;;;;;;:::o;1395:190::-;1481:7;1514:1;1509;:6;;1517:12;1501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1541:9;1557:1;1553;:5;;;;:::i;:::-;1541:17;;1576:1;1569:8;;;1395:190;;;;;:::o;13015:93::-;13072:11;;;;;;;;;;;:20;;:28;13093:6;13072:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13015:93;:::o;12085:483::-;5994:4;5985:6;;:13;;;;;;;;;;;;;;;;;;12163:21:::1;12201:1;12187:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12163:40;;12232:4;12214;12219:1;12214:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12258:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12248:4;12253:1;12248:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12291:62;12308:4;12323:15;;;;;;;;;;;12341:11;12291:8;:62::i;:::-;12364:15;;;;;;;;;;;:66;;;12445:11;12471:1;12487:4;12514;12534:15;12364:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6009:1;6030:5:::0;6021:6;;:14;;;;;;;;;;;;;;;;;;12085:483;:::o;10415:1662::-;10454:23;10480:24;10498:4;10480:9;:24::i;:::-;10454:50;;10515:25;10582:13;;10564:15;;10543:18;;:36;;;;:::i;:::-;:52;;;;:::i;:::-;10515:80;;10606:12;10661:1;10642:15;:20;:46;;;;10687:1;10666:17;:22;10642:46;10639:60;;;10691:7;;;;;10639:60;10753:2;10732:18;;:23;;;;:::i;:::-;10714:15;:41;10711:114;;;10811:2;10790:18;;:23;;;;:::i;:::-;10772:41;;10711:114;10894:23;10979:1;10959:17;10938:18;;10920:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;10894:86;;10991:26;11020:36;11040:15;11020;:19;;:36;;;;:::i;:::-;10991:65;;11077:25;11105:21;11077:49;;11139:36;11156:18;11139:16;:36::i;:::-;11197:18;11218:44;11244:17;11218:21;:25;;:44;;;;:::i;:::-;11197:65;;11283:20;11306:54;11342:17;11306:31;11321:15;;11306:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;11283:77;;11371:18;11392:52;11426:17;11392:29;11407:13;;11392:10;:14;;:29;;;;:::i;:::-;:33;;:52;;;;:::i;:::-;11371:73;;11475:23;11529:10;11514:12;11501:10;:25;;;;:::i;:::-;:38;;;;:::i;:::-;11475:64;;11591:1;11570:18;:22;;;;11621:1;11603:15;:19;;;;11649:1;11633:13;:17;;;;11692:13;;;;;;;;;;;11684:27;;11719:12;11684:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11671:65;;;;;11778:1;11760:15;:19;:42;;;;;11801:1;11783:15;:19;11760:42;11757:210;;;11818:46;11831:15;11848;11818:12;:46::i;:::-;11884:71;11899:18;11919:15;11936:18;;11884:71;;;;;;;;:::i;:::-;;;;;;;;11757:210;12018:11;;;;;;;;;;;12010:25;;12043:21;12010:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11997:72;;;;;10415:1662;;;;;;;;;;;:::o;18109:389::-;18234:7;18230:129;;18258:14;:12;:14::i;:::-;18230:129;;;18314:33;18324:6;18332;18340;18314:9;:33::i;:::-;18305:42;;18230:129;18371:44;18389:6;18397:9;18408:6;18371:17;:44::i;:::-;18440:7;18436:55;;18464:15;:13;:15::i;:::-;18436:55;18109:389;;;;;:::o;1251:136::-;1309:7;1336:43;1340:1;1343;1336:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1329:50;;1251:136;;;;:::o;1593:246::-;1651:7;1680:1;1675;:6;1671:47;;;1705:1;1698:8;;;;1671:47;1728:9;1744:1;1740;:5;;;;:::i;:::-;1728:17;;1773:1;1768;1764;:5;;;;:::i;:::-;:10;1756:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1830:1;1823:8;;;1593:246;;;;;:::o;1847:132::-;1905:7;1932:39;1936:1;1939;1932:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1925:46;;1847:132;;;;:::o;12576:423::-;12657:62;12674:4;12689:15;;;;;;;;;;;12707:11;12657:8;:62::i;:::-;12730:15;;;;;;;;;;;:31;;;12769:9;12802:4;12822:11;12848:1;12891;12934:16;;;;;;;;;;;12965:15;12730:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12576:423;;:::o;16956:686::-;17017:1;17002:11;;:16;:41;;;;;17042:1;17022:16;;:21;17002:41;:63;;;;;17064:1;17047:13;;:18;17002:63;:84;;;;;17085:1;17069:12;;:17;17002:84;:110;;;;;17111:1;17090:17;;:22;17002:110;:133;;;;;17134:1;17116:14;;:19;17002:133;16999:145;;;17137:7;;16999:145;17186:11;;17164:19;:33;;;;17235:16;;17208:24;:43;;;;17286:13;;17262:21;:37;;;;17333:12;;17310:20;:35;;;;17384:17;;17356:25;:45;;;;17437:14;;17412:22;:39;;;;17486:1;17472:11;:15;;;;17517:1;17498:16;:20;;;;17545:1;17529:13;:17;;;;17572:1;17557:12;:16;;;;17604:1;17584:17;:21;;;;17633:1;17616:14;:18;;;;16956:686;:::o;18781:1112::-;18862:7;18882:18;18911:15;18937:14;18962:15;19033:12;19012:17;;18991:18;;:38;;;;:::i;:::-;:54;18988:512;;19074:2;19061:15;;19100:2;19091:11;;18988:512;;;19148:21;19162:6;19148:13;:21::i;:::-;19135:34;;19188:6;19184:305;;;19225:12;;19215:22;;19265:17;;19256:26;;19311:14;;19301:24;;19184:305;;;19376:11;;19366:21;;19415:16;;19406:25;;19460:13;;19450:23;;19184:305;18988:512;19512:12;19527:31;19554:3;19527:22;19538:10;19527:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;19512:46;;19605:10;19595:7;19588:4;:14;;;;:::i;:::-;:27;;;;:::i;:::-;19569:15;;:46;;;;;;;:::i;:::-;;;;;;;;19660:10;19650:7;19643:4;:14;;;;:::i;:::-;:27;;;;:::i;:::-;19626:13;;:44;;;;;;;:::i;:::-;;;;;;;;19719:10;19710:6;19703:4;:13;;;;:::i;:::-;:26;;;;:::i;:::-;19681:18;;:48;;;;;;;:::i;:::-;;;;;;;;19764:1;19757:4;:8;19754:86;;;19782:46;19800:6;19816:4;19823;19782:17;:46::i;:::-;19754:86;19881:4;19871:14;;;;;:::i;:::-;;;;19864:21;;;;;;;18781:1112;;;;;:::o;18506:267::-;18622:28;18642:7;18622;:15;18630:6;18622:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18604:7;:15;18612:6;18604:15;;;;;;;;;;;;;;;:46;;;;18682:31;18705:7;18682;:18;18690:9;18682:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;18661:7;:18;18669:9;18661:18;;;;;;;;;;;;;;;:52;;;;18746:9;18729:36;;18738:6;18729:36;;;18757:7;18729:36;;;;;;:::i;:::-;;;;;;;;18506:267;;;:::o;17654:339::-;17712:19;;17698:11;:33;;;;17761:24;;17742:16;:43;;;;17812:21;;17796:13;:37;;;;17859:20;;17844:12;:35;;;;17910:25;;17890:17;:45;;;;17963:22;;17946:14;:39;;;;17654:339::o;1987:189::-;2073:7;2105:1;2101;:5;2108:12;2093:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2132:9;2148:1;2144;:5;;;;:::i;:::-;2132:17;;2167:1;2160:8;;;1987:189;;;;;:::o;20516:243::-;20573:7;20597:6;20593:95;;;20662:14;;20642:17;;20627:12;;:32;;;;:::i;:::-;:49;;;;:::i;:::-;20620:56;;;;20593:95;20738:13;;20719:16;;20705:11;;:30;;;;:::i;:::-;:46;;;;:::i;:::-;20698:53;;20516:243;;;;:::o;1064:179::-;1122:7;1142:9;1158:1;1154;:5;;;;:::i;:::-;1142:17;;1183:1;1178;:6;;1170:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1234:1;1227:8;;;1064:179;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:262::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:2;;;4904:1;4901;4894:12;4856:2;4947:1;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4918:117;4846:196;;;;:::o;5048:552::-;5125:6;5133;5141;5190:2;5178:9;5169:7;5165:23;5161:32;5158:2;;;5206:1;5203;5196:12;5158:2;5249:1;5274:53;5319:7;5310:6;5299:9;5295:22;5274:53;:::i;:::-;5264:63;;5220:117;5376:2;5402:53;5447:7;5438:6;5427:9;5423:22;5402:53;:::i;:::-;5392:63;;5347:118;5504:2;5530:53;5575:7;5566:6;5555:9;5551:22;5530:53;:::i;:::-;5520:63;;5475:118;5148:452;;;;;:::o;5606:596::-;5694:6;5702;5710;5759:2;5747:9;5738:7;5734:23;5730:32;5727:2;;;5775:1;5772;5765:12;5727:2;5818:1;5843:64;5899:7;5890:6;5879:9;5875:22;5843:64;:::i;:::-;5833:74;;5789:128;5956:2;5982:64;6038:7;6029:6;6018:9;6014:22;5982:64;:::i;:::-;5972:74;;5927:129;6095:2;6121:64;6177:7;6168:6;6157:9;6153:22;6121:64;:::i;:::-;6111:74;;6066:129;5717:485;;;;;:::o;6208:179::-;6277:10;6298:46;6340:3;6332:6;6298:46;:::i;:::-;6376:4;6371:3;6367:14;6353:28;;6288:99;;;;:::o;6393:147::-;6488:45;6527:5;6488:45;:::i;:::-;6483:3;6476:58;6466:74;;:::o;6546:108::-;6623:24;6641:5;6623:24;:::i;:::-;6618:3;6611:37;6601:53;;:::o;6660:118::-;6747:24;6765:5;6747:24;:::i;:::-;6742:3;6735:37;6725:53;;:::o;6814:732::-;6933:3;6962:54;7010:5;6962:54;:::i;:::-;7032:86;7111:6;7106:3;7032:86;:::i;:::-;7025:93;;7142:56;7192:5;7142:56;:::i;:::-;7221:7;7252:1;7237:284;7262:6;7259:1;7256:13;7237:284;;;7338:6;7332:13;7365:63;7424:3;7409:13;7365:63;:::i;:::-;7358:70;;7451:60;7504:6;7451:60;:::i;:::-;7441:70;;7297:224;7284:1;7281;7277:9;7272:14;;7237:284;;;7241:14;7537:3;7530:10;;6938:608;;;;;;;:::o;7552:109::-;7633:21;7648:5;7633:21;:::i;:::-;7628:3;7621:34;7611:50;;:::o;7667:147::-;7762:45;7801:5;7762:45;:::i;:::-;7757:3;7750:58;7740:74;;:::o;7820:364::-;7908:3;7936:39;7969:5;7936:39;:::i;:::-;7991:71;8055:6;8050:3;7991:71;:::i;:::-;7984:78;;8071:52;8116:6;8111:3;8104:4;8097:5;8093:16;8071:52;:::i;:::-;8148:29;8170:6;8148:29;:::i;:::-;8143:3;8139:39;8132:46;;7912:272;;;;;:::o;8190:366::-;8332:3;8353:67;8417:2;8412:3;8353:67;:::i;:::-;8346:74;;8429:93;8518:3;8429:93;:::i;:::-;8547:2;8542:3;8538:12;8531:19;;8336:220;;;:::o;8562:366::-;8704:3;8725:67;8789:2;8784:3;8725:67;:::i;:::-;8718:74;;8801:93;8890:3;8801:93;:::i;:::-;8919:2;8914:3;8910:12;8903:19;;8708:220;;;:::o;8934:366::-;9076:3;9097:67;9161:2;9156:3;9097:67;:::i;:::-;9090:74;;9173:93;9262:3;9173:93;:::i;:::-;9291:2;9286:3;9282:12;9275:19;;9080:220;;;:::o;9306:366::-;9448:3;9469:67;9533:2;9528:3;9469:67;:::i;:::-;9462:74;;9545:93;9634:3;9545:93;:::i;:::-;9663:2;9658:3;9654:12;9647:19;;9452:220;;;:::o;9678:366::-;9820:3;9841:67;9905:2;9900:3;9841:67;:::i;:::-;9834:74;;9917:93;10006:3;9917:93;:::i;:::-;10035:2;10030:3;10026:12;10019:19;;9824:220;;;:::o;10050:366::-;10192:3;10213:67;10277:2;10272:3;10213:67;:::i;:::-;10206:74;;10289:93;10378:3;10289:93;:::i;:::-;10407:2;10402:3;10398:12;10391:19;;10196:220;;;:::o;10422:366::-;10564:3;10585:67;10649:2;10644:3;10585:67;:::i;:::-;10578:74;;10661:93;10750:3;10661:93;:::i;:::-;10779:2;10774:3;10770:12;10763:19;;10568:220;;;:::o;10794:366::-;10936:3;10957:67;11021:2;11016:3;10957:67;:::i;:::-;10950:74;;11033:93;11122:3;11033:93;:::i;:::-;11151:2;11146:3;11142:12;11135:19;;10940:220;;;:::o;11166:366::-;11308:3;11329:67;11393:2;11388:3;11329:67;:::i;:::-;11322:74;;11405:93;11494:3;11405:93;:::i;:::-;11523:2;11518:3;11514:12;11507:19;;11312:220;;;:::o;11538:366::-;11680:3;11701:67;11765:2;11760:3;11701:67;:::i;:::-;11694:74;;11777:93;11866:3;11777:93;:::i;:::-;11895:2;11890:3;11886:12;11879:19;;11684:220;;;:::o;11910:366::-;12052:3;12073:67;12137:2;12132:3;12073:67;:::i;:::-;12066:74;;12149:93;12238:3;12149:93;:::i;:::-;12267:2;12262:3;12258:12;12251:19;;12056:220;;;:::o;12282:366::-;12424:3;12445:67;12509:2;12504:3;12445:67;:::i;:::-;12438:74;;12521:93;12610:3;12521:93;:::i;:::-;12639:2;12634:3;12630:12;12623:19;;12428:220;;;:::o;12654:366::-;12796:3;12817:67;12881:2;12876:3;12817:67;:::i;:::-;12810:74;;12893:93;12982:3;12893:93;:::i;:::-;13011:2;13006:3;13002:12;12995:19;;12800:220;;;:::o;13026:366::-;13168:3;13189:67;13253:2;13248:3;13189:67;:::i;:::-;13182:74;;13265:93;13354:3;13265:93;:::i;:::-;13383:2;13378:3;13374:12;13367:19;;13172:220;;;:::o;13398:398::-;13557:3;13578:83;13659:1;13654:3;13578:83;:::i;:::-;13571:90;;13670:93;13759:3;13670:93;:::i;:::-;13788:1;13783:3;13779:11;13772:18;;13561:235;;;:::o;13802:366::-;13944:3;13965:67;14029:2;14024:3;13965:67;:::i;:::-;13958:74;;14041:93;14130:3;14041:93;:::i;:::-;14159:2;14154:3;14150:12;14143:19;;13948:220;;;:::o;14174:366::-;14316:3;14337:67;14401:2;14396:3;14337:67;:::i;:::-;14330:74;;14413:93;14502:3;14413:93;:::i;:::-;14531:2;14526:3;14522:12;14515:19;;14320:220;;;:::o;14546:366::-;14688:3;14709:67;14773:2;14768:3;14709:67;:::i;:::-;14702:74;;14785:93;14874:3;14785:93;:::i;:::-;14903:2;14898:3;14894:12;14887:19;;14692:220;;;:::o;14918:366::-;15060:3;15081:67;15145:2;15140:3;15081:67;:::i;:::-;15074:74;;15157:93;15246:3;15157:93;:::i;:::-;15275:2;15270:3;15266:12;15259:19;;15064:220;;;:::o;15290:366::-;15432:3;15453:67;15517:2;15512:3;15453:67;:::i;:::-;15446:74;;15529:93;15618:3;15529:93;:::i;:::-;15647:2;15642:3;15638:12;15631:19;;15436:220;;;:::o;15662:366::-;15804:3;15825:67;15889:2;15884:3;15825:67;:::i;:::-;15818:74;;15901:93;15990:3;15901:93;:::i;:::-;16019:2;16014:3;16010:12;16003:19;;15808:220;;;:::o;16034:118::-;16121:24;16139:5;16121:24;:::i;:::-;16116:3;16109:37;16099:53;;:::o;16158:112::-;16241:22;16257:5;16241:22;:::i;:::-;16236:3;16229:35;16219:51;;:::o;16276:379::-;16460:3;16482:147;16625:3;16482:147;:::i;:::-;16475:154;;16646:3;16639:10;;16464:191;;;:::o;16661:222::-;16754:4;16792:2;16781:9;16777:18;16769:26;;16805:71;16873:1;16862:9;16858:17;16849:6;16805:71;:::i;:::-;16759:124;;;;:::o;16889:332::-;17010:4;17048:2;17037:9;17033:18;17025:26;;17061:71;17129:1;17118:9;17114:17;17105:6;17061:71;:::i;:::-;17142:72;17210:2;17199:9;17195:18;17186:6;17142:72;:::i;:::-;17015:206;;;;;:::o;17227:332::-;17348:4;17386:2;17375:9;17371:18;17363:26;;17399:71;17467:1;17456:9;17452:17;17443:6;17399:71;:::i;:::-;17480:72;17548:2;17537:9;17533:18;17524:6;17480:72;:::i;:::-;17353:206;;;;;:::o;17565:823::-;17822:4;17860:3;17849:9;17845:19;17837:27;;17874:71;17942:1;17931:9;17927:17;17918:6;17874:71;:::i;:::-;17955:72;18023:2;18012:9;18008:18;17999:6;17955:72;:::i;:::-;18037:80;18113:2;18102:9;18098:18;18089:6;18037:80;:::i;:::-;18127;18203:2;18192:9;18188:18;18179:6;18127:80;:::i;:::-;18217:81;18293:3;18282:9;18278:19;18269:6;18217:81;:::i;:::-;18308:73;18376:3;18365:9;18361:19;18352:6;18308:73;:::i;:::-;17827:561;;;;;;;;;:::o;18394:807::-;18643:4;18681:3;18670:9;18666:19;18658:27;;18695:71;18763:1;18752:9;18748:17;18739:6;18695:71;:::i;:::-;18776:72;18844:2;18833:9;18829:18;18820:6;18776:72;:::i;:::-;18858:80;18934:2;18923:9;18919:18;18910:6;18858:80;:::i;:::-;18948;19024:2;19013:9;19009:18;19000:6;18948:80;:::i;:::-;19038:73;19106:3;19095:9;19091:19;19082:6;19038:73;:::i;:::-;19121;19189:3;19178:9;19174:19;19165:6;19121:73;:::i;:::-;18648:553;;;;;;;;;:::o;19207:210::-;19294:4;19332:2;19321:9;19317:18;19309:26;;19345:65;19407:1;19396:9;19392:17;19383:6;19345:65;:::i;:::-;19299:118;;;;:::o;19423:313::-;19536:4;19574:2;19563:9;19559:18;19551:26;;19623:9;19617:4;19613:20;19609:1;19598:9;19594:17;19587:47;19651:78;19724:4;19715:6;19651:78;:::i;:::-;19643:86;;19541:195;;;;:::o;19742:419::-;19908:4;19946:2;19935:9;19931:18;19923:26;;19995:9;19989:4;19985:20;19981:1;19970:9;19966:17;19959:47;20023:131;20149:4;20023:131;:::i;:::-;20015:139;;19913:248;;;:::o;20167:419::-;20333:4;20371:2;20360:9;20356:18;20348:26;;20420:9;20414:4;20410:20;20406:1;20395:9;20391:17;20384:47;20448:131;20574:4;20448:131;:::i;:::-;20440:139;;20338:248;;;:::o;20592:419::-;20758:4;20796:2;20785:9;20781:18;20773:26;;20845:9;20839:4;20835:20;20831:1;20820:9;20816:17;20809:47;20873:131;20999:4;20873:131;:::i;:::-;20865:139;;20763:248;;;:::o;21017:419::-;21183:4;21221:2;21210:9;21206:18;21198:26;;21270:9;21264:4;21260:20;21256:1;21245:9;21241:17;21234:47;21298:131;21424:4;21298:131;:::i;:::-;21290:139;;21188:248;;;:::o;21442:419::-;21608:4;21646:2;21635:9;21631:18;21623:26;;21695:9;21689:4;21685:20;21681:1;21670:9;21666:17;21659:47;21723:131;21849:4;21723:131;:::i;:::-;21715:139;;21613:248;;;:::o;21867:419::-;22033:4;22071:2;22060:9;22056:18;22048:26;;22120:9;22114:4;22110:20;22106:1;22095:9;22091:17;22084:47;22148:131;22274:4;22148:131;:::i;:::-;22140:139;;22038:248;;;:::o;22292:419::-;22458:4;22496:2;22485:9;22481:18;22473:26;;22545:9;22539:4;22535:20;22531:1;22520:9;22516:17;22509:47;22573:131;22699:4;22573:131;:::i;:::-;22565:139;;22463:248;;;:::o;22717:419::-;22883:4;22921:2;22910:9;22906:18;22898:26;;22970:9;22964:4;22960:20;22956:1;22945:9;22941:17;22934:47;22998:131;23124:4;22998:131;:::i;:::-;22990:139;;22888:248;;;:::o;23142:419::-;23308:4;23346:2;23335:9;23331:18;23323:26;;23395:9;23389:4;23385:20;23381:1;23370:9;23366:17;23359:47;23423:131;23549:4;23423:131;:::i;:::-;23415:139;;23313:248;;;:::o;23567:419::-;23733:4;23771:2;23760:9;23756:18;23748:26;;23820:9;23814:4;23810:20;23806:1;23795:9;23791:17;23784:47;23848:131;23974:4;23848:131;:::i;:::-;23840:139;;23738:248;;;:::o;23992:419::-;24158:4;24196:2;24185:9;24181:18;24173:26;;24245:9;24239:4;24235:20;24231:1;24220:9;24216:17;24209:47;24273:131;24399:4;24273:131;:::i;:::-;24265:139;;24163:248;;;:::o;24417:419::-;24583:4;24621:2;24610:9;24606:18;24598:26;;24670:9;24664:4;24660:20;24656:1;24645:9;24641:17;24634:47;24698:131;24824:4;24698:131;:::i;:::-;24690:139;;24588:248;;;:::o;24842:419::-;25008:4;25046:2;25035:9;25031:18;25023:26;;25095:9;25089:4;25085:20;25081:1;25070:9;25066:17;25059:47;25123:131;25249:4;25123:131;:::i;:::-;25115:139;;25013:248;;;:::o;25267:419::-;25433:4;25471:2;25460:9;25456:18;25448:26;;25520:9;25514:4;25510:20;25506:1;25495:9;25491:17;25484:47;25548:131;25674:4;25548:131;:::i;:::-;25540:139;;25438:248;;;:::o;25692:419::-;25858:4;25896:2;25885:9;25881:18;25873:26;;25945:9;25939:4;25935:20;25931:1;25920:9;25916:17;25909:47;25973:131;26099:4;25973:131;:::i;:::-;25965:139;;25863:248;;;:::o;26117:419::-;26283:4;26321:2;26310:9;26306:18;26298:26;;26370:9;26364:4;26360:20;26356:1;26345:9;26341:17;26334:47;26398:131;26524:4;26398:131;:::i;:::-;26390:139;;26288:248;;;:::o;26542:419::-;26708:4;26746:2;26735:9;26731:18;26723:26;;26795:9;26789:4;26785:20;26781:1;26770:9;26766:17;26759:47;26823:131;26949:4;26823:131;:::i;:::-;26815:139;;26713:248;;;:::o;26967:419::-;27133:4;27171:2;27160:9;27156:18;27148:26;;27220:9;27214:4;27210:20;27206:1;27195:9;27191:17;27184:47;27248:131;27374:4;27248:131;:::i;:::-;27240:139;;27138:248;;;:::o;27392:419::-;27558:4;27596:2;27585:9;27581:18;27573:26;;27645:9;27639:4;27635:20;27631:1;27620:9;27616:17;27609:47;27673:131;27799:4;27673:131;:::i;:::-;27665:139;;27563:248;;;:::o;27817:419::-;27983:4;28021:2;28010:9;28006:18;27998:26;;28070:9;28064:4;28060:20;28056:1;28045:9;28041:17;28034:47;28098:131;28224:4;28098:131;:::i;:::-;28090:139;;27988:248;;;:::o;28242:222::-;28335:4;28373:2;28362:9;28358:18;28350:26;;28386:71;28454:1;28443:9;28439:17;28430:6;28386:71;:::i;:::-;28340:124;;;;:::o;28470:831::-;28733:4;28771:3;28760:9;28756:19;28748:27;;28785:71;28853:1;28842:9;28838:17;28829:6;28785:71;:::i;:::-;28866:80;28942:2;28931:9;28927:18;28918:6;28866:80;:::i;:::-;28993:9;28987:4;28983:20;28978:2;28967:9;28963:18;28956:48;29021:108;29124:4;29115:6;29021:108;:::i;:::-;29013:116;;29139:72;29207:2;29196:9;29192:18;29183:6;29139:72;:::i;:::-;29221:73;29289:3;29278:9;29274:19;29265:6;29221:73;:::i;:::-;28738:563;;;;;;;;:::o;29307:442::-;29456:4;29494:2;29483:9;29479:18;29471:26;;29507:71;29575:1;29564:9;29560:17;29551:6;29507:71;:::i;:::-;29588:72;29656:2;29645:9;29641:18;29632:6;29588:72;:::i;:::-;29670;29738:2;29727:9;29723:18;29714:6;29670:72;:::i;:::-;29461:288;;;;;;:::o;29755:214::-;29844:4;29882:2;29871:9;29867:18;29859:26;;29895:67;29959:1;29948:9;29944:17;29935:6;29895:67;:::i;:::-;29849:120;;;;:::o;29975:129::-;30009:6;30036:20;;:::i;:::-;30026:30;;30065:33;30093:4;30085:6;30065:33;:::i;:::-;30016:88;;;:::o;30110:75::-;30143:6;30176:2;30170:9;30160:19;;30150:35;:::o;30191:311::-;30268:4;30358:18;30350:6;30347:30;30344:2;;;30380:18;;:::i;:::-;30344:2;30430:4;30422:6;30418:17;30410:25;;30490:4;30484;30480:15;30472:23;;30273:229;;;:::o;30508:132::-;30575:4;30598:3;30590:11;;30628:4;30623:3;30619:14;30611:22;;30580:60;;;:::o;30646:114::-;30713:6;30747:5;30741:12;30731:22;;30720:40;;;:::o;30766:99::-;30818:6;30852:5;30846:12;30836:22;;30825:40;;;:::o;30871:113::-;30941:4;30973;30968:3;30964:14;30956:22;;30946:38;;;:::o;30990:184::-;31089:11;31123:6;31118:3;31111:19;31163:4;31158:3;31154:14;31139:29;;31101:73;;;;:::o;31180:147::-;31281:11;31318:3;31303:18;;31293:34;;;;:::o;31333:169::-;31417:11;31451:6;31446:3;31439:19;31491:4;31486:3;31482:14;31467:29;;31429:73;;;;:::o;31508:305::-;31548:3;31567:20;31585:1;31567:20;:::i;:::-;31562:25;;31601:20;31619:1;31601:20;:::i;:::-;31596:25;;31755:1;31687:66;31683:74;31680:1;31677:81;31674:2;;;31761:18;;:::i;:::-;31674:2;31805:1;31802;31798:9;31791:16;;31552:261;;;;:::o;31819:185::-;31859:1;31876:20;31894:1;31876:20;:::i;:::-;31871:25;;31910:20;31928:1;31910:20;:::i;:::-;31905:25;;31949:1;31939:2;;31954:18;;:::i;:::-;31939:2;31996:1;31993;31989:9;31984:14;;31861:143;;;;:::o;32010:348::-;32050:7;32073:20;32091:1;32073:20;:::i;:::-;32068:25;;32107:20;32125:1;32107:20;:::i;:::-;32102:25;;32295:1;32227:66;32223:74;32220:1;32217:81;32212:1;32205:9;32198:17;32194:105;32191:2;;;32302:18;;:::i;:::-;32191:2;32350:1;32347;32343:9;32332:20;;32058:300;;;;:::o;32364:191::-;32404:4;32424:20;32442:1;32424:20;:::i;:::-;32419:25;;32458:20;32476:1;32458:20;:::i;:::-;32453:25;;32497:1;32494;32491:8;32488:2;;;32502:18;;:::i;:::-;32488:2;32547:1;32544;32540:9;32532:17;;32409:146;;;;:::o;32561:96::-;32598:7;32627:24;32645:5;32627:24;:::i;:::-;32616:35;;32606:51;;;:::o;32663:90::-;32697:7;32740:5;32733:13;32726:21;32715:32;;32705:48;;;:::o;32759:126::-;32796:7;32836:42;32829:5;32825:54;32814:65;;32804:81;;;:::o;32891:77::-;32928:7;32957:5;32946:16;;32936:32;;;:::o;32974:86::-;33009:7;33049:4;33042:5;33038:16;33027:27;;33017:43;;;:::o;33066:134::-;33124:9;33157:37;33188:5;33157:37;:::i;:::-;33144:50;;33134:66;;;:::o;33206:121::-;33264:9;33297:24;33315:5;33297:24;:::i;:::-;33284:37;;33274:53;;;:::o;33333:126::-;33383:9;33416:37;33447:5;33416:37;:::i;:::-;33403:50;;33393:66;;;:::o;33465:113::-;33515:9;33548:24;33566:5;33548:24;:::i;:::-;33535:37;;33525:53;;;:::o;33584:307::-;33652:1;33662:113;33676:6;33673:1;33670:13;33662:113;;;33761:1;33756:3;33752:11;33746:18;33742:1;33737:3;33733:11;33726:39;33698:2;33695:1;33691:10;33686:15;;33662:113;;;33793:6;33790:1;33787:13;33784:2;;;33873:1;33864:6;33859:3;33855:16;33848:27;33784:2;33633:258;;;;:::o;33897:281::-;33980:27;34002:4;33980:27;:::i;:::-;33972:6;33968:40;34110:6;34098:10;34095:22;34074:18;34062:10;34059:34;34056:62;34053:2;;;34121:18;;:::i;:::-;34053:2;34161:10;34157:2;34150:22;33940:238;;;:::o;34184:233::-;34223:3;34246:24;34264:5;34246:24;:::i;:::-;34237:33;;34292:66;34285:5;34282:77;34279:2;;;34362:18;;:::i;:::-;34279:2;34409:1;34402:5;34398:13;34391:20;;34227:190;;;:::o;34423:180::-;34471:77;34468:1;34461:88;34568:4;34565:1;34558:15;34592:4;34589:1;34582:15;34609:180;34657:77;34654:1;34647:88;34754:4;34751:1;34744:15;34778:4;34775:1;34768:15;34795:180;34843:77;34840:1;34833:88;34940:4;34937:1;34930:15;34964:4;34961:1;34954:15;34981:102;35022:6;35073:2;35069:7;35064:2;35057:5;35053:14;35049:28;35039:38;;35029:54;;;:::o;35089:222::-;35229:34;35225:1;35217:6;35213:14;35206:58;35298:5;35293:2;35285:6;35281:15;35274:30;35195:116;:::o;35317:221::-;35457:34;35453:1;35445:6;35441:14;35434:58;35526:4;35521:2;35513:6;35509:15;35502:29;35423:115;:::o;35544:177::-;35684:29;35680:1;35672:6;35668:14;35661:53;35650:71;:::o;35727:240::-;35867:34;35863:1;35855:6;35851:14;35844:58;35936:23;35931:2;35923:6;35919:15;35912:48;35833:134;:::o;35973:239::-;36113:34;36109:1;36101:6;36097:14;36090:58;36182:22;36177:2;36169:6;36165:15;36158:47;36079:133;:::o;36218:223::-;36358:34;36354:1;36346:6;36342:14;36335:58;36427:6;36422:2;36414:6;36410:15;36403:31;36324:117;:::o;36447:228::-;36587:34;36583:1;36575:6;36571:14;36564:58;36656:11;36651:2;36643:6;36639:15;36632:36;36553:122;:::o;36681:220::-;36821:34;36817:1;36809:6;36805:14;36798:58;36890:3;36885:2;36877:6;36873:15;36866:28;36787:114;:::o;36907:179::-;37047:31;37043:1;37035:6;37031:14;37024:55;37013:73;:::o;37092:182::-;37232:34;37228:1;37220:6;37216:14;37209:58;37198:76;:::o;37280:180::-;37420:32;37416:1;37408:6;37404:14;37397:56;37386:74;:::o;37466:228::-;37606:34;37602:1;37594:6;37590:14;37583:58;37675:11;37670:2;37662:6;37658:15;37651:36;37572:122;:::o;37700:222::-;37840:34;37836:1;37828:6;37824:14;37817:58;37909:5;37904:2;37896:6;37892:15;37885:30;37806:116;:::o;37928:224::-;38068:34;38064:1;38056:6;38052:14;38045:58;38137:7;38132:2;38124:6;38120:15;38113:32;38034:118;:::o;38158:114::-;38264:8;:::o;38278:223::-;38418:34;38414:1;38406:6;38402:14;38395:58;38487:6;38482:2;38474:6;38470:15;38463:31;38384:117;:::o;38507:173::-;38647:25;38643:1;38635:6;38631:14;38624:49;38613:67;:::o;38686:182::-;38826:34;38822:1;38814:6;38810:14;38803:58;38792:76;:::o;38874:229::-;39014:34;39010:1;39002:6;38998:14;38991:58;39083:12;39078:2;39070:6;39066:15;39059:37;38980:123;:::o;39109:180::-;39249:32;39245:1;39237:6;39233:14;39226:56;39215:74;:::o;39295:230::-;39435:34;39431:1;39423:6;39419:14;39412:58;39504:13;39499:2;39491:6;39487:15;39480:38;39401:124;:::o;39531:122::-;39604:24;39622:5;39604:24;:::i;:::-;39597:5;39594:35;39584:2;;39643:1;39640;39633:12;39584:2;39574:79;:::o;39659:116::-;39729:21;39744:5;39729:21;:::i;:::-;39722:5;39719:32;39709:2;;39765:1;39762;39755:12;39709:2;39699:76;:::o;39781:122::-;39854:24;39872:5;39854:24;:::i;:::-;39847:5;39844:35;39834:2;;39893:1;39890;39883:12;39834:2;39824:79;:::o

Swarm Source

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