ETH Price: $2,606.16 (-2.38%)
Gas: 2 Gwei

Token

Benzema ETH (KBNUEVE)
 

Overview

Max Total Supply

100,000,000 KBNUEVE

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,939,998.06 KBNUEVE

Value
$0.00
0x106E5d982a26b566Fc7036F1ddd81d7fc34E7AbE
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:
BenzemaETH

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**

/*

Benzema ETH

Token Name: Benzema ETH ($KBNUEVE)
Chain: Ethereum

Buy Tax: 3.0%
Sell Tax: 3.0%

Telegram: @benzemaeth
Twitter: @benzemaeth

*/
// 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 BenzemaETH 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 = 100000000 * 10**9;
    
    uint256 private _buyMarketingFee = 2;
    uint256 private _previousBuyMarketingFee = _buyMarketingFee;
    uint256 private _buyLiquidityFee = 1;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyRewardFee = 0;
    uint256 private _previousBuyRewardFee = _buyRewardFee;
    
    uint256 private _sellMarketingFee = 2;
    uint256 private _previousSellMarketingFee = _sellMarketingFee;
    uint256 private _sellLiquidityFee = 1;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellRewardFee = 0;
    uint256 private _previousSellRewardFee = _sellRewardFee;

    uint256 private tokensForReward;
    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;

    address payable private _rewardWallet;
    address payable private _MarketingWallet;
    address payable private _liquidityWallet;
    
    string private constant _name = "Benzema ETH";
    string private constant _symbol = "KBNUEVE";
    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 = 0;
    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 () {
        _MarketingWallet = payable(0x4CC6b44bA6b90BA545A1308812084d6F13478616);
        _liquidityWallet = payable(0x4CC6b44bA6b90BA545A1308812084d6F13478616);
        _rewardWallet = payable(0x4CC6b44bA6b90BA545A1308812084d6F13478616);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_MarketingWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        _isExcludedFromFee[_rewardWallet] = true;
        emit Transfer(address(0x4CC6b44bA6b90BA545A1308812084d6F13478616), _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 + tokensForMarketing;
        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 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForReward - ethForMarketing;
        
        
        tokensForLiquidity = 0;
        tokensForReward = 0;
        tokensForMarketing = 0;
        
        (success,) = address(_rewardWallet).call{value: ethForReward}("");
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_MarketingWallet).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 {
        _MarketingWallet.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 = 1000000 * 10**9;
        _maxSellAmount = 1000000 * 10**9;
        _maxWalletAmount = 2000000 * 10**9;
        swapTokensAtAmount = 500000 * 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 >= 50000 * 10**9, "Swap amount cannot be lower than 0.1% total supply.");
        require(newAmount <= 1000001 * 10**9, "Swap amount cannot be higher than 1.0% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setMarketingWallet(address MarketingWallet) public onlyOwner() {
        require(MarketingWallet != address(0), "MarketingWallet address cannot be 0");
        _isExcludedFromFee[_MarketingWallet] = false;
        _MarketingWallet = payable(MarketingWallet);
        _isExcludedFromFee[_MarketingWallet] = 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 buyMarketingFee, uint256 buyLiquidityFee, uint256 buyRewardFee) external onlyOwner {
        require(buyMarketingFee + buyLiquidityFee + buyRewardFee <= 30, "Must keep buy taxes below 30%");
        _buyMarketingFee = buyMarketingFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyRewardFee = buyRewardFee;
    }

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

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

    function removeAllFee() private {
        if(_buyMarketingFee == 0 && _buyLiquidityFee == 0 && _buyRewardFee == 0 && _sellMarketingFee == 0 && _sellLiquidityFee == 0 && _sellRewardFee == 0) return;
        
        _previousBuyMarketingFee = _buyMarketingFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyRewardFee = _buyRewardFee;
        _previousSellMarketingFee = _sellMarketingFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellRewardFee = _sellRewardFee;
        
        _buyMarketingFee = 0;
        _buyLiquidityFee = 0;
        _buyRewardFee = 0;
        _sellMarketingFee = 0;
        _sellLiquidityFee = 0;
        _sellRewardFee = 0;
    }
    
    function restoreAllFee() private {
        _buyMarketingFee = _previousBuyMarketingFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyRewardFee = _previousBuyRewardFee;
        _sellMarketingFee = _previousSellMarketingFee;
        _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 MarketingFee;
        uint256 liqFee;
        uint256 rwrdFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            liqFee = 92;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                MarketingFee = _sellMarketingFee;
                liqFee = _sellLiquidityFee;
                rwrdFee = _sellRewardFee;
            } else {
                MarketingFee = _buyMarketingFee;
                liqFee = _buyLiquidityFee;
                rwrdFee = _buyRewardFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForReward += fees * rwrdFee / _totalFees;
        tokensForMarketing += fees * MarketingFee / _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 _sellMarketingFee + _sellLiquidityFee + _sellRewardFee;
        }
        return _buyMarketingFee + _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":"buyMarketingFee","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":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"MarketingWallet","type":"address"}],"name":"setMarketingWallet","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":"sellMarketingFee","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"}]

608060405260026007556007546008556001600955600954600a556000600b55600b54600c556002600d55600d54600e556001600f55600f5460105560006011556011546012556000601a60166101000a81548160ff0219169083151502179055506000601a60176101000a81548160ff0219169083151502179055506000601a60186101000a81548160ff0219169083151502179055506000601b556000601c5567016345785d8a0000601d5567016345785d8a0000601e5567016345785d8a0000601f556000602055348015620000d757600080fd5b506000620000ea620005a760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350734cc6b44ba6b90ba545a1308812084d6f13478616601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734cc6b44ba6b90ba545a1308812084d6f13478616601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734cc6b44ba6b90ba545a1308812084d6f13478616601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067016345785d8a000060026000620002a4620005a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002f8620005af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200051f620005a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16734cc6b44ba6b90ba545a1308812084d6f1347861673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620005999190620005e9565b60405180910390a362000610565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005e38162000606565b82525050565b6000602082019050620006006000830184620005d8565b92915050565b6000819050919050565b61534580620006206000396000f3fe6080604052600436106101dc5760003560e01c806370a0823111610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063a9059cbb116100d1578063a9059cbb14610515578063afa4f3b214610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b806370a082311461046b578063715018a6146104a85780638da5cb5b146104bf57806395d89b41146104ea576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780635d098b381461042b5780636fc3eaec14610454576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a91906145fd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613ef1565b610730565b60405161024791906145e2565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b604051610272919061489f565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614001565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613e9e565b610867565b6040516102d891906145e2565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614001565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e04565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190613fd4565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e04565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a7919061494b565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e04565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613f7a565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e04565b610fc0565b005b34801561043757600080fd5b50610452600480360381019061044d9190613e04565b6111fd565b005b34801561046057600080fd5b5061046961143a565b005b34801561047757600080fd5b50610492600480360381019061048d9190613e04565b6114e0565b60405161049f919061489f565b60405180910390f35b3480156104b457600080fd5b506104bd611529565b005b3480156104cb57600080fd5b506104d461167c565b6040516104e191906144b3565b60405180910390f35b3480156104f657600080fd5b506104ff6116a5565b60405161050c91906145fd565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613ef1565b6116e2565b60405161054991906145e2565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613fd4565b611700565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613f31565b611832565b005b3480156105b057600080fd5b506105b961195c565b005b3480156105c757600080fd5b506105d0611a0a565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613e5e565b611f95565b604051610606919061489f565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613f7a565b61201c565b005b34801561064457600080fd5b5061065f600480360381019061065a9190613fd4565b6120ce565b005b34801561066d57600080fd5b5061068860048036038101906106839190613fd4565b61216d565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e04565b61220c565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190613fd4565b6122fc565b005b3480156106e857600080fd5b506106f161239b565b005b60606040518060400160405280600b81526020017f42656e7a656d6120455448000000000000000000000000000000000000000000815250905090565b600061074461073d6124f1565b84846124f9565b6001905092915050565b600067016345785d8a0000905090565b6107666124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906146ff565b60405180910390fd5b603c8183856108029190614a17565b61080c9190614a17565b111561084d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108449061471f565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126c4565b610935846108806124f1565b610930856040518060600160405280602881526020016152e860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66124f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f649092919063ffffffff16565b6124f9565b600190509392505050565b6109486124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc906146ff565b60405180910390fd5b601e8183856109e49190614a17565b6109ee9190614a17565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906146df565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a516124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad5906146ff565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b416124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc5906146ff565b60405180910390fd5b80601f8190555050565b610be06124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c64906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd49061475f565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e266124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa906146ff565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f166124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a906146ff565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc86124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061481f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112056124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f99061485f565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114426124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c6906146ff565b60405180910390fd5b60004790506114dd81612fc8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115316124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b5906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4b424e5545564500000000000000000000000000000000000000000000000000815250905090565b60006116f66116ef6124f1565b84846126c4565b6001905092915050565b6117086124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c906146ff565b60405180910390fd5b652d79883d20008110156117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d5906147ff565b60405180910390fd5b66038d7ee0614a00811115611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f9061477f565b60405180910390fd5b8060208190555050565b61183a6124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906146ff565b60405180910390fd5b60005b8151811015611958576001600560008484815181106118ec576118eb614cd4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061195090614c2d565b9150506118ca565b5050565b6119646124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e8906146ff565b60405180910390fd5b60006119fc306114e0565b9050611a0781613034565b50565b611a126124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a96906146ff565b60405180910390fd5b601a60149054906101000a900460ff1615611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae6906147df565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b7e30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006124f9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611bc457600080fd5b505afa158015611bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfc9190613e31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5e57600080fd5b505afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190613e31565b6040518363ffffffff1660e01b8152600401611cb39291906144ce565b602060405180830381600087803b158015611ccd57600080fd5b505af1158015611ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d059190613e31565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d8e306114e0565b600080611d9961167c565b426040518863ffffffff1660e01b8152600401611dbb96959493929190614581565b6060604051808303818588803b158015611dd457600080fd5b505af1158015611de8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0d9190614054565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066038d7ea4c68000601d8190555066038d7ea4c68000601e8190555066071afd498d0000601f819055506601c6bf526340006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f3f9291906144f7565b602060405180830381600087803b158015611f5957600080fd5b505af1158015611f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f919190613fa7565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120246124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a8906146ff565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120d66124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a906146ff565b60405180910390fd5b80601c8190555050565b6121756124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f9906146ff565b60405180910390fd5b80601e8190555050565b6122146124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612298906146ff565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123046124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612391576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612388906146ff565b60405180910390fd5b80601d8190555050565b6123a36124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612427906146ff565b60405180910390fd5b601a60149054906101000a900460ff1615612480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124779061487f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124a69061449e565b60006040518083038185875af1925050503d80600081146124e3576040519150601f19603f3d011682016040523d82523d6000602084013e6124e8565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612560906147bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d09061463f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126b7919061489f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b9061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b9061461f565b60405180910390fd5b600081116127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de9061473f565b60405180910390fd5b6000806127f261167c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612860575061283061167c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128995750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128d3575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128ec5750601a60159054906101000a900460ff16155b15612d6257600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129955750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61299e57600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a4d5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa35750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612abb5750601a60189054906101000a900460ff165b15612bf957601d54831115612b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afc9061469f565b60405180910390fd5b601f5483612b12866114e0565b612b1c9190614a17565b1115612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b549061467f565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612ba857600080fd5b601e42612bb59190614a17565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ca45750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612cfa5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d125750601a60189054906101000a900460ff165b15612d6157601e54831115612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061483f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e035750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e0d57600091505b6000612e18306114e0565b9050600060205482118015612e2a5750825b9050808015612e455750601a60179054906101000a900460ff165b8015612e5e5750601a60159054906101000a900460ff16155b8015612eb45750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f0a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f4e576001601a60156101000a81548160ff021916908315150217905550612f326132bc565b6000601a60156101000a81548160ff0219169083151502179055505b612f5b87878787876135a3565b50505050505050565b6000838311158290612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa391906145fd565b60405180910390fd5b5060008385612fbb9190614af8565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613030573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561306c5761306b614d03565b5b60405190808252806020026020018201604052801561309a5781602001602082028036833780820191505090505b50905030816000815181106130b2576130b1614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561315457600080fd5b505afa158015613168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318c9190613e31565b816001815181106131a05761319f614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061320730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161326b9594939291906148ba565b600060405180830381600087803b15801561328557600080fd5b505af1158015613299573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b60006132c7306114e0565b905060006014546013546015546132de9190614a17565b6132e89190614a17565b90506000808314806132fa5750600082145b15613307575050506135a1565b600a6020546133169190614a9e565b83111561332f57600a60205461332c9190614a9e565b92505b6000600283601554866133429190614a9e565b61334c9190614a6d565b6133569190614a6d565b9050600061336d82866135e390919063ffffffff16565b9050600047905061337d82613034565b600061339282476135e390919063ffffffff16565b905060006133bd876133af6013548561362d90919063ffffffff16565b6136a890919063ffffffff16565b905060006133e8886133da6014548661362d90919063ffffffff16565b6136a890919063ffffffff16565b905060008183856133f99190614af8565b6134039190614af8565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134639061449e565b60006040518083038185875af1925050503d80600081146134a0576040519150601f19603f3d011682016040523d82523d6000602084013e6134a5565b606091505b5050809850506000871180156134bb5750600081115b15613508576134ca87826136f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186826015546040516134ff93929190614914565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161354e9061449e565b60006040518083038185875af1925050503d806000811461358b576040519150601f19603f3d011682016040523d82523d6000602084013e613590565b606091505b505080985050505050505050505050505b565b816135b5576135b0613801565b6135c3565b6135c08584836138c0565b92505b6135ce858585613a0a565b816135dc576135db613b9e565b5b5050505050565b600061362583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f64565b905092915050565b60008083141561364057600090506136a2565b6000828461364e9190614a9e565b905082848261365d9190614a6d565b1461369d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613694906146bf565b60405180910390fd5b809150505b92915050565b60006136ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd6565b905092915050565b61371f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137a896959493929190614520565b6060604051808303818588803b1580156137c157600080fd5b505af11580156137d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137fa9190614054565b5050505050565b600060075414801561381557506000600954145b801561382357506000600b54145b801561383157506000600d54145b801561383f57506000600f54145b801561384d57506000601154145b15613857576138be565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546138d99190614a17565b106138eb5760639350605c9150613921565b6138f486613c39565b9350851561391057600d549250600f5491506011549050613920565b60075492506009549150600b5490505b5b6000613949606461393b878b61362d90919063ffffffff16565b6136a890919063ffffffff16565b90508482826139589190614a9e565b6139629190614a6d565b601360008282546139739190614a17565b925050819055508484826139879190614a9e565b6139919190614a6d565b601460008282546139a29190614a17565b925050819055508483826139b69190614a9e565b6139c09190614a6d565b601560008282546139d19190614a17565b9250508190555060008111156139ed576139ec893083613a0a565b5b80886139f99190614af8565b975087955050505050509392505050565b613a5c81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135e390919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c8a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b91919061489f565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1491906145fd565b60405180910390fd5b5060008385613c2c9190614a6d565b9050809150509392505050565b60008115613c6557601154600f54600d54613c549190614a17565b613c5e9190614a17565b9050613c85565b600b54600954600754613c789190614a17565b613c829190614a17565b90505b919050565b6000808284613c999190614a17565b905083811015613cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd59061465f565b60405180910390fd5b8091505092915050565b6000613cfb613cf68461498b565b614966565b90508083825260208201905082856020860282011115613d1e57613d1d614d37565b5b60005b85811015613d4e5781613d348882613d58565b845260208401935060208301925050600181019050613d21565b5050509392505050565b600081359050613d67816152a2565b92915050565b600081519050613d7c816152a2565b92915050565b600082601f830112613d9757613d96614d32565b5b8135613da7848260208601613ce8565b91505092915050565b600081359050613dbf816152b9565b92915050565b600081519050613dd4816152b9565b92915050565b600081359050613de9816152d0565b92915050565b600081519050613dfe816152d0565b92915050565b600060208284031215613e1a57613e19614d41565b5b6000613e2884828501613d58565b91505092915050565b600060208284031215613e4757613e46614d41565b5b6000613e5584828501613d6d565b91505092915050565b60008060408385031215613e7557613e74614d41565b5b6000613e8385828601613d58565b9250506020613e9485828601613d58565b9150509250929050565b600080600060608486031215613eb757613eb6614d41565b5b6000613ec586828701613d58565b9350506020613ed686828701613d58565b9250506040613ee786828701613dda565b9150509250925092565b60008060408385031215613f0857613f07614d41565b5b6000613f1685828601613d58565b9250506020613f2785828601613dda565b9150509250929050565b600060208284031215613f4757613f46614d41565b5b600082013567ffffffffffffffff811115613f6557613f64614d3c565b5b613f7184828501613d82565b91505092915050565b600060208284031215613f9057613f8f614d41565b5b6000613f9e84828501613db0565b91505092915050565b600060208284031215613fbd57613fbc614d41565b5b6000613fcb84828501613dc5565b91505092915050565b600060208284031215613fea57613fe9614d41565b5b6000613ff884828501613dda565b91505092915050565b60008060006060848603121561401a57614019614d41565b5b600061402886828701613dda565b935050602061403986828701613dda565b925050604061404a86828701613dda565b9150509250925092565b60008060006060848603121561406d5761406c614d41565b5b600061407b86828701613def565b935050602061408c86828701613def565b925050604061409d86828701613def565b9150509250925092565b60006140b383836140ce565b60208301905092915050565b6140c881614b81565b82525050565b6140d781614b2c565b82525050565b6140e681614b2c565b82525050565b60006140f7826149c7565b61410181856149ea565b935061410c836149b7565b8060005b8381101561413d57815161412488826140a7565b975061412f836149dd565b925050600181019050614110565b5085935050505092915050565b61415381614b3e565b82525050565b61416281614b93565b82525050565b6000614173826149d2565b61417d8185614a06565b935061418d818560208601614bc9565b61419681614d46565b840191505092915050565b60006141ae602383614a06565b91506141b982614d57565b604082019050919050565b60006141d1602283614a06565b91506141dc82614da6565b604082019050919050565b60006141f4601b83614a06565b91506141ff82614df5565b602082019050919050565b6000614217602483614a06565b915061422282614e1e565b604082019050919050565b600061423a602983614a06565b915061424582614e6d565b604082019050919050565b600061425d602183614a06565b915061426882614ebc565b604082019050919050565b6000614280601d83614a06565b915061428b82614f0b565b602082019050919050565b60006142a3602083614a06565b91506142ae82614f34565b602082019050919050565b60006142c6601e83614a06565b91506142d182614f5d565b602082019050919050565b60006142e9602983614a06565b91506142f482614f86565b604082019050919050565b600061430c602383614a06565b915061431782614fd5565b604082019050919050565b600061432f603483614a06565b915061433a82615024565b604082019050919050565b6000614352602583614a06565b915061435d82615073565b604082019050919050565b60006143756000836149fb565b9150614380826150c2565b600082019050919050565b6000614398602483614a06565b91506143a3826150c5565b604082019050919050565b60006143bb601783614a06565b91506143c682615114565b602082019050919050565b60006143de603383614a06565b91506143e98261513d565b604082019050919050565b6000614401602083614a06565b915061440c8261518c565b602082019050919050565b6000614424602a83614a06565b915061442f826151b5565b604082019050919050565b6000614447602383614a06565b915061445282615204565b604082019050919050565b600061446a602b83614a06565b915061447582615253565b604082019050919050565b61448981614b6a565b82525050565b61449881614b74565b82525050565b60006144a982614368565b9150819050919050565b60006020820190506144c860008301846140dd565b92915050565b60006040820190506144e360008301856140dd565b6144f060208301846140dd565b9392505050565b600060408201905061450c60008301856140dd565b6145196020830184614480565b9392505050565b600060c08201905061453560008301896140dd565b6145426020830188614480565b61454f6040830187614159565b61455c6060830186614159565b61456960808301856140bf565b61457660a0830184614480565b979650505050505050565b600060c08201905061459660008301896140dd565b6145a36020830188614480565b6145b06040830187614159565b6145bd6060830186614159565b6145ca60808301856140dd565b6145d760a0830184614480565b979650505050505050565b60006020820190506145f7600083018461414a565b92915050565b600060208201905081810360008301526146178184614168565b905092915050565b60006020820190508181036000830152614638816141a1565b9050919050565b60006020820190508181036000830152614658816141c4565b9050919050565b60006020820190508181036000830152614678816141e7565b9050919050565b600060208201905081810360008301526146988161420a565b9050919050565b600060208201905081810360008301526146b88161422d565b9050919050565b600060208201905081810360008301526146d881614250565b9050919050565b600060208201905081810360008301526146f881614273565b9050919050565b6000602082019050818103600083015261471881614296565b9050919050565b60006020820190508181036000830152614738816142b9565b9050919050565b60006020820190508181036000830152614758816142dc565b9050919050565b60006020820190508181036000830152614778816142ff565b9050919050565b6000602082019050818103600083015261479881614322565b9050919050565b600060208201905081810360008301526147b881614345565b9050919050565b600060208201905081810360008301526147d88161438b565b9050919050565b600060208201905081810360008301526147f8816143ae565b9050919050565b60006020820190508181036000830152614818816143d1565b9050919050565b60006020820190508181036000830152614838816143f4565b9050919050565b6000602082019050818103600083015261485881614417565b9050919050565b600060208201905081810360008301526148788161443a565b9050919050565b600060208201905081810360008301526148988161445d565b9050919050565b60006020820190506148b46000830184614480565b92915050565b600060a0820190506148cf6000830188614480565b6148dc6020830187614159565b81810360408301526148ee81866140ec565b90506148fd60608301856140dd565b61490a6080830184614480565b9695505050505050565b60006060820190506149296000830186614480565b6149366020830185614480565b6149436040830184614480565b949350505050565b6000602082019050614960600083018461448f565b92915050565b6000614970614981565b905061497c8282614bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156149a6576149a5614d03565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a2282614b6a565b9150614a2d83614b6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6257614a61614c76565b5b828201905092915050565b6000614a7882614b6a565b9150614a8383614b6a565b925082614a9357614a92614ca5565b5b828204905092915050565b6000614aa982614b6a565b9150614ab483614b6a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aed57614aec614c76565b5b828202905092915050565b6000614b0382614b6a565b9150614b0e83614b6a565b925082821015614b2157614b20614c76565b5b828203905092915050565b6000614b3782614b4a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b8c82614ba5565b9050919050565b6000614b9e82614b6a565b9050919050565b6000614bb082614bb7565b9050919050565b6000614bc282614b4a565b9050919050565b60005b83811015614be7578082015181840152602081019050614bcc565b83811115614bf6576000848401525b50505050565b614c0582614d46565b810181811067ffffffffffffffff82111715614c2457614c23614d03565b5b80604052505050565b6000614c3882614b6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c6b57614c6a614c76565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20312e302520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e312520746f74616c20737570706c792e00000000000000000000000000602082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f4d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152ab81614b2c565b81146152b657600080fd5b50565b6152c281614b3e565b81146152cd57600080fd5b50565b6152d981614b6a565b81146152e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a71925f2ccdabfa264e5008002f498539e60b2d0ce75c83dce8f689a921c189d64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806370a0823111610102578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610661578063ea2f0b371461068a578063f34eb0b8146106b3578063f5648a4f146106dc576101e3565b8063c9567bf9146105bb578063dd62ed3e146105d2578063e01af92c1461060f578063e6f7ef4d14610638576101e3565b8063a9059cbb116100d1578063a9059cbb14610515578063afa4f3b214610552578063b515566a1461057b578063c3c8cd80146105a4576101e3565b806370a082311461046b578063715018a6146104a85780638da5cb5b146104bf57806395d89b41146104ea576101e3565b806327a14fc21161017a5780635932ead1116101495780635932ead1146103d95780635958621e146104025780635d098b381461042b5780636fc3eaec14610454576101e3565b806327a14fc214610333578063296f0a0c1461035c578063313ce56714610385578063437823ec146103b0576101e3565b80631d865c30116101b65780631d865c301461027b57806323b872dd146102a457806325519cf2146102e1578063273123b71461030a576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6106f3565b60405161020a91906145fd565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190613ef1565b610730565b60405161024791906145e2565b60405180910390f35b34801561025c57600080fd5b5061026561074e565b604051610272919061489f565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190614001565b61075e565b005b3480156102b057600080fd5b506102cb60048036038101906102c69190613e9e565b610867565b6040516102d891906145e2565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190614001565b610940565b005b34801561031657600080fd5b50610331600480360381019061032c9190613e04565b610a49565b005b34801561033f57600080fd5b5061035a60048036038101906103559190613fd4565b610b39565b005b34801561036857600080fd5b50610383600480360381019061037e9190613e04565b610bd8565b005b34801561039157600080fd5b5061039a610e15565b6040516103a7919061494b565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613e04565b610e1e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190613f7a565b610f0e565b005b34801561040e57600080fd5b5061042960048036038101906104249190613e04565b610fc0565b005b34801561043757600080fd5b50610452600480360381019061044d9190613e04565b6111fd565b005b34801561046057600080fd5b5061046961143a565b005b34801561047757600080fd5b50610492600480360381019061048d9190613e04565b6114e0565b60405161049f919061489f565b60405180910390f35b3480156104b457600080fd5b506104bd611529565b005b3480156104cb57600080fd5b506104d461167c565b6040516104e191906144b3565b60405180910390f35b3480156104f657600080fd5b506104ff6116a5565b60405161050c91906145fd565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613ef1565b6116e2565b60405161054991906145e2565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613fd4565b611700565b005b34801561058757600080fd5b506105a2600480360381019061059d9190613f31565b611832565b005b3480156105b057600080fd5b506105b961195c565b005b3480156105c757600080fd5b506105d0611a0a565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613e5e565b611f95565b604051610606919061489f565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190613f7a565b61201c565b005b34801561064457600080fd5b5061065f600480360381019061065a9190613fd4565b6120ce565b005b34801561066d57600080fd5b5061068860048036038101906106839190613fd4565b61216d565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613e04565b61220c565b005b3480156106bf57600080fd5b506106da60048036038101906106d59190613fd4565b6122fc565b005b3480156106e857600080fd5b506106f161239b565b005b60606040518060400160405280600b81526020017f42656e7a656d6120455448000000000000000000000000000000000000000000815250905090565b600061074461073d6124f1565b84846124f9565b6001905092915050565b600067016345785d8a0000905090565b6107666124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906146ff565b60405180910390fd5b603c8183856108029190614a17565b61080c9190614a17565b111561084d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108449061471f565b60405180910390fd5b82600d8190555081600f8190555080601181905550505050565b60006108748484846126c4565b610935846108806124f1565b610930856040518060600160405280602881526020016152e860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66124f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f649092919063ffffffff16565b6124f9565b600190509392505050565b6109486124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc906146ff565b60405180910390fd5b601e8183856109e49190614a17565b6109ee9190614a17565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906146df565b60405180910390fd5b826007819055508160098190555080600b81905550505050565b610a516124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad5906146ff565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b416124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc5906146ff565b60405180910390fd5b80601f8190555050565b610be06124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c64906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd49061475f565b60405180910390fd5b600060046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610e266124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa906146ff565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f166124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a906146ff565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b610fc86124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061481f565b60405180910390fd5b600060046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112056124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f99061485f565b60405180910390fd5b600060046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114426124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c6906146ff565b60405180910390fd5b60004790506114dd81612fc8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115316124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b5906146ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4b424e5545564500000000000000000000000000000000000000000000000000815250905090565b60006116f66116ef6124f1565b84846126c4565b6001905092915050565b6117086124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c906146ff565b60405180910390fd5b652d79883d20008110156117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d5906147ff565b60405180910390fd5b66038d7ee0614a00811115611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f9061477f565b60405180910390fd5b8060208190555050565b61183a6124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906146ff565b60405180910390fd5b60005b8151811015611958576001600560008484815181106118ec576118eb614cd4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061195090614c2d565b9150506118ca565b5050565b6119646124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e8906146ff565b60405180910390fd5b60006119fc306114e0565b9050611a0781613034565b50565b611a126124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a96906146ff565b60405180910390fd5b601a60149054906101000a900460ff1615611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae6906147df565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b7e30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006124f9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611bc457600080fd5b505afa158015611bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfc9190613e31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5e57600080fd5b505afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190613e31565b6040518363ffffffff1660e01b8152600401611cb39291906144ce565b602060405180830381600087803b158015611ccd57600080fd5b505af1158015611ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d059190613e31565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611d8e306114e0565b600080611d9961167c565b426040518863ffffffff1660e01b8152600401611dbb96959493929190614581565b6060604051808303818588803b158015611dd457600080fd5b505af1158015611de8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0d9190614054565b5050506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff02191690831515021790555066038d7ea4c68000601d8190555066038d7ea4c68000601e8190555066071afd498d0000601f819055506601c6bf526340006020819055506001601a60146101000a81548160ff02191690831515021790555043601b81905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f3f9291906144f7565b602060405180830381600087803b158015611f5957600080fd5b505af1158015611f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f919190613fa7565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120246124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a8906146ff565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b6120d66124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a906146ff565b60405180910390fd5b80601c8190555050565b6121756124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f9906146ff565b60405180910390fd5b80601e8190555050565b6122146124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612298906146ff565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6123046124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612391576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612388906146ff565b60405180910390fd5b80601d8190555050565b6123a36124f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612427906146ff565b60405180910390fd5b601a60149054906101000a900460ff1615612480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124779061487f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516124a69061449e565b60006040518083038185875af1925050503d80600081146124e3576040519150601f19603f3d011682016040523d82523d6000602084013e6124e8565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612560906147bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d09061463f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126b7919061489f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b9061479f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b9061461f565b60405180910390fd5b600081116127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de9061473f565b60405180910390fd5b6000806127f261167c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612860575061283061167c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128995750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128d3575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128ec5750601a60159054906101000a900460ff16155b15612d6257600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129955750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61299e57600080fd5b60019150601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612a4d5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa35750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612abb5750601a60189054906101000a900460ff165b15612bf957601d54831115612b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afc9061469f565b60405180910390fd5b601f5483612b12866114e0565b612b1c9190614a17565b1115612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b549061467f565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612ba857600080fd5b601e42612bb59190614a17565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ca45750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612cfa5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d125750601a60189054906101000a900460ff165b15612d6157601e54831115612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d539061483f565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e035750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e0d57600091505b6000612e18306114e0565b9050600060205482118015612e2a5750825b9050808015612e455750601a60179054906101000a900460ff165b8015612e5e5750601a60159054906101000a900460ff16155b8015612eb45750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f0a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f4e576001601a60156101000a81548160ff021916908315150217905550612f326132bc565b6000601a60156101000a81548160ff0219169083151502179055505b612f5b87878787876135a3565b50505050505050565b6000838311158290612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa391906145fd565b60405180910390fd5b5060008385612fbb9190614af8565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613030573d6000803e3d6000fd5b5050565b6001601a60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561306c5761306b614d03565b5b60405190808252806020026020018201604052801561309a5781602001602082028036833780820191505090505b50905030816000815181106130b2576130b1614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561315457600080fd5b505afa158015613168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318c9190613e31565b816001815181106131a05761319f614cd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061320730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161326b9594939291906148ba565b600060405180830381600087803b15801561328557600080fd5b505af1158015613299573d6000803e3d6000fd5b50505050506000601a60166101000a81548160ff02191690831515021790555050565b60006132c7306114e0565b905060006014546013546015546132de9190614a17565b6132e89190614a17565b90506000808314806132fa5750600082145b15613307575050506135a1565b600a6020546133169190614a9e565b83111561332f57600a60205461332c9190614a9e565b92505b6000600283601554866133429190614a9e565b61334c9190614a6d565b6133569190614a6d565b9050600061336d82866135e390919063ffffffff16565b9050600047905061337d82613034565b600061339282476135e390919063ffffffff16565b905060006133bd876133af6013548561362d90919063ffffffff16565b6136a890919063ffffffff16565b905060006133e8886133da6014548661362d90919063ffffffff16565b6136a890919063ffffffff16565b905060008183856133f99190614af8565b6134039190614af8565b9050600060158190555060006013819055506000601481905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516134639061449e565b60006040518083038185875af1925050503d80600081146134a0576040519150601f19603f3d011682016040523d82523d6000602084013e6134a5565b606091505b5050809850506000871180156134bb5750600081115b15613508576134ca87826136f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186826015546040516134ff93929190614914565b60405180910390a15b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161354e9061449e565b60006040518083038185875af1925050503d806000811461358b576040519150601f19603f3d011682016040523d82523d6000602084013e613590565b606091505b505080985050505050505050505050505b565b816135b5576135b0613801565b6135c3565b6135c08584836138c0565b92505b6135ce858585613a0a565b816135dc576135db613b9e565b5b5050505050565b600061362583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f64565b905092915050565b60008083141561364057600090506136a2565b6000828461364e9190614a9e565b905082848261365d9190614a6d565b1461369d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613694906146bf565b60405180910390fd5b809150505b92915050565b60006136ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd6565b905092915050565b61371f30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846124f9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137a896959493929190614520565b6060604051808303818588803b1580156137c157600080fd5b505af11580156137d5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137fa9190614054565b5050505050565b600060075414801561381557506000600954145b801561382357506000600b54145b801561383157506000600d54145b801561383f57506000600f54145b801561384d57506000601154145b15613857576138be565b600754600881905550600954600a81905550600b54600c81905550600d54600e81905550600f54601081905550601154601281905550600060078190555060006009819055506000600b819055506000600d819055506000600f8190555060006011819055505b565b600080600080600043601c54601b546138d99190614a17565b106138eb5760639350605c9150613921565b6138f486613c39565b9350851561391057600d549250600f5491506011549050613920565b60075492506009549150600b5490505b5b6000613949606461393b878b61362d90919063ffffffff16565b6136a890919063ffffffff16565b90508482826139589190614a9e565b6139629190614a6d565b601360008282546139739190614a17565b925050819055508484826139879190614a9e565b6139919190614a6d565b601460008282546139a29190614a17565b925050819055508483826139b69190614a9e565b6139c09190614a6d565b601560008282546139d19190614a17565b9250508190555060008111156139ed576139ec893083613a0a565b5b80886139f99190614af8565b975087955050505050509392505050565b613a5c81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135e390919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c8a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b91919061489f565b60405180910390a3505050565b600854600781905550600a54600981905550600c54600b81905550600e54600d81905550601054600f81905550601254601181905550565b60008083118290613c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1491906145fd565b60405180910390fd5b5060008385613c2c9190614a6d565b9050809150509392505050565b60008115613c6557601154600f54600d54613c549190614a17565b613c5e9190614a17565b9050613c85565b600b54600954600754613c789190614a17565b613c829190614a17565b90505b919050565b6000808284613c999190614a17565b905083811015613cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd59061465f565b60405180910390fd5b8091505092915050565b6000613cfb613cf68461498b565b614966565b90508083825260208201905082856020860282011115613d1e57613d1d614d37565b5b60005b85811015613d4e5781613d348882613d58565b845260208401935060208301925050600181019050613d21565b5050509392505050565b600081359050613d67816152a2565b92915050565b600081519050613d7c816152a2565b92915050565b600082601f830112613d9757613d96614d32565b5b8135613da7848260208601613ce8565b91505092915050565b600081359050613dbf816152b9565b92915050565b600081519050613dd4816152b9565b92915050565b600081359050613de9816152d0565b92915050565b600081519050613dfe816152d0565b92915050565b600060208284031215613e1a57613e19614d41565b5b6000613e2884828501613d58565b91505092915050565b600060208284031215613e4757613e46614d41565b5b6000613e5584828501613d6d565b91505092915050565b60008060408385031215613e7557613e74614d41565b5b6000613e8385828601613d58565b9250506020613e9485828601613d58565b9150509250929050565b600080600060608486031215613eb757613eb6614d41565b5b6000613ec586828701613d58565b9350506020613ed686828701613d58565b9250506040613ee786828701613dda565b9150509250925092565b60008060408385031215613f0857613f07614d41565b5b6000613f1685828601613d58565b9250506020613f2785828601613dda565b9150509250929050565b600060208284031215613f4757613f46614d41565b5b600082013567ffffffffffffffff811115613f6557613f64614d3c565b5b613f7184828501613d82565b91505092915050565b600060208284031215613f9057613f8f614d41565b5b6000613f9e84828501613db0565b91505092915050565b600060208284031215613fbd57613fbc614d41565b5b6000613fcb84828501613dc5565b91505092915050565b600060208284031215613fea57613fe9614d41565b5b6000613ff884828501613dda565b91505092915050565b60008060006060848603121561401a57614019614d41565b5b600061402886828701613dda565b935050602061403986828701613dda565b925050604061404a86828701613dda565b9150509250925092565b60008060006060848603121561406d5761406c614d41565b5b600061407b86828701613def565b935050602061408c86828701613def565b925050604061409d86828701613def565b9150509250925092565b60006140b383836140ce565b60208301905092915050565b6140c881614b81565b82525050565b6140d781614b2c565b82525050565b6140e681614b2c565b82525050565b60006140f7826149c7565b61410181856149ea565b935061410c836149b7565b8060005b8381101561413d57815161412488826140a7565b975061412f836149dd565b925050600181019050614110565b5085935050505092915050565b61415381614b3e565b82525050565b61416281614b93565b82525050565b6000614173826149d2565b61417d8185614a06565b935061418d818560208601614bc9565b61419681614d46565b840191505092915050565b60006141ae602383614a06565b91506141b982614d57565b604082019050919050565b60006141d1602283614a06565b91506141dc82614da6565b604082019050919050565b60006141f4601b83614a06565b91506141ff82614df5565b602082019050919050565b6000614217602483614a06565b915061422282614e1e565b604082019050919050565b600061423a602983614a06565b915061424582614e6d565b604082019050919050565b600061425d602183614a06565b915061426882614ebc565b604082019050919050565b6000614280601d83614a06565b915061428b82614f0b565b602082019050919050565b60006142a3602083614a06565b91506142ae82614f34565b602082019050919050565b60006142c6601e83614a06565b91506142d182614f5d565b602082019050919050565b60006142e9602983614a06565b91506142f482614f86565b604082019050919050565b600061430c602383614a06565b915061431782614fd5565b604082019050919050565b600061432f603483614a06565b915061433a82615024565b604082019050919050565b6000614352602583614a06565b915061435d82615073565b604082019050919050565b60006143756000836149fb565b9150614380826150c2565b600082019050919050565b6000614398602483614a06565b91506143a3826150c5565b604082019050919050565b60006143bb601783614a06565b91506143c682615114565b602082019050919050565b60006143de603383614a06565b91506143e98261513d565b604082019050919050565b6000614401602083614a06565b915061440c8261518c565b602082019050919050565b6000614424602a83614a06565b915061442f826151b5565b604082019050919050565b6000614447602383614a06565b915061445282615204565b604082019050919050565b600061446a602b83614a06565b915061447582615253565b604082019050919050565b61448981614b6a565b82525050565b61449881614b74565b82525050565b60006144a982614368565b9150819050919050565b60006020820190506144c860008301846140dd565b92915050565b60006040820190506144e360008301856140dd565b6144f060208301846140dd565b9392505050565b600060408201905061450c60008301856140dd565b6145196020830184614480565b9392505050565b600060c08201905061453560008301896140dd565b6145426020830188614480565b61454f6040830187614159565b61455c6060830186614159565b61456960808301856140bf565b61457660a0830184614480565b979650505050505050565b600060c08201905061459660008301896140dd565b6145a36020830188614480565b6145b06040830187614159565b6145bd6060830186614159565b6145ca60808301856140dd565b6145d760a0830184614480565b979650505050505050565b60006020820190506145f7600083018461414a565b92915050565b600060208201905081810360008301526146178184614168565b905092915050565b60006020820190508181036000830152614638816141a1565b9050919050565b60006020820190508181036000830152614658816141c4565b9050919050565b60006020820190508181036000830152614678816141e7565b9050919050565b600060208201905081810360008301526146988161420a565b9050919050565b600060208201905081810360008301526146b88161422d565b9050919050565b600060208201905081810360008301526146d881614250565b9050919050565b600060208201905081810360008301526146f881614273565b9050919050565b6000602082019050818103600083015261471881614296565b9050919050565b60006020820190508181036000830152614738816142b9565b9050919050565b60006020820190508181036000830152614758816142dc565b9050919050565b60006020820190508181036000830152614778816142ff565b9050919050565b6000602082019050818103600083015261479881614322565b9050919050565b600060208201905081810360008301526147b881614345565b9050919050565b600060208201905081810360008301526147d88161438b565b9050919050565b600060208201905081810360008301526147f8816143ae565b9050919050565b60006020820190508181036000830152614818816143d1565b9050919050565b60006020820190508181036000830152614838816143f4565b9050919050565b6000602082019050818103600083015261485881614417565b9050919050565b600060208201905081810360008301526148788161443a565b9050919050565b600060208201905081810360008301526148988161445d565b9050919050565b60006020820190506148b46000830184614480565b92915050565b600060a0820190506148cf6000830188614480565b6148dc6020830187614159565b81810360408301526148ee81866140ec565b90506148fd60608301856140dd565b61490a6080830184614480565b9695505050505050565b60006060820190506149296000830186614480565b6149366020830185614480565b6149436040830184614480565b949350505050565b6000602082019050614960600083018461448f565b92915050565b6000614970614981565b905061497c8282614bfc565b919050565b6000604051905090565b600067ffffffffffffffff8211156149a6576149a5614d03565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614a2282614b6a565b9150614a2d83614b6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a6257614a61614c76565b5b828201905092915050565b6000614a7882614b6a565b9150614a8383614b6a565b925082614a9357614a92614ca5565b5b828204905092915050565b6000614aa982614b6a565b9150614ab483614b6a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aed57614aec614c76565b5b828202905092915050565b6000614b0382614b6a565b9150614b0e83614b6a565b925082821015614b2157614b20614c76565b5b828203905092915050565b6000614b3782614b4a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b8c82614ba5565b9050919050565b6000614b9e82614b6a565b9050919050565b6000614bb082614bb7565b9050919050565b6000614bc282614b4a565b9050919050565b60005b83811015614be7578082015181840152602081019050614bcc565b83811115614bf6576000848401525b50505050565b614c0582614d46565b810181811067ffffffffffffffff82111715614c2457614c23614d03565b5b80604052505050565b6000614c3882614b6a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614c6b57614c6a614c76565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206275792074617865732062656c6f7720333025000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d757374206b6565702073656c6c2074617865732062656c6f77203630250000600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20312e302520746f74616c20737570706c792e000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e312520746f74616c20737570706c792e00000000000000000000000000602082015250565b7f72657761726457616c6c657420616464726573732063616e6e6f742062652030600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b7f4d61726b6574696e6757616c6c657420616464726573732063616e6e6f74206260008201527f6520300000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206f6e6c792077697468647261772069662074726164696e672068617360008201527f6e27742073746172746564000000000000000000000000000000000000000000602082015250565b6152ab81614b2c565b81146152b657600080fd5b50565b6152c281614b3e565b81146152cd57600080fd5b50565b6152d981614b6a565b81146152e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a71925f2ccdabfa264e5008002f498539e60b2d0ce75c83dce8f689a921c189d64736f6c63430008070033

Deployed Bytecode Sourcemap

3686:17403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6768:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7599:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7045:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16686:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7768:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16324:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18287:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14640:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15744:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6954:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16083:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8089:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15429:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15090:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20425:153;;;;;;;;;;;;;:::i;:::-;;7148:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2765:148;;;;;;;;;;;;;:::i;:::-;;2551:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7273:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14761:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14246:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20259:154;;;;;;;;;;;;;:::i;:::-;;13243:991;;;;;;;;;;;;;:::i;:::-;;7448:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8200:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17062:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14525:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16206:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14418:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20586:239;;;;;;;;;;;;;:::i;:::-;;6768:83;6805:13;6838:5;;;;;;;;;;;;;;;;;6831:12;;6768:83;:::o;7599:161::-;7674:4;7691:39;7700:12;:10;:12::i;:::-;7714:7;7723:6;7691:8;:39::i;:::-;7748:4;7741:11;;7599:161;;;;:::o;7045:95::-;7098:7;4089:17;7118:14;;7045:95;:::o;16686:368::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16874:2:::1;16857:13;16838:16;16819;:35;;;;:::i;:::-;:51;;;;:::i;:::-;:57;;16811:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;16942:16;16922:17;:36;;;;16989:16;16969:17;:36;;;;17033:13;17016:14;:30;;;;16686:368:::0;;;:::o;7768:313::-;7866:4;7883:36;7893:6;7901:9;7912:6;7883:9;:36::i;:::-;7930:121;7939:6;7947:12;:10;:12::i;:::-;7961:89;7999:6;7961:89;;;;;;;;;;;;;;;;;:11;:19;7973:6;7961:19;;;;;;;;;;;;;;;:33;7981:12;:10;:12::i;:::-;7961:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7930:8;:121::i;:::-;8069:4;8062:11;;7768:313;;;;;:::o;16324:354::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16505:2:::1;16489:12;16471:15;16453;:33;;;;:::i;:::-;:48;;;;:::i;:::-;:54;;16445:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;16571:15;16552:16;:34;;;;16616:15;16597:16;:34;;;;16658:12;16642:13;:28;;;;16324:354:::0;;;:::o;18287:88::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18362:5:::1;18347:4;:12;18352:6;18347:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18287:88:::0;:::o;14640:109::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14733:8:::1;14714:16;:27;;;;14640:109:::0;:::o;15744:331::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15862:1:::1;15835:29;;:15;:29;;;;15827:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;15954:5;15915:18;:36;15934:16;;;;;;;;;;;15915:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;15997:15;15970:16;;:43;;;;;;;;;;;;;;;;;;16063:4;16024:18;:36;16043:16;;;;;;;;;;;16024:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;15744:331:::0;:::o;6954:83::-;6995:5;5175:1;7013:16;;6954:83;:::o;16083:111::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16182:4:::1;16152:18;:27;16171:7;16152:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16083:111:::0;:::o;8089:103::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8179:5:::1;8161:15;;:23;;;;;;;;;;;;;;;;;;8089:103:::0;:::o;15429:307::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15538:1:::1;15514:26;;:12;:26;;;;15506:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15624:5;15588:18;:33;15607:13;;;;;;;;;;;15588:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;15664:12;15640:13;;:37;;;;;;;;;;;;;;;;;;15724:4;15688:18;:33;15707:13;;;;;;;;;;;15688:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;15429:307:::0;:::o;15090:331::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15208:1:::1;15181:29;;:15;:29;;;;15173:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;15300:5;15261:18;:36;15280:16;;;;;;;;;;;15261:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;15343:15;15316:16;;:43;;;;;;;;;;;;;;;;;;15409:4;15370:18;:36;15389:16;;;;;;;;;;;15370:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;15090:331:::0;:::o;20425:153::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20477:26:::1;20506:21;20477:50;;20538:32;20551:18;20538:12;:32::i;:::-;20466:112;20425:153::o:0;7148:117::-;7214:7;7241;:16;7249:7;7241:16;;;;;;;;;;;;;;;;7234:23;;7148:117;;;:::o;2765:148::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2872:1:::1;2835:40;;2856:6;::::0;::::1;;;;;;;;2835:40;;;;;;;;;;;;2903:1;2886:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2765:148::o:0;2551:79::-;2589:7;2616:6;;;;;;;;;;;2609:13;;2551:79;:::o;6859:87::-;6898:13;6931:7;;;;;;;;;;;;;;;;;6924:14;;6859:87;:::o;7273:167::-;7351:4;7368:42;7378:12;:10;:12::i;:::-;7392:9;7403:6;7368:9;:42::i;:::-;7428:4;7421:11;;7273:167;;;;:::o;14761:321::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14860:13:::1;14847:9;:26;;14839:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14961:15;14948:9;:28;;14940:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;15065:9;15044:18;:30;;;;14761:321:::0;:::o;14246:164::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14320:6:::1;14315:88;14336:5;:12;14332:1;:16;14315:88;;;14387:4;14370;:14;14375:5;14381:1;14375:8;;;;;;;;:::i;:::-;;;;;;;;14370:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14350:3;;;;;:::i;:::-;;;;14315:88;;;;14246:164:::0;:::o;20259:154::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20311:23:::1;20337:24;20355:4;20337:9;:24::i;:::-;20311:50;;20372:33;20389:15;20372:16;:33::i;:::-;20300:113;20259:154::o:0;13243:991::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13307:11:::1;;;;;;;;;;;13306:12;13298:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13356:35;13413:42;13356:100;;13485:16;13467:15;;:34;;;;;;;;;;;;;;;;;;13512:58;13529:4;13544:15;;;;;;;;;;;4089:17;13512:8;:58::i;:::-;13615:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13597:56;;;13662:4;13669:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13597:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13581:13;;:112;;;;;;;;;;;;;;;;;;13704:15;;;;;;;;;;;:31;;;13743:21;13774:4;13780:24;13798:4;13780:9;:24::i;:::-;13805:1;13807::::0;13809:7:::1;:5;:7::i;:::-;13817:15;13704:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13858:4;13844:11;;:18;;;;;;;;;;;;;;;;;;13891:4;13873:15;;:22;;;;;;;;;;;;;;;;;;13922:15;13906:13;:31;;;;13965:15;13948:14;:32;;;;14010:15;13991:16;:34;;;;14057:14;14036:18;:35;;;;14096:4;14082:11;;:18;;;;;;;;;;;;;;;;;;14132:12;14111:18;:33;;;;14162:13;;;;;;;;;;;14155:29;;;14193:15;;;;;;;;;;;14211:14;14155:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13287:947;13243:991::o:0;7448:143::-;7529:7;7556:11;:18;7568:5;7556:18;;;;;;;;;;;;;;;:27;7575:7;7556:27;;;;;;;;;;;;;;;;7549:34;;7448:143;;;;:::o;8200:94::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8281:5:::1;8267:11;;:19;;;;;;;;;;;;;;;;;;8200:94:::0;:::o;17062:108::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17156:6:::1;17136:17;:26;;;;17062:108:::0;:::o;14525:103::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14613:7:::1;14596:14;:24;;;;14525:103:::0;:::o;16206:110::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16303:5:::1;16273:18;:27;16292:7;16273:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16206:110:::0;:::o;14418:99::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14503:6:::1;14487:13;:22;;;;14418:99:::0;:::o;20586:239::-;2688:12;:10;:12::i;:::-;2678:22;;:6;;;;;;;;;;:22;;;2670:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20653:11:::1;;;;;;;;;;;20652:12;20644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20723:12;20767:10;20759:24;;20791:21;20759:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20746:71;;;;;20633:192;20586:239::o:0;269:98::-;322:7;349:10;342:17;;269:98;:::o;8302:335::-;8412:1;8395:19;;:5;:19;;;;8387:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8493:1;8474:21;;:7;:21;;;;8466:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8575:6;8545:11;:18;8557:5;8545:18;;;;;;;;;;;;;;;:27;8564:7;8545:27;;;;;;;;;;;;;;;:36;;;;8613:7;8597:32;;8606:5;8597:32;;;8622:6;8597:32;;;;;;:::i;:::-;;;;;;;;8302:335;;;:::o;8645:1850::-;8749:1;8733:18;;:4;:18;;;;8725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8826:1;8812:16;;:2;:16;;;;8804:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8896:1;8887:6;:10;8879:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8954:12;8985:15;9031:7;:5;:7::i;:::-;9023:15;;:4;:15;;;;:32;;;;;9048:7;:5;:7::i;:::-;9042:13;;:2;:13;;;;9023:32;:52;;;;;9073:1;9059:16;;:2;:16;;;;9023:52;:77;;;;;9093:6;9079:21;;:2;:21;;;;9023:77;:90;;;;;9105:8;;;;;;;;;;;9104:9;9023:90;9019:939;;;9139:4;:10;9144:4;9139:10;;;;;;;;;;;;;;;;;;;;;;;;;9138:11;:24;;;;;9154:4;:8;9159:2;9154:8;;;;;;;;;;;;;;;;;;;;;;;;;9153:9;9138:24;9130:33;;;;;;9190:4;9180:14;;9221:13;;;;;;;;;;;9213:21;;:4;:21;;;:55;;;;;9252:15;;;;;;;;;;;9238:30;;:2;:30;;;;9213:55;:82;;;;;9273:18;:22;9292:2;9273:22;;;;;;;;;;;;;;;;;;;;;;;;;9272:23;9213:82;:101;;;;;9299:15;;;;;;;;;;;9213:101;9209:451;;;9353:13;;9343:6;:23;;9335:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9465:16;;9455:6;9439:13;9449:2;9439:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;9431:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9564:15;9549:8;:12;9558:2;9549:12;;;;;;;;;;;;;;;;:30;9541:39;;;;;;9633:10;9614:15;:30;;;;:::i;:::-;9599:8;:12;9608:2;9599:12;;;;;;;;;;;;;;;:45;;;;9209:451;9698:13;;;;;;;;;;;9692:19;;:2;:19;;;:55;;;;;9731:15;;;;;;;;;;;9715:32;;:4;:32;;;;9692:55;:84;;;;;9752:18;:24;9771:4;9752:24;;;;;;;;;;;;;;;;;;;;;;;;;9751:25;9692:84;:103;;;;;9780:15;;;;;;;;;;;9692:103;9688:259;;;9834:14;;9824:6;:24;;9816:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9927:4;9914:17;;9688:259;9019:939;9973:18;:24;9992:4;9973:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10001:18;:22;10020:2;10001:22;;;;;;;;;;;;;;;;;;;;;;;;;9973:50;9970:97;;;10050:5;10040:15;;9970:97;10079:28;10110:24;10128:4;10110:9;:24::i;:::-;10079:55;;10145:12;10184:18;;10161:20;:41;10160:57;;;;;10207:10;10160:57;10145:72;;10234:7;:22;;;;;10245:11;;;;;;;;;;;10234:22;:35;;;;;10261:8;;;;;;;;;;;10260:9;10234:35;:64;;;;;10274:18;:24;10293:4;10274:24;;;;;;;;;;;;;;;;;;;;;;;;;10273:25;10234:64;:91;;;;;10303:18;:22;10322:2;10303:22;;;;;;;;;;;;;;;;;;;;;;;;;10302:23;10234:91;10230:195;;;10353:4;10342:8;;:15;;;;;;;;;;;;;;;;;;10372:10;:8;:10::i;:::-;10408:5;10397:8;;:16;;;;;;;;;;;;;;;;;;10230:195;10437:50;10452:4;10457:2;10460:6;10467:7;10476:10;10437:14;:50::i;:::-;8714:1781;;;;8645:1850;;;:::o;1406:190::-;1492:7;1525:1;1520;:6;;1528:12;1512:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1552:9;1568:1;1564;:5;;;;:::i;:::-;1552:17;;1587:1;1580:8;;;1406:190;;;;;:::o;13133:98::-;13190:16;;;;;;;;;;;:25;;:33;13216:6;13190:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13133:98;:::o;12203:483::-;6045:4;6036:6;;:13;;;;;;;;;;;;;;;;;;12281:21:::1;12319:1;12305:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12281:40;;12350:4;12332;12337:1;12332:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12376:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12366:4;12371:1;12366:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12409:62;12426:4;12441:15;;;;;;;;;;;12459:11;12409:8;:62::i;:::-;12482:15;;;;;;;;;;;:66;;;12563:11;12589:1;12605:4;12632;12652:15;12482:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12270:416;6081:5:::0;6072:6;;:14;;;;;;;;;;;;;;;;;;12203:483;:::o;10503:1692::-;10542:23;10568:24;10586:4;10568:9;:24::i;:::-;10542:50;;10603:25;10670:18;;10652:15;;10631:18;;:36;;;;:::i;:::-;:57;;;;:::i;:::-;10603:85;;10699:12;10754:1;10735:15;:20;:46;;;;10780:1;10759:17;:22;10735:46;10732:60;;;10784:7;;;;;10732:60;10846:2;10825:18;;:23;;;;:::i;:::-;10807:15;:41;10804:114;;;10904:2;10883:18;;:23;;;;:::i;:::-;10865:41;;10804:114;10987:23;11072:1;11052:17;11031:18;;11013:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;10987:86;;11084:26;11113:36;11133:15;11113;:19;;:36;;;;:::i;:::-;11084:65;;11170:25;11198:21;11170:49;;11232:36;11249:18;11232:16;:36::i;:::-;11290:18;11311:44;11337:17;11311:21;:25;;:44;;;;:::i;:::-;11290:65;;11376:20;11399:54;11435:17;11399:31;11414:15;;11399:10;:14;;:31;;;;:::i;:::-;:35;;:54;;;;:::i;:::-;11376:77;;11464:23;11490:57;11529:17;11490:34;11505:18;;11490:10;:14;;:34;;;;:::i;:::-;:38;;:57;;;;:::i;:::-;11464:83;;11578:23;11632:15;11617:12;11604:10;:25;;;;:::i;:::-;:43;;;;:::i;:::-;11578:69;;11699:1;11678:18;:22;;;;11729:1;11711:15;:19;;;;11762:1;11741:18;:22;;;;11805:13;;;;;;;;;;;11797:27;;11832:12;11797:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11784:65;;;;;11891:1;11873:15;:19;:42;;;;;11914:1;11896:15;:19;11873:42;11870:210;;;11931:46;11944:15;11961;11931:12;:46::i;:::-;11997:71;12012:18;12032:15;12049:18;;11997:71;;;;;;;;:::i;:::-;;;;;;;;11870:210;12131:16;;;;;;;;;;;12123:30;;12161:21;12123:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12110:77;;;;;10531:1664;;;;;;;;;;10503:1692;:::o;18391:389::-;18516:7;18512:129;;18540:14;:12;:14::i;:::-;18512:129;;;18596:33;18606:6;18614;18622;18596:9;:33::i;:::-;18587:42;;18512:129;18653:44;18671:6;18679:9;18690:6;18653:17;:44::i;:::-;18722:7;18718:55;;18746:15;:13;:15::i;:::-;18718:55;18391:389;;;;;:::o;1262:136::-;1320:7;1347:43;1351:1;1354;1347:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1340:50;;1262:136;;;;:::o;1604:246::-;1662:7;1691:1;1686;:6;1682:47;;;1716:1;1709:8;;;;1682:47;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1784:1;1779;1775;:5;;;;:::i;:::-;:10;1767:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1841:1;1834:8;;;1604:246;;;;;:::o;1858:132::-;1916:7;1943:39;1947:1;1950;1943:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1936:46;;1858:132;;;;:::o;12694:423::-;12775:62;12792:4;12807:15;;;;;;;;;;;12825:11;12775:8;:62::i;:::-;12848:15;;;;;;;;;;;:31;;;12887:9;12920:4;12940:11;12966:1;13009;13052:16;;;;;;;;;;;13083:15;12848:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12694:423;;:::o;17178:726::-;17244:1;17224:16;;:21;:46;;;;;17269:1;17249:16;;:21;17224:46;:68;;;;;17291:1;17274:13;;:18;17224:68;:94;;;;;17317:1;17296:17;;:22;17224:94;:120;;;;;17343:1;17322:17;;:22;17224:120;:143;;;;;17366:1;17348:14;;:19;17224:143;17221:155;;;17369:7;;17221:155;17423:16;;17396:24;:43;;;;17477:16;;17450:24;:43;;;;17528:13;;17504:21;:37;;;;17580:17;;17552:25;:45;;;;17636:17;;17608:25;:45;;;;17689:14;;17664:22;:39;;;;17743:1;17724:16;:20;;;;17774:1;17755:16;:20;;;;17802:1;17786:13;:17;;;;17834:1;17814:17;:21;;;;17866:1;17846:17;:21;;;;17895:1;17878:14;:18;;;;17178:726;:::o;19063:1147::-;19144:7;19164:18;19193:20;19224:14;19249:15;19320:12;19299:17;;19278:18;;:38;;;;:::i;:::-;:54;19275:532;;19361:2;19348:15;;19387:2;19378:11;;19275:532;;;19435:21;19449:6;19435:13;:21::i;:::-;19422:34;;19475:6;19471:325;;;19517:17;;19502:32;;19562:17;;19553:26;;19608:14;;19598:24;;19471:325;;;19678:16;;19663:31;;19722:16;;19713:25;;19767:13;;19757:23;;19471:325;19275:532;19819:12;19834:31;19861:3;19834:22;19845:10;19834:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;19819:46;;19912:10;19902:7;19895:4;:14;;;;:::i;:::-;:27;;;;:::i;:::-;19876:15;;:46;;;;;;;:::i;:::-;;;;;;;;19977:10;19962:12;19955:4;:19;;;;:::i;:::-;:32;;;;:::i;:::-;19933:18;;:54;;;;;;;:::i;:::-;;;;;;;;20036:10;20027:6;20020:4;:13;;;;:::i;:::-;:26;;;;:::i;:::-;19998:18;;:48;;;;;;;:::i;:::-;;;;;;;;20081:1;20074:4;:8;20071:86;;;20099:46;20117:6;20133:4;20140;20099:17;:46::i;:::-;20071:86;20198:4;20188:14;;;;;:::i;:::-;;;;20181:21;;;;;;;19063:1147;;;;;:::o;18788:267::-;18904:28;18924:7;18904;:15;18912:6;18904:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18886:7;:15;18894:6;18886:15;;;;;;;;;;;;;;;:46;;;;18964:31;18987:7;18964;:18;18972:9;18964:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;18943:7;:18;18951:9;18943:18;;;;;;;;;;;;;;;:52;;;;19028:9;19011:36;;19020:6;19011:36;;;19039:7;19011:36;;;;;;:::i;:::-;;;;;;;;18788:267;;;:::o;17916:359::-;17979:24;;17960:16;:43;;;;18033:24;;18014:16;:43;;;;18084:21;;18068:13;:37;;;;18136:25;;18116:17;:45;;;;18192:25;;18172:17;:45;;;;18245:22;;18228:14;:39;;;;17916:359::o;1998:189::-;2084:7;2116:1;2112;:5;2119:12;2104:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2143:9;2159:1;2155;:5;;;;:::i;:::-;2143:17;;2178:1;2171:8;;;1998:189;;;;;:::o;20833:253::-;20890:7;20914:6;20910:100;;;20984:14;;20964:17;;20944;;:37;;;;:::i;:::-;:54;;;;:::i;:::-;20937:61;;;;20910:100;21065:13;;21046:16;;21027;;:35;;;;:::i;:::-;:51;;;;:::i;:::-;21020:58;;20833:253;;;;:::o;1075:179::-;1133:7;1153:9;1169:1;1165;:5;;;;:::i;:::-;1153:17;;1194:1;1189;:6;;1181:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1245:1;1238:8;;;1075:179;;;;:::o;24:722: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:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1578:137;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1721:139;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1866:143;;;;:::o;2015:329::-;2074:6;2123:2;2111:9;2102:7;2098:23;2094:32;2091:119;;;2129:79;;:::i;:::-;2091:119;2249:1;2274:53;2319:7;2310:6;2299:9;2295:22;2274:53;:::i;:::-;2264:63;;2220:117;2015:329;;;;:::o;2350:351::-;2420:6;2469:2;2457:9;2448:7;2444:23;2440:32;2437:119;;;2475:79;;:::i;:::-;2437:119;2595:1;2620:64;2676:7;2667:6;2656:9;2652:22;2620:64;:::i;:::-;2610:74;;2566:128;2350:351;;;;:::o;2707:474::-;2775:6;2783;2832:2;2820:9;2811:7;2807:23;2803:32;2800:119;;;2838:79;;:::i;:::-;2800:119;2958:1;2983:53;3028:7;3019:6;3008:9;3004:22;2983:53;:::i;:::-;2973:63;;2929:117;3085:2;3111:53;3156:7;3147:6;3136:9;3132:22;3111:53;:::i;:::-;3101:63;;3056:118;2707:474;;;;;:::o;3187:619::-;3264:6;3272;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3710:2;3736:53;3781:7;3772:6;3761:9;3757:22;3736:53;:::i;:::-;3726:63;;3681:118;3187:619;;;;;:::o;3812:474::-;3880:6;3888;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;4190:2;4216:53;4261:7;4252:6;4241:9;4237:22;4216:53;:::i;:::-;4206:63;;4161:118;3812:474;;;;;:::o;4292:539::-;4376:6;4425:2;4413:9;4404:7;4400:23;4396:32;4393:119;;;4431:79;;:::i;:::-;4393:119;4579:1;4568:9;4564:17;4551:31;4609:18;4601:6;4598:30;4595:117;;;4631:79;;:::i;:::-;4595:117;4736:78;4806:7;4797:6;4786:9;4782:22;4736:78;:::i;:::-;4726:88;;4522:302;4292:539;;;;:::o;4837:323::-;4893:6;4942:2;4930:9;4921:7;4917:23;4913:32;4910:119;;;4948:79;;:::i;:::-;4910:119;5068:1;5093:50;5135:7;5126:6;5115:9;5111:22;5093:50;:::i;:::-;5083:60;;5039:114;4837:323;;;;:::o;5166:345::-;5233:6;5282:2;5270:9;5261:7;5257:23;5253:32;5250:119;;;5288:79;;:::i;:::-;5250:119;5408:1;5433:61;5486:7;5477:6;5466:9;5462:22;5433:61;:::i;:::-;5423:71;;5379:125;5166:345;;;;:::o;5517:329::-;5576:6;5625:2;5613:9;5604:7;5600:23;5596:32;5593:119;;;5631:79;;:::i;:::-;5593:119;5751:1;5776:53;5821:7;5812:6;5801:9;5797:22;5776:53;:::i;:::-;5766:63;;5722:117;5517:329;;;;:::o;5852:619::-;5929:6;5937;5945;5994:2;5982:9;5973:7;5969:23;5965:32;5962:119;;;6000:79;;:::i;:::-;5962:119;6120:1;6145:53;6190:7;6181:6;6170:9;6166:22;6145:53;:::i;:::-;6135:63;;6091:117;6247:2;6273:53;6318:7;6309:6;6298:9;6294:22;6273:53;:::i;:::-;6263:63;;6218:118;6375:2;6401:53;6446:7;6437:6;6426:9;6422:22;6401:53;:::i;:::-;6391:63;;6346:118;5852:619;;;;;:::o;6477:663::-;6565:6;6573;6581;6630:2;6618:9;6609:7;6605:23;6601:32;6598:119;;;6636:79;;:::i;:::-;6598:119;6756:1;6781:64;6837:7;6828:6;6817:9;6813:22;6781:64;:::i;:::-;6771:74;;6727:128;6894:2;6920:64;6976:7;6967:6;6956:9;6952:22;6920:64;:::i;:::-;6910:74;;6865:129;7033:2;7059:64;7115:7;7106:6;7095:9;7091:22;7059:64;:::i;:::-;7049:74;;7004:129;6477:663;;;;;:::o;7146:179::-;7215:10;7236:46;7278:3;7270:6;7236:46;:::i;:::-;7314:4;7309:3;7305:14;7291:28;;7146:179;;;;:::o;7331:147::-;7426:45;7465:5;7426:45;:::i;:::-;7421:3;7414:58;7331:147;;:::o;7484:108::-;7561:24;7579:5;7561:24;:::i;:::-;7556:3;7549:37;7484:108;;:::o;7598:118::-;7685:24;7703:5;7685:24;:::i;:::-;7680:3;7673:37;7598:118;;:::o;7752:732::-;7871:3;7900:54;7948:5;7900:54;:::i;:::-;7970:86;8049:6;8044:3;7970:86;:::i;:::-;7963:93;;8080:56;8130:5;8080:56;:::i;:::-;8159:7;8190:1;8175:284;8200:6;8197:1;8194:13;8175:284;;;8276:6;8270:13;8303:63;8362:3;8347:13;8303:63;:::i;:::-;8296:70;;8389:60;8442:6;8389:60;:::i;:::-;8379:70;;8235:224;8222:1;8219;8215:9;8210:14;;8175:284;;;8179:14;8475:3;8468:10;;7876:608;;;7752:732;;;;:::o;8490:109::-;8571:21;8586:5;8571:21;:::i;:::-;8566:3;8559:34;8490:109;;:::o;8605:147::-;8700:45;8739:5;8700:45;:::i;:::-;8695:3;8688:58;8605:147;;:::o;8758:364::-;8846:3;8874:39;8907:5;8874:39;:::i;:::-;8929:71;8993:6;8988:3;8929:71;:::i;:::-;8922:78;;9009:52;9054:6;9049:3;9042:4;9035:5;9031:16;9009:52;:::i;:::-;9086:29;9108:6;9086:29;:::i;:::-;9081:3;9077:39;9070:46;;8850:272;8758:364;;;;:::o;9128:366::-;9270:3;9291:67;9355:2;9350:3;9291:67;:::i;:::-;9284:74;;9367:93;9456:3;9367:93;:::i;:::-;9485:2;9480:3;9476:12;9469:19;;9128:366;;;:::o;9500:::-;9642:3;9663:67;9727:2;9722:3;9663:67;:::i;:::-;9656:74;;9739:93;9828:3;9739:93;:::i;:::-;9857:2;9852:3;9848:12;9841:19;;9500:366;;;:::o;9872:::-;10014:3;10035:67;10099:2;10094:3;10035:67;:::i;:::-;10028:74;;10111:93;10200:3;10111:93;:::i;:::-;10229:2;10224:3;10220:12;10213:19;;9872:366;;;:::o;10244:::-;10386:3;10407:67;10471:2;10466:3;10407:67;:::i;:::-;10400:74;;10483:93;10572:3;10483:93;:::i;:::-;10601:2;10596:3;10592:12;10585:19;;10244:366;;;:::o;10616:::-;10758:3;10779:67;10843:2;10838:3;10779:67;:::i;:::-;10772:74;;10855:93;10944:3;10855:93;:::i;:::-;10973:2;10968:3;10964:12;10957:19;;10616:366;;;:::o;10988:::-;11130:3;11151:67;11215:2;11210:3;11151:67;:::i;:::-;11144:74;;11227:93;11316:3;11227:93;:::i;:::-;11345:2;11340:3;11336:12;11329:19;;10988:366;;;:::o;11360:::-;11502:3;11523:67;11587:2;11582:3;11523:67;:::i;:::-;11516:74;;11599:93;11688:3;11599:93;:::i;:::-;11717:2;11712:3;11708:12;11701:19;;11360:366;;;:::o;11732:::-;11874:3;11895:67;11959:2;11954:3;11895:67;:::i;:::-;11888:74;;11971:93;12060:3;11971:93;:::i;:::-;12089:2;12084:3;12080:12;12073:19;;11732:366;;;:::o;12104:::-;12246:3;12267:67;12331:2;12326:3;12267:67;:::i;:::-;12260:74;;12343:93;12432:3;12343:93;:::i;:::-;12461:2;12456:3;12452:12;12445:19;;12104:366;;;:::o;12476:::-;12618:3;12639:67;12703:2;12698:3;12639:67;:::i;:::-;12632:74;;12715:93;12804:3;12715:93;:::i;:::-;12833:2;12828:3;12824:12;12817:19;;12476:366;;;:::o;12848:::-;12990:3;13011:67;13075:2;13070:3;13011:67;:::i;:::-;13004:74;;13087:93;13176:3;13087:93;:::i;:::-;13205:2;13200:3;13196:12;13189:19;;12848:366;;;:::o;13220:::-;13362:3;13383:67;13447:2;13442:3;13383:67;:::i;:::-;13376:74;;13459:93;13548:3;13459:93;:::i;:::-;13577:2;13572:3;13568:12;13561:19;;13220:366;;;:::o;13592:::-;13734:3;13755:67;13819:2;13814:3;13755:67;:::i;:::-;13748:74;;13831:93;13920:3;13831:93;:::i;:::-;13949:2;13944:3;13940:12;13933:19;;13592:366;;;:::o;13964:398::-;14123:3;14144:83;14225:1;14220:3;14144:83;:::i;:::-;14137:90;;14236:93;14325:3;14236:93;:::i;:::-;14354:1;14349:3;14345:11;14338:18;;13964:398;;;:::o;14368:366::-;14510:3;14531:67;14595:2;14590:3;14531:67;:::i;:::-;14524:74;;14607:93;14696:3;14607:93;:::i;:::-;14725:2;14720:3;14716:12;14709:19;;14368:366;;;:::o;14740:::-;14882:3;14903:67;14967:2;14962:3;14903:67;:::i;:::-;14896:74;;14979:93;15068:3;14979:93;:::i;:::-;15097:2;15092:3;15088:12;15081:19;;14740:366;;;:::o;15112:::-;15254:3;15275:67;15339:2;15334:3;15275:67;:::i;:::-;15268:74;;15351:93;15440:3;15351:93;:::i;:::-;15469:2;15464:3;15460:12;15453:19;;15112:366;;;:::o;15484:::-;15626:3;15647:67;15711:2;15706:3;15647:67;:::i;:::-;15640:74;;15723:93;15812:3;15723:93;:::i;:::-;15841:2;15836:3;15832:12;15825:19;;15484:366;;;:::o;15856:::-;15998:3;16019:67;16083:2;16078:3;16019:67;:::i;:::-;16012:74;;16095:93;16184:3;16095:93;:::i;:::-;16213:2;16208:3;16204:12;16197:19;;15856:366;;;:::o;16228:::-;16370:3;16391:67;16455:2;16450:3;16391:67;:::i;:::-;16384:74;;16467:93;16556:3;16467:93;:::i;:::-;16585:2;16580:3;16576:12;16569:19;;16228:366;;;:::o;16600:::-;16742:3;16763:67;16827:2;16822:3;16763:67;:::i;:::-;16756:74;;16839:93;16928:3;16839:93;:::i;:::-;16957:2;16952:3;16948:12;16941:19;;16600:366;;;:::o;16972:118::-;17059:24;17077:5;17059:24;:::i;:::-;17054:3;17047:37;16972:118;;:::o;17096:112::-;17179:22;17195:5;17179:22;:::i;:::-;17174:3;17167:35;17096:112;;:::o;17214:379::-;17398:3;17420:147;17563:3;17420:147;:::i;:::-;17413:154;;17584:3;17577:10;;17214:379;;;:::o;17599:222::-;17692:4;17730:2;17719:9;17715:18;17707:26;;17743:71;17811:1;17800:9;17796:17;17787:6;17743:71;:::i;:::-;17599:222;;;;:::o;17827:332::-;17948:4;17986:2;17975:9;17971:18;17963:26;;17999:71;18067:1;18056:9;18052:17;18043:6;17999:71;:::i;:::-;18080:72;18148:2;18137:9;18133:18;18124:6;18080:72;:::i;:::-;17827:332;;;;;:::o;18165:::-;18286:4;18324:2;18313:9;18309:18;18301:26;;18337:71;18405:1;18394:9;18390:17;18381:6;18337:71;:::i;:::-;18418:72;18486:2;18475:9;18471:18;18462:6;18418:72;:::i;:::-;18165:332;;;;;:::o;18503:823::-;18760:4;18798:3;18787:9;18783:19;18775:27;;18812:71;18880:1;18869:9;18865:17;18856:6;18812:71;:::i;:::-;18893:72;18961:2;18950:9;18946:18;18937:6;18893:72;:::i;:::-;18975:80;19051:2;19040:9;19036:18;19027:6;18975:80;:::i;:::-;19065;19141:2;19130:9;19126:18;19117:6;19065:80;:::i;:::-;19155:81;19231:3;19220:9;19216:19;19207:6;19155:81;:::i;:::-;19246:73;19314:3;19303:9;19299:19;19290:6;19246:73;:::i;:::-;18503:823;;;;;;;;;:::o;19332:807::-;19581:4;19619:3;19608:9;19604:19;19596:27;;19633:71;19701:1;19690:9;19686:17;19677:6;19633:71;:::i;:::-;19714:72;19782:2;19771:9;19767:18;19758:6;19714:72;:::i;:::-;19796:80;19872:2;19861:9;19857:18;19848:6;19796:80;:::i;:::-;19886;19962:2;19951:9;19947:18;19938:6;19886:80;:::i;:::-;19976:73;20044:3;20033:9;20029:19;20020:6;19976:73;:::i;:::-;20059;20127:3;20116:9;20112:19;20103:6;20059:73;:::i;:::-;19332:807;;;;;;;;;:::o;20145:210::-;20232:4;20270:2;20259:9;20255:18;20247:26;;20283:65;20345:1;20334:9;20330:17;20321:6;20283:65;:::i;:::-;20145:210;;;;:::o;20361:313::-;20474:4;20512:2;20501:9;20497:18;20489:26;;20561:9;20555:4;20551:20;20547:1;20536:9;20532:17;20525:47;20589:78;20662:4;20653:6;20589:78;:::i;:::-;20581:86;;20361:313;;;;:::o;20680:419::-;20846:4;20884:2;20873:9;20869:18;20861:26;;20933:9;20927:4;20923:20;20919:1;20908:9;20904:17;20897:47;20961:131;21087:4;20961:131;:::i;:::-;20953:139;;20680:419;;;:::o;21105:::-;21271:4;21309:2;21298:9;21294:18;21286:26;;21358:9;21352:4;21348:20;21344:1;21333:9;21329:17;21322:47;21386:131;21512:4;21386:131;:::i;:::-;21378:139;;21105:419;;;:::o;21530:::-;21696:4;21734:2;21723:9;21719:18;21711:26;;21783:9;21777:4;21773:20;21769:1;21758:9;21754:17;21747:47;21811:131;21937:4;21811:131;:::i;:::-;21803:139;;21530:419;;;:::o;21955:::-;22121:4;22159:2;22148:9;22144:18;22136:26;;22208:9;22202:4;22198:20;22194:1;22183:9;22179:17;22172:47;22236:131;22362:4;22236:131;:::i;:::-;22228:139;;21955:419;;;:::o;22380:::-;22546:4;22584:2;22573:9;22569:18;22561:26;;22633:9;22627:4;22623:20;22619:1;22608:9;22604:17;22597:47;22661:131;22787:4;22661:131;:::i;:::-;22653:139;;22380:419;;;:::o;22805:::-;22971:4;23009:2;22998:9;22994:18;22986:26;;23058:9;23052:4;23048:20;23044:1;23033:9;23029:17;23022:47;23086:131;23212:4;23086:131;:::i;:::-;23078:139;;22805:419;;;:::o;23230:::-;23396:4;23434:2;23423:9;23419:18;23411:26;;23483:9;23477:4;23473:20;23469:1;23458:9;23454:17;23447:47;23511:131;23637:4;23511:131;:::i;:::-;23503:139;;23230:419;;;:::o;23655:::-;23821:4;23859:2;23848:9;23844:18;23836:26;;23908:9;23902:4;23898:20;23894:1;23883:9;23879:17;23872:47;23936:131;24062:4;23936:131;:::i;:::-;23928:139;;23655:419;;;:::o;24080:::-;24246:4;24284:2;24273:9;24269:18;24261:26;;24333:9;24327:4;24323:20;24319:1;24308:9;24304:17;24297:47;24361:131;24487:4;24361:131;:::i;:::-;24353:139;;24080:419;;;:::o;24505:::-;24671:4;24709:2;24698:9;24694:18;24686:26;;24758:9;24752:4;24748:20;24744:1;24733:9;24729:17;24722:47;24786:131;24912:4;24786:131;:::i;:::-;24778:139;;24505:419;;;:::o;24930:::-;25096:4;25134:2;25123:9;25119:18;25111:26;;25183:9;25177:4;25173:20;25169:1;25158:9;25154:17;25147:47;25211:131;25337:4;25211:131;:::i;:::-;25203:139;;24930:419;;;:::o;25355:::-;25521:4;25559:2;25548:9;25544:18;25536:26;;25608:9;25602:4;25598:20;25594:1;25583:9;25579:17;25572:47;25636:131;25762:4;25636:131;:::i;:::-;25628:139;;25355:419;;;:::o;25780:::-;25946:4;25984:2;25973:9;25969:18;25961:26;;26033:9;26027:4;26023:20;26019:1;26008:9;26004:17;25997:47;26061:131;26187:4;26061:131;:::i;:::-;26053:139;;25780:419;;;:::o;26205:::-;26371:4;26409:2;26398:9;26394:18;26386:26;;26458:9;26452:4;26448:20;26444:1;26433:9;26429:17;26422:47;26486:131;26612:4;26486:131;:::i;:::-;26478:139;;26205:419;;;:::o;26630:::-;26796:4;26834:2;26823:9;26819:18;26811:26;;26883:9;26877:4;26873:20;26869:1;26858:9;26854:17;26847:47;26911:131;27037:4;26911:131;:::i;:::-;26903:139;;26630:419;;;:::o;27055:::-;27221:4;27259:2;27248:9;27244:18;27236:26;;27308:9;27302:4;27298:20;27294:1;27283:9;27279:17;27272:47;27336:131;27462:4;27336:131;:::i;:::-;27328:139;;27055:419;;;:::o;27480:::-;27646:4;27684:2;27673:9;27669:18;27661:26;;27733:9;27727:4;27723:20;27719:1;27708:9;27704:17;27697:47;27761:131;27887:4;27761:131;:::i;:::-;27753:139;;27480:419;;;:::o;27905:::-;28071:4;28109:2;28098:9;28094:18;28086:26;;28158:9;28152:4;28148:20;28144:1;28133:9;28129:17;28122:47;28186:131;28312:4;28186:131;:::i;:::-;28178:139;;27905:419;;;:::o;28330:::-;28496:4;28534:2;28523:9;28519:18;28511:26;;28583:9;28577:4;28573:20;28569:1;28558:9;28554:17;28547:47;28611:131;28737:4;28611:131;:::i;:::-;28603:139;;28330:419;;;:::o;28755:::-;28921:4;28959:2;28948:9;28944:18;28936:26;;29008:9;29002:4;28998:20;28994:1;28983:9;28979:17;28972:47;29036:131;29162:4;29036:131;:::i;:::-;29028:139;;28755:419;;;:::o;29180:222::-;29273:4;29311:2;29300:9;29296:18;29288:26;;29324:71;29392:1;29381:9;29377:17;29368:6;29324:71;:::i;:::-;29180:222;;;;:::o;29408:831::-;29671:4;29709:3;29698:9;29694:19;29686:27;;29723:71;29791:1;29780:9;29776:17;29767:6;29723:71;:::i;:::-;29804:80;29880:2;29869:9;29865:18;29856:6;29804:80;:::i;:::-;29931:9;29925:4;29921:20;29916:2;29905:9;29901:18;29894:48;29959:108;30062:4;30053:6;29959:108;:::i;:::-;29951:116;;30077:72;30145:2;30134:9;30130:18;30121:6;30077:72;:::i;:::-;30159:73;30227:3;30216:9;30212:19;30203:6;30159:73;:::i;:::-;29408:831;;;;;;;;:::o;30245:442::-;30394:4;30432:2;30421:9;30417:18;30409:26;;30445:71;30513:1;30502:9;30498:17;30489:6;30445:71;:::i;:::-;30526:72;30594:2;30583:9;30579:18;30570:6;30526:72;:::i;:::-;30608;30676:2;30665:9;30661:18;30652:6;30608:72;:::i;:::-;30245:442;;;;;;:::o;30693:214::-;30782:4;30820:2;30809:9;30805:18;30797:26;;30833:67;30897:1;30886:9;30882:17;30873:6;30833:67;:::i;:::-;30693:214;;;;:::o;30913:129::-;30947:6;30974:20;;:::i;:::-;30964:30;;31003:33;31031:4;31023:6;31003:33;:::i;:::-;30913:129;;;:::o;31048:75::-;31081:6;31114:2;31108:9;31098:19;;31048:75;:::o;31129:311::-;31206:4;31296:18;31288:6;31285:30;31282:56;;;31318:18;;:::i;:::-;31282:56;31368:4;31360:6;31356:17;31348:25;;31428:4;31422;31418:15;31410:23;;31129:311;;;:::o;31446:132::-;31513:4;31536:3;31528:11;;31566:4;31561:3;31557:14;31549:22;;31446:132;;;:::o;31584:114::-;31651:6;31685:5;31679:12;31669:22;;31584:114;;;:::o;31704:99::-;31756:6;31790:5;31784:12;31774:22;;31704:99;;;:::o;31809:113::-;31879:4;31911;31906:3;31902:14;31894:22;;31809:113;;;:::o;31928:184::-;32027:11;32061:6;32056:3;32049:19;32101:4;32096:3;32092:14;32077:29;;31928:184;;;;:::o;32118:147::-;32219:11;32256:3;32241:18;;32118:147;;;;:::o;32271:169::-;32355:11;32389:6;32384:3;32377:19;32429:4;32424:3;32420:14;32405:29;;32271:169;;;;:::o;32446:305::-;32486:3;32505:20;32523:1;32505:20;:::i;:::-;32500:25;;32539:20;32557:1;32539:20;:::i;:::-;32534:25;;32693:1;32625:66;32621:74;32618:1;32615:81;32612:107;;;32699:18;;:::i;:::-;32612:107;32743:1;32740;32736:9;32729:16;;32446:305;;;;:::o;32757:185::-;32797:1;32814:20;32832:1;32814:20;:::i;:::-;32809:25;;32848:20;32866:1;32848:20;:::i;:::-;32843:25;;32887:1;32877:35;;32892:18;;:::i;:::-;32877:35;32934:1;32931;32927:9;32922:14;;32757:185;;;;:::o;32948:348::-;32988:7;33011:20;33029:1;33011:20;:::i;:::-;33006:25;;33045:20;33063:1;33045:20;:::i;:::-;33040:25;;33233:1;33165:66;33161:74;33158:1;33155:81;33150:1;33143:9;33136:17;33132:105;33129:131;;;33240:18;;:::i;:::-;33129:131;33288:1;33285;33281:9;33270:20;;32948:348;;;;:::o;33302:191::-;33342:4;33362:20;33380:1;33362:20;:::i;:::-;33357:25;;33396:20;33414:1;33396:20;:::i;:::-;33391:25;;33435:1;33432;33429:8;33426:34;;;33440:18;;:::i;:::-;33426:34;33485:1;33482;33478:9;33470:17;;33302:191;;;;:::o;33499:96::-;33536:7;33565:24;33583:5;33565:24;:::i;:::-;33554:35;;33499:96;;;:::o;33601:90::-;33635:7;33678:5;33671:13;33664:21;33653:32;;33601:90;;;:::o;33697:126::-;33734:7;33774:42;33767:5;33763:54;33752:65;;33697:126;;;:::o;33829:77::-;33866:7;33895:5;33884:16;;33829:77;;;:::o;33912:86::-;33947:7;33987:4;33980:5;33976:16;33965:27;;33912:86;;;:::o;34004:134::-;34062:9;34095:37;34126:5;34095:37;:::i;:::-;34082:50;;34004:134;;;:::o;34144:121::-;34202:9;34235:24;34253:5;34235:24;:::i;:::-;34222:37;;34144:121;;;:::o;34271:126::-;34321:9;34354:37;34385:5;34354:37;:::i;:::-;34341:50;;34271:126;;;:::o;34403:113::-;34453:9;34486:24;34504:5;34486:24;:::i;:::-;34473:37;;34403:113;;;:::o;34522:307::-;34590:1;34600:113;34614:6;34611:1;34608:13;34600:113;;;34699:1;34694:3;34690:11;34684:18;34680:1;34675:3;34671:11;34664:39;34636:2;34633:1;34629:10;34624:15;;34600:113;;;34731:6;34728:1;34725:13;34722:101;;;34811:1;34802:6;34797:3;34793:16;34786:27;34722:101;34571:258;34522:307;;;:::o;34835:281::-;34918:27;34940:4;34918:27;:::i;:::-;34910:6;34906:40;35048:6;35036:10;35033:22;35012:18;35000:10;34997:34;34994:62;34991:88;;;35059:18;;:::i;:::-;34991:88;35099:10;35095:2;35088:22;34878:238;34835:281;;:::o;35122:233::-;35161:3;35184:24;35202:5;35184:24;:::i;:::-;35175:33;;35230:66;35223:5;35220:77;35217:103;;;35300:18;;:::i;:::-;35217:103;35347:1;35340:5;35336:13;35329:20;;35122:233;;;:::o;35361:180::-;35409:77;35406:1;35399:88;35506:4;35503:1;35496:15;35530:4;35527:1;35520:15;35547:180;35595:77;35592:1;35585:88;35692:4;35689:1;35682:15;35716:4;35713:1;35706:15;35733:180;35781:77;35778:1;35771:88;35878:4;35875:1;35868:15;35902:4;35899:1;35892:15;35919:180;35967:77;35964:1;35957:88;36064:4;36061:1;36054:15;36088:4;36085:1;36078:15;36105:117;36214:1;36211;36204:12;36228:117;36337:1;36334;36327:12;36351:117;36460:1;36457;36450:12;36474:117;36583:1;36580;36573:12;36597:102;36638:6;36689:2;36685:7;36680:2;36673:5;36669:14;36665:28;36655:38;;36597:102;;;:::o;36705:222::-;36845:34;36841:1;36833:6;36829:14;36822:58;36914:5;36909:2;36901:6;36897:15;36890:30;36705:222;:::o;36933:221::-;37073:34;37069:1;37061:6;37057:14;37050:58;37142:4;37137:2;37129:6;37125:15;37118:29;36933:221;:::o;37160:177::-;37300:29;37296:1;37288:6;37284:14;37277:53;37160:177;:::o;37343:223::-;37483:34;37479:1;37471:6;37467:14;37460:58;37552:6;37547:2;37539:6;37535:15;37528:31;37343:223;:::o;37572:228::-;37712:34;37708:1;37700:6;37696:14;37689:58;37781:11;37776:2;37768:6;37764:15;37757:36;37572:228;:::o;37806:220::-;37946:34;37942:1;37934:6;37930:14;37923:58;38015:3;38010:2;38002:6;37998:15;37991:28;37806:220;:::o;38032:179::-;38172:31;38168:1;38160:6;38156:14;38149:55;38032:179;:::o;38217:182::-;38357:34;38353:1;38345:6;38341:14;38334:58;38217:182;:::o;38405:180::-;38545:32;38541:1;38533:6;38529:14;38522:56;38405:180;:::o;38591:228::-;38731:34;38727:1;38719:6;38715:14;38708:58;38800:11;38795:2;38787:6;38783:15;38776:36;38591:228;:::o;38825:222::-;38965:34;38961:1;38953:6;38949:14;38942:58;39034:5;39029:2;39021:6;39017:15;39010:30;38825:222;:::o;39053:239::-;39193:34;39189:1;39181:6;39177:14;39170:58;39262:22;39257:2;39249:6;39245:15;39238:47;39053:239;:::o;39298:224::-;39438:34;39434:1;39426:6;39422:14;39415:58;39507:7;39502:2;39494:6;39490:15;39483:32;39298:224;:::o;39528:114::-;;:::o;39648:223::-;39788:34;39784:1;39776:6;39772:14;39765:58;39857:6;39852:2;39844:6;39840:15;39833:31;39648:223;:::o;39877:173::-;40017:25;40013:1;40005:6;40001:14;39994:49;39877:173;:::o;40056:238::-;40196:34;40192:1;40184:6;40180:14;40173:58;40265:21;40260:2;40252:6;40248:15;40241:46;40056:238;:::o;40300:182::-;40440:34;40436:1;40428:6;40424:14;40417:58;40300:182;:::o;40488:229::-;40628:34;40624:1;40616:6;40612:14;40605:58;40697:12;40692:2;40684:6;40680:15;40673:37;40488:229;:::o;40723:222::-;40863:34;40859:1;40851:6;40847:14;40840:58;40932:5;40927:2;40919:6;40915:15;40908:30;40723:222;:::o;40951:230::-;41091:34;41087:1;41079:6;41075:14;41068:58;41160:13;41155:2;41147:6;41143:15;41136:38;40951:230;:::o;41187:122::-;41260:24;41278:5;41260:24;:::i;:::-;41253:5;41250:35;41240:63;;41299:1;41296;41289:12;41240:63;41187:122;:::o;41315:116::-;41385:21;41400:5;41385:21;:::i;:::-;41378:5;41375:32;41365:60;;41421:1;41418;41411:12;41365:60;41315:116;:::o;41437:122::-;41510:24;41528:5;41510:24;:::i;:::-;41503:5;41500:35;41490:63;;41549:1;41546;41539:12;41490:63;41437:122;:::o

Swarm Source

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