ETH Price: $2,675.51 (+10.37%)
Gas: 1 Gwei

Token

Raster (RASTER)
 

Overview

Max Total Supply

1,000,000 RASTER

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,240.804232753 RASTER

Value
$0.00
0x3a0cb1d6b195ea497b060cc99a292e37e5d27529
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:
Raster

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-09
*/

// Telegram: https://t.me/rasterofficial

// Website: https://raster.finance

// Twitter: https://twitter.com/0xraster

// SPDX-License-Identifier: MIT


pragma solidity 0.8.17;

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) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract Raster is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    address payable public Wallet_Marketing = payable(0xBcc0bB29B0B73dfa026b7b5135D0be6696689103); 
    address payable public Wallet_Utility = payable(0xd2D4BD0C8B65e3d5a164acED7BB02d264561E8F0);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 
    address payable public constant Wallet_Liquidity = payable(0x344e9644b00bAdd7E8768664A704E55209512E54); 
    

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1000000 * 10**_decimals;
    string private constant _name = "Raster"; 
    string private constant _symbol = unicode"RASTER"; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 5; 

    uint256 public _Tax_On_Buy = 5;
    uint256 public _Tax_On_Sell = 5;

    uint256 public Percent_Marketing = 60;
    uint256 public Percent_Utility = 20;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_Liquidity = 20; 

    uint256 public _maxWalletToken = _tTotal * 3 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal * 3 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
                                     
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        _owner = 0x344e9644b00bAdd7E8768664A704E55209512E54;
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;
        _isExcludedFromFee[Wallet_Liquidity] = true;

        emit Transfer(address(0), owner(), _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 view override returns (uint256) {
        return _tTotal;
    }

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

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

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

    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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }


    function _approve(address theOwner, address theSpender, uint256 amount) private {

        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if (to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != Wallet_Liquidity &&
            to != uniswapV2Pair &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}

        if (from != owner() && 
        to != Wallet_Liquidity &&
        from != Wallet_Liquidity ){
            require(amount <= _maxTxAmount, "Over transaction limit.");
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");   

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
        
        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }

            txCount++;

        }

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

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);

        }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Utility / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_Liquidity / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 BNB_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_Liquidity + Percent_Marketing + Percent_Utility);
            uint256 BNB_M = BNB_Total * split_M / 100;

            uint256 split_D = Percent_Utility * 100 / (Percent_Liquidity + Percent_Marketing + Percent_Utility);
            uint256 BNB_D = BNB_Total * split_D / 100;

            addLiquidity(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D), tokens_to_LP_Half);

            sendToWallet(Wallet_Marketing, BNB_M);

            BNB_Total = address(this).balance;
            sendToWallet(Wallet_Utility, BNB_Total);

            }

    function swapTokensForBNB(uint256 tokenAmount) private {

        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 BNBAmount) private {

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Liquidity, 
            block.timestamp
        );
    } 

    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Utility, removeRandom);

    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else if (isBuy){

            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } else {

            uint256 sellFEE = tAmount*_Tax_On_Sell/100;
            uint256 tTransferAmount = tAmount-sellFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;

            }

    }

}

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":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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Utility","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Liquidity","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Utility","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273bcc0bb29b0b73dfa026b7b5135d0be6696689103600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d2d4bd0c8b65e3d5a164aced7bb02d264561e8f0600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000be919062000905565b620f4240620000ce919062000956565b6006556000600760006101000a81548160ff021916908360ff1602179055506005600760016101000a81548160ff021916908360ff16021790555060056008556005600955603c600a556014600b556000600c556014600d55606460036006546200013a919062000956565b620001469190620009d0565b600e55600e54600f556064600360065462000162919062000956565b6200016e9190620009d0565b6010556010546011556001601360156101000a81548160ff0219169083151502179055503480156200019f57600080fd5b5073344e9644b00badd7e8768664a704e55209512e546000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360065460016000620002866200074260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f919062000a72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dd919062000a72565b6040518363ffffffff1660e01b8152600401620003fc92919062000ab5565b6020604051808303816000875af11580156200041c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000442919062000a72565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004d96200074260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006d26200074260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000733919062000af3565b60405180910390a35062000b10565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007f957808604811115620007d157620007d06200076b565b5b6001851615620007e15780820291505b8081029050620007f1856200079a565b9450620007b1565b94509492505050565b600082620008145760019050620008e7565b81620008245760009050620008e7565b81600181146200083d576002811462000848576200087e565b6001915050620008e7565b60ff8411156200085d576200085c6200076b565b5b8360020a9150848211156200087757620008766200076b565b5b50620008e7565b5060208310610133831016604e8410600b8410161715620008b85782820a905083811115620008b257620008b16200076b565b5b620008e7565b620008c78484846001620007a7565b92509050818404811115620008e157620008e06200076b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200091282620008ee565b91506200091f83620008f8565b92506200094e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000802565b905092915050565b60006200096382620008ee565b91506200097083620008ee565b92508282026200098081620008ee565b915082820484148315176200099a57620009996200076b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009dd82620008ee565b9150620009ea83620008ee565b925082620009fd57620009fc620009a1565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a3a8262000a0d565b9050919050565b62000a4c8162000a2d565b811462000a5857600080fd5b50565b60008151905062000a6c8162000a41565b92915050565b60006020828403121562000a8b5762000a8a62000a08565b5b600062000a9b8482850162000a5b565b91505092915050565b62000aaf8162000a2d565b82525050565b600060408201905062000acc600083018562000aa4565b62000adb602083018462000aa4565b9392505050565b62000aed81620008ee565b82525050565b600060208201905062000b0a600083018462000ae2565b92915050565b6131eb8062000b206000396000f3fe6080604052600436106101dc5760003560e01c8063715018a611610102578063a457c2d711610095578063dafd18e911610064578063dafd18e9146106db578063dd62ed3e14610718578063f0684c6814610755578063fcf84b4114610780576101e3565b8063a457c2d71461060b578063a9059cbb14610648578063b1cb158214610685578063b43665e2146106b0576101e3565b8063805c0e0f116100d1578063805c0e0f1461055f5780638da5cb5b1461058a57806395d89b41146105b5578063960ee2f5146105e0576101e3565b8063715018a6146104b5578063768dc710146104cc57806378109e54146105095780637d1db4a514610534576101e3565b8063313ce5671161017a5780634a74bb02116101495780634a74bb02146103f757806355b1c11614610422578063603176251461044d57806370a0823114610478576101e3565b8063313ce5671461033957806339509351146103645780633f70a495146103a157806349bd5a5e146103cc576101e3565b806318160ddd116101b657806318160ddd1461027b57806321dbd9eb146102a6578063220f6696146102d157806323b872dd146102fc576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6107ab565b60405161020a9190612663565b60405180910390f35b34801561021f57600080fd5b5061023a6004803603810190610235919061271e565b6107e8565b6040516102479190612779565b60405180910390f35b34801561025c57600080fd5b50610265610806565b60405161027291906127f3565b60405180910390f35b34801561028757600080fd5b5061029061082c565b60405161029d919061281d565b60405180910390f35b3480156102b257600080fd5b506102bb610836565b6040516102c8919061281d565b60405180910390f35b3480156102dd57600080fd5b506102e661083c565b6040516102f39190612779565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612838565b61084f565b6040516103309190612779565b60405180910390f35b34801561034557600080fd5b5061034e610928565b60405161035b91906128a7565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061271e565b610931565b6040516103989190612779565b60405180910390f35b3480156103ad57600080fd5b506103b66109e4565b6040516103c3919061281d565b60405180910390f35b3480156103d857600080fd5b506103e16109ea565b6040516103ee91906128d1565b60405180910390f35b34801561040357600080fd5b5061040c610a10565b6040516104199190612779565b60405180910390f35b34801561042e57600080fd5b50610437610a23565b604051610444919061281d565b60405180910390f35b34801561045957600080fd5b50610462610a29565b60405161046f919061281d565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a91906128ec565b610a2f565b6040516104ac919061281d565b60405180910390f35b3480156104c157600080fd5b506104ca610a78565b005b3480156104d857600080fd5b506104f360048036038101906104ee91906128ec565b610b36565b6040516105009190612779565b60405180910390f35b34801561051557600080fd5b5061051e610b56565b60405161052b919061281d565b60405180910390f35b34801561054057600080fd5b50610549610b5c565b604051610556919061281d565b60405180910390f35b34801561056b57600080fd5b50610574610b62565b604051610581919061293a565b60405180910390f35b34801561059657600080fd5b5061059f610b68565b6040516105ac91906128d1565b60405180910390f35b3480156105c157600080fd5b506105ca610b91565b6040516105d79190612663565b60405180910390f35b3480156105ec57600080fd5b506105f5610bce565b604051610602919061281d565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d919061271e565b610bd4565b60405161063f9190612779565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a919061271e565b610ca1565b60405161067c9190612779565b60405180910390f35b34801561069157600080fd5b5061069a610cbf565b6040516106a7919061281d565b60405180910390f35b3480156106bc57600080fd5b506106c5610cc5565b6040516106d2919061293a565b60405180910390f35b3480156106e757600080fd5b5061070260048036038101906106fd919061271e565b610ceb565b60405161070f9190612779565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a9190612955565b610e9f565b60405161074c919061281d565b60405180910390f35b34801561076157600080fd5b5061076a610f26565b604051610777919061293a565b60405180910390f35b34801561078c57600080fd5b50610795610f4c565b6040516107a2919061293a565b60405180910390f35b60606040518060400160405280600681526020017f5261737465720000000000000000000000000000000000000000000000000000815250905090565b60006107fc6107f5610f64565b8484610f6c565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600c5481565b601360149054906101000a900460ff1681565b600061085c848484611100565b61091d84610868610f64565b6109188560405180606001604052806028815260200161316960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ce610f64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117529092919063ffffffff16565b610f6c565b600190509392505050565b60006009905090565b60006109da61093e610f64565b846109d5856002600061094f610f64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117a790919063ffffffff16565b610f6c565b6001905092915050565b60085481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b600d5481565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60105481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5241535445520000000000000000000000000000000000000000000000000000815250905090565b600b5481565b6000610c97610be1610f64565b84610c92856040518060600160405280602581526020016131916025913960026000610c0b610f64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117529092919063ffffffff16565b610f6c565b6001905092915050565b6000610cb5610cae610f64565b8484611100565b6001905092915050565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d52906129e1565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d9691906128d1565b602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190612a16565b9050600060648483610de99190612a72565b610df39190612ae3565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e52929190612b35565b6020604051808303816000875af1158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e959190612b8a565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73344e9644b00badd7e8768664a704e55209512e5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610fd65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612c03565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110f3919061281d565b60405180910390a3505050565b611108610b68565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611171575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111a957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111f5575073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561124f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561128e575061125e610b68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112f257600061129e83610a2f565b9050600e5482826112af9190612c23565b11156112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612ca3565b60405180910390fd5b505b6112fa610b68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611375575073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113c1575073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561140c5760105481111561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290612d0f565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114765750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6114b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ac90612d7b565b60405180910390fd5b600081116114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90612e0d565b60405180910390fd5b600760019054906101000a900460ff1660ff16600760009054906101000a900460ff1660ff16101580156115395750601360149054906101000a900460ff16155b80156115935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115ab5750601360159054906101000a900460ff165b156115f45760006115bb30610a2f565b90506010548111156115cd5760105490505b6000600760006101000a81548160ff021916908360ff1602179055506115f2816117bd565b505b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061169d5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ab576000915061173e565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361170557600190505b6007600081819054906101000a900460ff168092919061172490612e2d565b91906101000a81548160ff021916908360ff160217905550505b61174b8585858585611b58565b5050505050565b600083831115829061179a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117919190612663565b60405180910390fd5b5082840390509392505050565b600081836117b59190612c23565b905092915050565b6001601360146101000a81548160ff02191690831515021790555060006064600c54836117ea9190612a72565b6117f49190612ae3565b9050806006546118049190612e56565b600681905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118579190612c23565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e79190612e56565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600a548461193c9190612a72565b6119469190612ae3565b905060006064600b548561195a9190612a72565b6119649190612ae3565b9050600060c8600d54866119789190612a72565b6119829190612ae3565b905060004790506119a88385846119999190612c23565b6119a39190612c23565b612253565b600081476119b69190612e56565b90506000600b54600a54600d546119cd9190612c23565b6119d79190612c23565b6064600a546119e69190612a72565b6119f09190612ae3565b9050600060648284611a029190612a72565b611a0c9190612ae3565b90506000600b54600a54600d54611a239190612c23565b611a2d9190612c23565b6064600b54611a3c9190612a72565b611a469190612ae3565b9050600060648286611a589190612a72565b611a629190612ae3565b9050611a8487828588611a759190612e56565b611a7f9190612e56565b612496565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611ab39190612e56565b611abd9190612e56565b89604051611acd93929190612e8a565b60405180910390a1611b01600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612588565b479450611b30600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612588565b505050505050505050506000601360146101000a81548160ff02191690831515021790555050565b81611d2d5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba89190612e56565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c369190612c23565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cd6919061281d565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d285782600654611d219190612e56565b6006819055505b61224c565b8015611fc1576000606460085485611d459190612a72565b611d4f9190612ae3565b905060008185611d5f9190612e56565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dac9190612e56565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a9190612c23565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec89190612c23565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f68919061281d565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611fba5780600654611fb39190612e56565b6006819055505b505061224b565b6000606460095485611fd39190612a72565b611fdd9190612ae3565b905060008185611fed9190612e56565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203a9190612e56565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c89190612c23565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121569190612c23565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121f6919061281d565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361224857806006546122419190612e56565b6006819055505b50505b5b5050505050565b6000600267ffffffffffffffff8111156122705761226f612ec1565b5b60405190808252806020026020018201604052801561229e5781602001602082028036833780820191505090505b50905030816000815181106122b6576122b5612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123819190612f34565b8160018151811061239557612394612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123fc30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161246095949392919061305a565b600060405180830381600087803b15801561247a57600080fd5b505af115801561248e573d6000803e3d6000fd5b505050505050565b6124c330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073344e9644b00badd7e8768664a704e55209512e54426040518863ffffffff1660e01b815260040161253e969594939291906130b4565b60606040518083038185885af115801561255c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125819190613115565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125ce573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561260d5780820151818401526020810190506125f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612635826125d3565b61263f81856125de565b935061264f8185602086016125ef565b61265881612619565b840191505092915050565b6000602082019050818103600083015261267d818461262a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126b58261268a565b9050919050565b6126c5816126aa565b81146126d057600080fd5b50565b6000813590506126e2816126bc565b92915050565b6000819050919050565b6126fb816126e8565b811461270657600080fd5b50565b600081359050612718816126f2565b92915050565b6000806040838503121561273557612734612685565b5b6000612743858286016126d3565b925050602061275485828601612709565b9150509250929050565b60008115159050919050565b6127738161275e565b82525050565b600060208201905061278e600083018461276a565b92915050565b6000819050919050565b60006127b96127b46127af8461268a565b612794565b61268a565b9050919050565b60006127cb8261279e565b9050919050565b60006127dd826127c0565b9050919050565b6127ed816127d2565b82525050565b600060208201905061280860008301846127e4565b92915050565b612817816126e8565b82525050565b6000602082019050612832600083018461280e565b92915050565b60008060006060848603121561285157612850612685565b5b600061285f868287016126d3565b9350506020612870868287016126d3565b925050604061288186828701612709565b9150509250925092565b600060ff82169050919050565b6128a18161288b565b82525050565b60006020820190506128bc6000830184612898565b92915050565b6128cb816126aa565b82525050565b60006020820190506128e660008301846128c2565b92915050565b60006020828403121561290257612901612685565b5b6000612910848285016126d3565b91505092915050565b60006129248261268a565b9050919050565b61293481612919565b82525050565b600060208201905061294f600083018461292b565b92915050565b6000806040838503121561296c5761296b612685565b5b600061297a858286016126d3565b925050602061298b858286016126d3565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b60006129cb601b836125de565b91506129d682612995565b602082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b600081519050612a10816126f2565b92915050565b600060208284031215612a2c57612a2b612685565b5b6000612a3a84828501612a01565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7d826126e8565b9150612a88836126e8565b9250828202612a96816126e8565b91508282048414831517612aad57612aac612a43565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aee826126e8565b9150612af9836126e8565b925082612b0957612b08612ab4565b5b828204905092915050565b6000612b1f826127c0565b9050919050565b612b2f81612b14565b82525050565b6000604082019050612b4a6000830185612b26565b612b57602083018461280e565b9392505050565b612b678161275e565b8114612b7257600080fd5b50565b600081519050612b8481612b5e565b92915050565b600060208284031215612ba057612b9f612685565b5b6000612bae84828501612b75565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612bed6011836125de565b9150612bf882612bb7565b602082019050919050565b60006020820190508181036000830152612c1c81612be0565b9050919050565b6000612c2e826126e8565b9150612c39836126e8565b9250828201905080821115612c5157612c50612a43565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612c8d6012836125de565b9150612c9882612c57565b602082019050919050565b60006020820190508181036000830152612cbc81612c80565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b6000612cf96017836125de565b9150612d0482612cc3565b602082019050919050565b60006020820190508181036000830152612d2881612cec565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b6000612d656015836125de565b9150612d7082612d2f565b602082019050919050565b60006020820190508181036000830152612d9481612d58565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612df76025836125de565b9150612e0282612d9b565b604082019050919050565b60006020820190508181036000830152612e2681612dea565b9050919050565b6000612e388261288b565b915060ff8203612e4b57612e4a612a43565b5b600182019050919050565b6000612e61826126e8565b9150612e6c836126e8565b9250828203905081811115612e8457612e83612a43565b5b92915050565b6000606082019050612e9f600083018661280e565b612eac602083018561280e565b612eb9604083018461280e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f2e816126bc565b92915050565b600060208284031215612f4a57612f49612685565b5b6000612f5884828501612f1f565b91505092915050565b6000819050919050565b6000612f86612f81612f7c84612f61565b612794565b6126e8565b9050919050565b612f9681612f6b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fd1816126aa565b82525050565b6000612fe38383612fc8565b60208301905092915050565b6000602082019050919050565b600061300782612f9c565b6130118185612fa7565b935061301c83612fb8565b8060005b8381101561304d5781516130348882612fd7565b975061303f83612fef565b925050600181019050613020565b5085935050505092915050565b600060a08201905061306f600083018861280e565b61307c6020830187612f8d565b818103604083015261308e8186612ffc565b905061309d60608301856128c2565b6130aa608083018461280e565b9695505050505050565b600060c0820190506130c960008301896128c2565b6130d6602083018861280e565b6130e36040830187612f8d565b6130f06060830186612f8d565b6130fd6080830185612b26565b61310a60a083018461280e565b979650505050505050565b60008060006060848603121561312e5761312d612685565b5b600061313c86828701612a01565b935050602061314d86828701612a01565b925050604061315e86828701612a01565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f9c46dfb32c9d353271516b462980746bb60d90c247c7bc8d66c2f5f590c535b64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a611610102578063a457c2d711610095578063dafd18e911610064578063dafd18e9146106db578063dd62ed3e14610718578063f0684c6814610755578063fcf84b4114610780576101e3565b8063a457c2d71461060b578063a9059cbb14610648578063b1cb158214610685578063b43665e2146106b0576101e3565b8063805c0e0f116100d1578063805c0e0f1461055f5780638da5cb5b1461058a57806395d89b41146105b5578063960ee2f5146105e0576101e3565b8063715018a6146104b5578063768dc710146104cc57806378109e54146105095780637d1db4a514610534576101e3565b8063313ce5671161017a5780634a74bb02116101495780634a74bb02146103f757806355b1c11614610422578063603176251461044d57806370a0823114610478576101e3565b8063313ce5671461033957806339509351146103645780633f70a495146103a157806349bd5a5e146103cc576101e3565b806318160ddd116101b657806318160ddd1461027b57806321dbd9eb146102a6578063220f6696146102d157806323b872dd146102fc576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6107ab565b60405161020a9190612663565b60405180910390f35b34801561021f57600080fd5b5061023a6004803603810190610235919061271e565b6107e8565b6040516102479190612779565b60405180910390f35b34801561025c57600080fd5b50610265610806565b60405161027291906127f3565b60405180910390f35b34801561028757600080fd5b5061029061082c565b60405161029d919061281d565b60405180910390f35b3480156102b257600080fd5b506102bb610836565b6040516102c8919061281d565b60405180910390f35b3480156102dd57600080fd5b506102e661083c565b6040516102f39190612779565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612838565b61084f565b6040516103309190612779565b60405180910390f35b34801561034557600080fd5b5061034e610928565b60405161035b91906128a7565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061271e565b610931565b6040516103989190612779565b60405180910390f35b3480156103ad57600080fd5b506103b66109e4565b6040516103c3919061281d565b60405180910390f35b3480156103d857600080fd5b506103e16109ea565b6040516103ee91906128d1565b60405180910390f35b34801561040357600080fd5b5061040c610a10565b6040516104199190612779565b60405180910390f35b34801561042e57600080fd5b50610437610a23565b604051610444919061281d565b60405180910390f35b34801561045957600080fd5b50610462610a29565b60405161046f919061281d565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a91906128ec565b610a2f565b6040516104ac919061281d565b60405180910390f35b3480156104c157600080fd5b506104ca610a78565b005b3480156104d857600080fd5b506104f360048036038101906104ee91906128ec565b610b36565b6040516105009190612779565b60405180910390f35b34801561051557600080fd5b5061051e610b56565b60405161052b919061281d565b60405180910390f35b34801561054057600080fd5b50610549610b5c565b604051610556919061281d565b60405180910390f35b34801561056b57600080fd5b50610574610b62565b604051610581919061293a565b60405180910390f35b34801561059657600080fd5b5061059f610b68565b6040516105ac91906128d1565b60405180910390f35b3480156105c157600080fd5b506105ca610b91565b6040516105d79190612663565b60405180910390f35b3480156105ec57600080fd5b506105f5610bce565b604051610602919061281d565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d919061271e565b610bd4565b60405161063f9190612779565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a919061271e565b610ca1565b60405161067c9190612779565b60405180910390f35b34801561069157600080fd5b5061069a610cbf565b6040516106a7919061281d565b60405180910390f35b3480156106bc57600080fd5b506106c5610cc5565b6040516106d2919061293a565b60405180910390f35b3480156106e757600080fd5b5061070260048036038101906106fd919061271e565b610ceb565b60405161070f9190612779565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a9190612955565b610e9f565b60405161074c919061281d565b60405180910390f35b34801561076157600080fd5b5061076a610f26565b604051610777919061293a565b60405180910390f35b34801561078c57600080fd5b50610795610f4c565b6040516107a2919061293a565b60405180910390f35b60606040518060400160405280600681526020017f5261737465720000000000000000000000000000000000000000000000000000815250905090565b60006107fc6107f5610f64565b8484610f6c565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b600c5481565b601360149054906101000a900460ff1681565b600061085c848484611100565b61091d84610868610f64565b6109188560405180606001604052806028815260200161316960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ce610f64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117529092919063ffffffff16565b610f6c565b600190509392505050565b60006009905090565b60006109da61093e610f64565b846109d5856002600061094f610f64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117a790919063ffffffff16565b610f6c565b6001905092915050565b60085481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b600d5481565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b600e5481565b60105481565b61dead81565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5241535445520000000000000000000000000000000000000000000000000000815250905090565b600b5481565b6000610c97610be1610f64565b84610c92856040518060600160405280602581526020016131916025913960026000610c0b610f64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117529092919063ffffffff16565b610f6c565b6001905092915050565b6000610cb5610cae610f64565b8484611100565b6001905092915050565b60095481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d52906129e1565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d9691906128d1565b602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190612a16565b9050600060648483610de99190612a72565b610df39190612ae3565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e52929190612b35565b6020604051808303816000875af1158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e959190612b8a565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73344e9644b00badd7e8768664a704e55209512e5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610fd65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612c03565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110f3919061281d565b60405180910390a3505050565b611108610b68565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611171575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111a957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156111f5575073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561124f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561128e575061125e610b68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112f257600061129e83610a2f565b9050600e5482826112af9190612c23565b11156112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612ca3565b60405180910390fd5b505b6112fa610b68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611375575073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113c1575073344e9644b00badd7e8768664a704e55209512e5473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561140c5760105481111561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290612d0f565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114765750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6114b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ac90612d7b565b60405180910390fd5b600081116114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90612e0d565b60405180910390fd5b600760019054906101000a900460ff1660ff16600760009054906101000a900460ff1660ff16101580156115395750601360149054906101000a900460ff16155b80156115935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115ab5750601360159054906101000a900460ff165b156115f45760006115bb30610a2f565b90506010548111156115cd5760105490505b6000600760006101000a81548160ff021916908360ff1602179055506115f2816117bd565b505b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061169d5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ab576000915061173e565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361170557600190505b6007600081819054906101000a900460ff168092919061172490612e2d565b91906101000a81548160ff021916908360ff160217905550505b61174b8585858585611b58565b5050505050565b600083831115829061179a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117919190612663565b60405180910390fd5b5082840390509392505050565b600081836117b59190612c23565b905092915050565b6001601360146101000a81548160ff02191690831515021790555060006064600c54836117ea9190612a72565b6117f49190612ae3565b9050806006546118049190612e56565b600681905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118579190612c23565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e79190612e56565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600a548461193c9190612a72565b6119469190612ae3565b905060006064600b548561195a9190612a72565b6119649190612ae3565b9050600060c8600d54866119789190612a72565b6119829190612ae3565b905060004790506119a88385846119999190612c23565b6119a39190612c23565b612253565b600081476119b69190612e56565b90506000600b54600a54600d546119cd9190612c23565b6119d79190612c23565b6064600a546119e69190612a72565b6119f09190612ae3565b9050600060648284611a029190612a72565b611a0c9190612ae3565b90506000600b54600a54600d54611a239190612c23565b611a2d9190612c23565b6064600b54611a3c9190612a72565b611a469190612ae3565b9050600060648286611a589190612a72565b611a629190612ae3565b9050611a8487828588611a759190612e56565b611a7f9190612e56565b612496565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611ab39190612e56565b611abd9190612e56565b89604051611acd93929190612e8a565b60405180910390a1611b01600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612588565b479450611b30600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612588565b505050505050505050506000601360146101000a81548160ff02191690831515021790555050565b81611d2d5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba89190612e56565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c369190612c23565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cd6919061281d565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d285782600654611d219190612e56565b6006819055505b61224c565b8015611fc1576000606460085485611d459190612a72565b611d4f9190612ae3565b905060008185611d5f9190612e56565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dac9190612e56565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a9190612c23565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec89190612c23565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f68919061281d565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611fba5780600654611fb39190612e56565b6006819055505b505061224b565b6000606460095485611fd39190612a72565b611fdd9190612ae3565b905060008185611fed9190612e56565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203a9190612e56565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c89190612c23565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121569190612c23565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121f6919061281d565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361224857806006546122419190612e56565b6006819055505b50505b5b5050505050565b6000600267ffffffffffffffff8111156122705761226f612ec1565b5b60405190808252806020026020018201604052801561229e5781602001602082028036833780820191505090505b50905030816000815181106122b6576122b5612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123819190612f34565b8160018151811061239557612394612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123fc30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161246095949392919061305a565b600060405180830381600087803b15801561247a57600080fd5b505af115801561248e573d6000803e3d6000fd5b505050505050565b6124c330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073344e9644b00badd7e8768664a704e55209512e54426040518863ffffffff1660e01b815260040161253e969594939291906130b4565b60606040518083038185885af115801561255c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125819190613115565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125ce573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561260d5780820151818401526020810190506125f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612635826125d3565b61263f81856125de565b935061264f8185602086016125ef565b61265881612619565b840191505092915050565b6000602082019050818103600083015261267d818461262a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126b58261268a565b9050919050565b6126c5816126aa565b81146126d057600080fd5b50565b6000813590506126e2816126bc565b92915050565b6000819050919050565b6126fb816126e8565b811461270657600080fd5b50565b600081359050612718816126f2565b92915050565b6000806040838503121561273557612734612685565b5b6000612743858286016126d3565b925050602061275485828601612709565b9150509250929050565b60008115159050919050565b6127738161275e565b82525050565b600060208201905061278e600083018461276a565b92915050565b6000819050919050565b60006127b96127b46127af8461268a565b612794565b61268a565b9050919050565b60006127cb8261279e565b9050919050565b60006127dd826127c0565b9050919050565b6127ed816127d2565b82525050565b600060208201905061280860008301846127e4565b92915050565b612817816126e8565b82525050565b6000602082019050612832600083018461280e565b92915050565b60008060006060848603121561285157612850612685565b5b600061285f868287016126d3565b9350506020612870868287016126d3565b925050604061288186828701612709565b9150509250925092565b600060ff82169050919050565b6128a18161288b565b82525050565b60006020820190506128bc6000830184612898565b92915050565b6128cb816126aa565b82525050565b60006020820190506128e660008301846128c2565b92915050565b60006020828403121561290257612901612685565b5b6000612910848285016126d3565b91505092915050565b60006129248261268a565b9050919050565b61293481612919565b82525050565b600060208201905061294f600083018461292b565b92915050565b6000806040838503121561296c5761296b612685565b5b600061297a858286016126d3565b925050602061298b858286016126d3565b9150509250929050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b60006129cb601b836125de565b91506129d682612995565b602082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b600081519050612a10816126f2565b92915050565b600060208284031215612a2c57612a2b612685565b5b6000612a3a84828501612a01565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7d826126e8565b9150612a88836126e8565b9250828202612a96816126e8565b91508282048414831517612aad57612aac612a43565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aee826126e8565b9150612af9836126e8565b925082612b0957612b08612ab4565b5b828204905092915050565b6000612b1f826127c0565b9050919050565b612b2f81612b14565b82525050565b6000604082019050612b4a6000830185612b26565b612b57602083018461280e565b9392505050565b612b678161275e565b8114612b7257600080fd5b50565b600081519050612b8481612b5e565b92915050565b600060208284031215612ba057612b9f612685565b5b6000612bae84828501612b75565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612bed6011836125de565b9150612bf882612bb7565b602082019050919050565b60006020820190508181036000830152612c1c81612be0565b9050919050565b6000612c2e826126e8565b9150612c39836126e8565b9250828201905080821115612c5157612c50612a43565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612c8d6012836125de565b9150612c9882612c57565b602082019050919050565b60006020820190508181036000830152612cbc81612c80565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b6000612cf96017836125de565b9150612d0482612cc3565b602082019050919050565b60006020820190508181036000830152612d2881612cec565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b6000612d656015836125de565b9150612d7082612d2f565b602082019050919050565b60006020820190508181036000830152612d9481612d58565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612df76025836125de565b9150612e0282612d9b565b604082019050919050565b60006020820190508181036000830152612e2681612dea565b9050919050565b6000612e388261288b565b915060ff8203612e4b57612e4a612a43565b5b600182019050919050565b6000612e61826126e8565b9150612e6c836126e8565b9250828203905081811115612e8457612e83612a43565b5b92915050565b6000606082019050612e9f600083018661280e565b612eac602083018561280e565b612eb9604083018461280e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f2e816126bc565b92915050565b600060208284031215612f4a57612f49612685565b5b6000612f5884828501612f1f565b91505092915050565b6000819050919050565b6000612f86612f81612f7c84612f61565b612794565b6126e8565b9050919050565b612f9681612f6b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fd1816126aa565b82525050565b6000612fe38383612fc8565b60208301905092915050565b6000602082019050919050565b600061300782612f9c565b6130118185612fa7565b935061301c83612fb8565b8060005b8381101561304d5781516130348882612fd7565b975061303f83612fef565b925050600181019050613020565b5085935050505092915050565b600060a08201905061306f600083018861280e565b61307c6020830187612f8d565b818103604083015261308e8186612ffc565b905061309d60608301856128c2565b6130aa608083018461280e565b9695505050505050565b600060c0820190506130c960008301896128c2565b6130d6602083018861280e565b6130e36040830187612f8d565b6130f06060830186612f8d565b6130fd6080830185612b26565b61310a60a083018461280e565b979650505050505050565b60008060006060848603121561312e5761312d612685565b5b600061313c86828701612a01565b935050602061314d86828701612a01565b925050604061315e86828701612a01565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f9c46dfb32c9d353271516b462980746bb60d90c247c7bc8d66c2f5f590c535b64736f6c63430008110033

Deployed Bytecode Sourcemap

13171:11801:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16602:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17445:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15271:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16879:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14872:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15354:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17614:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16788:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17935:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14709:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15319:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15389:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14910:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14786;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16982:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13627:138;;;;;;;;;;;;;:::i;:::-;;13900:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14957:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15080:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14160:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13404:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14830:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18161:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17107:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14746:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13961:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23059:450;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17282:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14062:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14265:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16602:83;16639:13;16672:5;;;;;;;;;;;;;;;;;16665:12;;16602:83;:::o;17445:161::-;17520:4;17537:39;17546:12;:10;:12::i;:::-;17560:7;17569:6;17537:8;:39::i;:::-;17594:4;17587:11;;17445:161;;;;:::o;15271:41::-;;;;;;;;;;;;;:::o;16879:95::-;16932:7;16959;;16952:14;;16879:95;:::o;14872:31::-;;;;:::o;15354:28::-;;;;;;;;;;;;;:::o;17614:313::-;17712:4;17729:36;17739:6;17747:9;17758:6;17729:9;:36::i;:::-;17776:121;17785:6;17793:12;:10;:12::i;:::-;17807:89;17845:6;17807:89;;;;;;;;;;;;;;;;;:11;:19;17819:6;17807:19;;;;;;;;;;;;;;;:33;17827:12;:10;:12::i;:::-;17807:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17776:8;:121::i;:::-;17915:4;17908:11;;17614:313;;;;;:::o;16788:83::-;16829:5;14467:1;16847:16;;16788:83;:::o;17935:218::-;18023:4;18040:83;18049:12;:10;:12::i;:::-;18063:7;18072:50;18111:10;18072:11;:25;18084:12;:10;:12::i;:::-;18072:25;;;;;;;;;;;;;;;:34;18098:7;18072:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18040:8;:83::i;:::-;18141:4;18134:11;;17935:218;;;;:::o;14709:30::-;;;;:::o;15319:28::-;;;;;;;;;;;;;:::o;15389:40::-;;;;;;;;;;;;;:::o;14910:37::-;;;;:::o;14786:::-;;;;:::o;16982:117::-;17048:7;17075;:16;17083:7;17075:16;;;;;;;;;;;;;;;;17068:23;;16982:117;;;:::o;13627:138::-;13724:1;13687:40;;13708:6;;;;;;;;;;13687:40;;;;;;;;;;;;13755:1;13738:6;;:19;;;;;;;;;;;;;;;;;;13627:138::o;13900:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;14957:50::-;;;;:::o;15080:47::-;;;;:::o;14160:97::-;14214:42;14160:97;:::o;13404:87::-;13450:7;13477:6;;;;;;;;;;;13470:13;;13404:87;:::o;16693:::-;16732:13;16765:7;;;;;;;;;;;;;;;;;16758:14;;16693:87;:::o;14830:35::-;;;;:::o;18161:269::-;18254:4;18271:129;18280:12;:10;:12::i;:::-;18294:7;18303:96;18342:15;18303:96;;;;;;;;;;;;;;;;;:11;:25;18315:12;:10;:12::i;:::-;18303:25;;;;;;;;;;;;;;;:34;18329:7;18303:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18271:8;:129::i;:::-;18418:4;18411:11;;18161:269;;;;:::o;17107:167::-;17185:4;17202:42;17212:12;:10;:12::i;:::-;17226:9;17237:6;17202:9;:42::i;:::-;17262:4;17255:11;;17107:167;;;;:::o;14746:31::-;;;;:::o;13961:93::-;;;;;;;;;;;;;:::o;23059:450::-;23161:10;23223:4;23191:37;;:20;:37;;;23183:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;23271:19;23300:20;23293:38;;;23340:4;23293:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23271:75;;23357:20;23410:3;23392:17;23380:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;23357:56;;23439:20;23432:37;;;23470:14;;;;;;;;;;;23486:12;23432:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23424:75;;23172:337;;23059:450;;;;:::o;17282:155::-;17369:7;17396:11;:21;17408:8;17396:21;;;;;;;;;;;;;;;:33;17418:10;17396:33;;;;;;;;;;;;;;;;17389:40;;17282:155;;;;:::o;14062:91::-;;;;;;;;;;;;;:::o;14265:102::-;14324:42;14265:102;:::o;1802:98::-;1855:7;1882:10;1875:17;;1802:98;:::o;18579:290::-;18700:1;18680:22;;:8;:22;;;;:50;;;;;18728:1;18706:24;;:10;:24;;;;18680:50;18672:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18799:6;18763:11;:21;18775:8;18763:21;;;;;;;;;;;;;;;:33;18785:10;18763:33;;;;;;;;;;;;;;;:42;;;;18840:10;18821:38;;18830:8;18821:38;;;18852:6;18821:38;;;;;;:::i;:::-;;;;;;;;18579:290;;;:::o;18877:1632::-;19003:7;:5;:7::i;:::-;18997:13;;:2;:13;;;;:47;;;;;14214:42;19027:17;;:2;:17;;;;18997:47;:83;;;;;19075:4;19061:19;;:2;:19;;;;18997:83;:122;;;;;14324:42;19097:22;;:2;:22;;;;18997:122;:158;;;;;19142:13;;;;;;;;;;;19136:19;;:2;:19;;;;18997:158;:190;;;;;19180:7;:5;:7::i;:::-;19172:15;;:4;:15;;;;18997:190;18993:331;;;19203:18;19224:13;19234:2;19224:9;:13::i;:::-;19203:34;;19285:15;;19274:6;19261:10;:19;;;;:::i;:::-;19260:40;;19252:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19188:136;18993:331;19348:7;:5;:7::i;:::-;19340:15;;:4;:15;;;;:51;;;;;14324:42;19369:22;;:2;:22;;;;19340:51;:88;;;;;14324:42;19404:24;;:4;:24;;;;19340:88;19336:179;;;19463:12;;19453:6;:22;;19445:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;19336:179;19551:1;19535:18;;:4;:18;;;;:38;;;;;19571:1;19557:16;;:2;:16;;;;19535:38;19527:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19627:1;19618:6;:10;19610:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19714:11;;;;;;;;;;;19703:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;19744:16;;;;;;;;;;;19743:17;19703:57;:95;;;;;19785:13;;;;;;;;;;;19777:21;;:4;:21;;;;19703:95;:133;;;;;19815:21;;;;;;;;;;;19703:133;19686:443;;;19893:28;19924:24;19942:4;19924:9;:24::i;:::-;19893:55;;19989:12;;19966:20;:35;19963:78;;;20027:12;;20004:35;;19963:78;20065:1;20055:7;;:11;;;;;;;;;;;;;;;;;;20081:36;20096:20;20081:14;:36::i;:::-;19862:267;19686:443;20149:12;20164:4;20149:19;;20179:10;20203:18;:24;20222:4;20203:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;20231:18;:22;20250:2;20231:22;;;;;;;;;;;;;;;;;;;;;;;;;20203:50;20200:239;;;20279:5;20269:15;;20200:239;;;20339:13;;;;;;;;;;;20331:21;;:4;:21;;;20328:72;;20380:4;20372:12;;20328:72;20416:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;20200:239;20451:48;20466:4;20472:2;20476:6;20484:7;20493:5;20451:14;:48::i;:::-;18980:1529;;18877:1632;;;:::o;1333:206::-;1419:7;1477:1;1472;:6;;1480:12;1464:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1519:1;1515;:5;1508:12;;1333:206;;;;;:::o;905:98::-;963:7;994:1;990;:5;;;;:::i;:::-;983:12;;905:98;;;;:::o;20651:1536::-;15703:4;15684:16;;:23;;;;;;;;;;;;;;;;;;20742:22:::1;20805:3;20790:12;;20767:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;20742:66;;20843:14;20833:7;;:24;;;;:::i;:::-;20823:7;:34;;;;20918:14;20895:7;:20;14214:42;20895:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;20872:7;:20;14214:42;20872:20;;;;;;;;;;;;;;;:60;;;;20997:14;20972:7;:22;20988:4;20972:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;20947:7;:22;20963:4;20947:22;;;;;;;;;;;;;;;:64;;;;21029:19;21094:3;21074:17;;21051:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;21029:68;;21112:19;21175:3;21157:15;;21134:20;:38;;;;:::i;:::-;:44;;;;:::i;:::-;21112:66;;21193:25;21264:3;21244:17;;21221:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;21193:74;;21284:25;21312:21;21284:49;;21348:63;21399:11;21385;21365:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;21348:16;:63::i;:::-;21426:17;21470;21446:21;:41;;;;:::i;:::-;21426:61;;21504:15;21589;;21569:17;;21549;;:37;;;;:::i;:::-;:55;;;;:::i;:::-;21542:3;21522:17;;:23;;;;:::i;:::-;:83;;;;:::i;:::-;21504:101;;21620:13;21658:3;21648:7;21636:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;21620:41;;21678:15;21761;;21741:17;;21721;;:37;;;;:::i;:::-;:55;;;;:::i;:::-;21714:3;21696:15;;:21;;;;:::i;:::-;:81;;;;:::i;:::-;21678:99;;21792:13;21830:3;21820:7;21808:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;21792:41;;21850:60;21863:17;21903:5;21895;21883:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;21850:12;:60::i;:::-;21930:81;21945:17;21985:5;21977;21965:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;21993:17;21930:81;;;;;;;;:::i;:::-;;;;;;;;22028:37;22041:16;;;;;;;;;;;22059:5;22028:12;:37::i;:::-;22094:21;22082:33;;22130:39;22143:14;;;;;;;;;;;22159:9;22130:12;:39::i;:::-;20725:1462;;;;;;;;;;15749:5:::0;15730:16;;:24;;;;;;;;;;;;;;;;;;20651:1536;:::o;23517:1450::-;23662:7;23658:1300;;23721:7;23705;:15;23713:6;23705:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;23687:7;:15;23695:6;23687:15;;;;;;;;;;;;;;;:41;;;;23783:7;23764;:18;23772:9;23764:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;23743:7;:18;23751:9;23743:18;;;;;;;;;;;;;;;:47;;;;23827:9;23810:36;;23819:6;23810:36;;;23838:7;23810:36;;;;;;:::i;:::-;;;;;;;;14214:42;23866:24;;:9;:24;;;23863:67;;23923:7;23915;;:15;;;;:::i;:::-;23905:7;:25;;;;23863:67;23658:1300;;;23958:5;23954:1004;;;23981:14;24018:3;24006:11;;23998:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;23981:40;;24036:23;24070:6;24062:7;:14;;;;:::i;:::-;24036:40;;24127:7;24111;:15;24119:6;24111:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24093:7;:15;24101:6;24093:15;;;;;;;;;;;;;;;:41;;;;24189:15;24170:7;:18;24178:9;24170:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24149:7;:18;24157:9;24149:18;;;;;;;;;;;;;;;:55;;;;24267:6;24244:7;:22;24260:4;24244:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;24219:7;:22;24235:4;24219:22;;;;;;;;;;;;;;;:54;;;;24313:9;24296:44;;24305:6;24296:44;;;24324:15;24296:44;;;;;;:::i;:::-;;;;;;;;14214:42;24360:24;;:9;:24;;;24357:75;;24417:15;24409:7;;:23;;;;:::i;:::-;24399:7;:33;;;;24357:75;23964:498;;23954:1004;;;24485:15;24524:3;24511:12;;24503:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;24485:42;;24542:23;24576:7;24568;:15;;;;:::i;:::-;24542:41;;24634:7;24618;:15;24626:6;24618:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24600:7;:15;24608:6;24600:15;;;;;;;;;;;;;;;:41;;;;24696:15;24677:7;:18;24685:9;24677:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24656:7;:18;24664:9;24656:18;;;;;;;;;;;;;;;:55;;;;24774:7;24751;:22;24767:4;24751:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;24726:7;:22;24742:4;24726:22;;;;;;;;;;;;;;;:55;;;;24821:9;24804:44;;24813:6;24804:44;;;24832:15;24804:44;;;;;;:::i;:::-;;;;;;;;14214:42;24868:24;;:9;:24;;;24865:75;;24925:15;24917:7;;:23;;;;:::i;:::-;24907:7;:33;;;;24865:75;24468:490;;23954:1004;23658:1300;23517:1450;;;;;:::o;22195:474::-;22263:21;22301:1;22287:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22263:40;;22332:4;22314;22319:1;22314:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22358:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22348:4;22353:1;22348:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22391:62;22408:4;22423:15;;;;;;;;;;;22441:11;22391:8;:62::i;:::-;22464:15;;;;;;;;;;;:66;;;22545:11;22571:1;22588:4;22615;22635:15;22464:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22250:419;22195:474;:::o;22677:373::-;22760:62;22777:4;22792:15;;;;;;;;;;;22810:11;22760:8;:62::i;:::-;22833:15;;;;;;;;;;;:31;;;22872:9;22905:4;22925:11;22951:1;22968;14324:42;23016:15;22833:209;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22677:373;;:::o;20521:122::-;20606:6;:15;;:23;20622:6;20606:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20521:122;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:118::-;5918:24;5936:5;5918:24;:::i;:::-;5913:3;5906:37;5831:118;;:::o;5955:222::-;6048:4;6086:2;6075:9;6071:18;6063:26;;6099:71;6167:1;6156:9;6152:17;6143:6;6099:71;:::i;:::-;5955:222;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:104::-;6563:7;6592:24;6610:5;6592:24;:::i;:::-;6581:35;;6518:104;;;:::o;6628:142::-;6731:32;6757:5;6731:32;:::i;:::-;6726:3;6719:45;6628:142;;:::o;6776:254::-;6885:4;6923:2;6912:9;6908:18;6900:26;;6936:87;7020:1;7009:9;7005:17;6996:6;6936:87;:::i;:::-;6776:254;;;;:::o;7036:474::-;7104:6;7112;7161:2;7149:9;7140:7;7136:23;7132:32;7129:119;;;7167:79;;:::i;:::-;7129:119;7287:1;7312:53;7357:7;7348:6;7337:9;7333:22;7312:53;:::i;:::-;7302:63;;7258:117;7414:2;7440:53;7485:7;7476:6;7465:9;7461:22;7440:53;:::i;:::-;7430:63;;7385:118;7036:474;;;;;:::o;7516:177::-;7656:29;7652:1;7644:6;7640:14;7633:53;7516:177;:::o;7699:366::-;7841:3;7862:67;7926:2;7921:3;7862:67;:::i;:::-;7855:74;;7938:93;8027:3;7938:93;:::i;:::-;8056:2;8051:3;8047:12;8040:19;;7699:366;;;:::o;8071:419::-;8237:4;8275:2;8264:9;8260:18;8252:26;;8324:9;8318:4;8314:20;8310:1;8299:9;8295:17;8288:47;8352:131;8478:4;8352:131;:::i;:::-;8344:139;;8071:419;;;:::o;8496:143::-;8553:5;8584:6;8578:13;8569:22;;8600:33;8627:5;8600:33;:::i;:::-;8496:143;;;;:::o;8645:351::-;8715:6;8764:2;8752:9;8743:7;8739:23;8735:32;8732:119;;;8770:79;;:::i;:::-;8732:119;8890:1;8915:64;8971:7;8962:6;8951:9;8947:22;8915:64;:::i;:::-;8905:74;;8861:128;8645:351;;;;:::o;9002:180::-;9050:77;9047:1;9040:88;9147:4;9144:1;9137:15;9171:4;9168:1;9161:15;9188:410;9228:7;9251:20;9269:1;9251:20;:::i;:::-;9246:25;;9285:20;9303:1;9285:20;:::i;:::-;9280:25;;9340:1;9337;9333:9;9362:30;9380:11;9362:30;:::i;:::-;9351:41;;9541:1;9532:7;9528:15;9525:1;9522:22;9502:1;9495:9;9475:83;9452:139;;9571:18;;:::i;:::-;9452:139;9236:362;9188:410;;;;:::o;9604:180::-;9652:77;9649:1;9642:88;9749:4;9746:1;9739:15;9773:4;9770:1;9763:15;9790:185;9830:1;9847:20;9865:1;9847:20;:::i;:::-;9842:25;;9881:20;9899:1;9881:20;:::i;:::-;9876:25;;9920:1;9910:35;;9925:18;;:::i;:::-;9910:35;9967:1;9964;9960:9;9955:14;;9790:185;;;;:::o;9981:134::-;10039:9;10072:37;10103:5;10072:37;:::i;:::-;10059:50;;9981:134;;;:::o;10121:147::-;10216:45;10255:5;10216:45;:::i;:::-;10211:3;10204:58;10121:147;;:::o;10274:348::-;10403:4;10441:2;10430:9;10426:18;10418:26;;10454:79;10530:1;10519:9;10515:17;10506:6;10454:79;:::i;:::-;10543:72;10611:2;10600:9;10596:18;10587:6;10543:72;:::i;:::-;10274:348;;;;;:::o;10628:116::-;10698:21;10713:5;10698:21;:::i;:::-;10691:5;10688:32;10678:60;;10734:1;10731;10724:12;10678:60;10628:116;:::o;10750:137::-;10804:5;10835:6;10829:13;10820:22;;10851:30;10875:5;10851:30;:::i;:::-;10750:137;;;;:::o;10893:345::-;10960:6;11009:2;10997:9;10988:7;10984:23;10980:32;10977:119;;;11015:79;;:::i;:::-;10977:119;11135:1;11160:61;11213:7;11204:6;11193:9;11189:22;11160:61;:::i;:::-;11150:71;;11106:125;10893:345;;;;:::o;11244:167::-;11384:19;11380:1;11372:6;11368:14;11361:43;11244:167;:::o;11417:366::-;11559:3;11580:67;11644:2;11639:3;11580:67;:::i;:::-;11573:74;;11656:93;11745:3;11656:93;:::i;:::-;11774:2;11769:3;11765:12;11758:19;;11417:366;;;:::o;11789:419::-;11955:4;11993:2;11982:9;11978:18;11970:26;;12042:9;12036:4;12032:20;12028:1;12017:9;12013:17;12006:47;12070:131;12196:4;12070:131;:::i;:::-;12062:139;;11789:419;;;:::o;12214:191::-;12254:3;12273:20;12291:1;12273:20;:::i;:::-;12268:25;;12307:20;12325:1;12307:20;:::i;:::-;12302:25;;12350:1;12347;12343:9;12336:16;;12371:3;12368:1;12365:10;12362:36;;;12378:18;;:::i;:::-;12362:36;12214:191;;;;:::o;12411:168::-;12551:20;12547:1;12539:6;12535:14;12528:44;12411:168;:::o;12585:366::-;12727:3;12748:67;12812:2;12807:3;12748:67;:::i;:::-;12741:74;;12824:93;12913:3;12824:93;:::i;:::-;12942:2;12937:3;12933:12;12926:19;;12585:366;;;:::o;12957:419::-;13123:4;13161:2;13150:9;13146:18;13138:26;;13210:9;13204:4;13200:20;13196:1;13185:9;13181:17;13174:47;13238:131;13364:4;13238:131;:::i;:::-;13230:139;;12957:419;;;:::o;13382:173::-;13522:25;13518:1;13510:6;13506:14;13499:49;13382:173;:::o;13561:366::-;13703:3;13724:67;13788:2;13783:3;13724:67;:::i;:::-;13717:74;;13800:93;13889:3;13800:93;:::i;:::-;13918:2;13913:3;13909:12;13902:19;;13561:366;;;:::o;13933:419::-;14099:4;14137:2;14126:9;14122:18;14114:26;;14186:9;14180:4;14176:20;14172:1;14161:9;14157:17;14150:47;14214:131;14340:4;14214:131;:::i;:::-;14206:139;;13933:419;;;:::o;14358:171::-;14498:23;14494:1;14486:6;14482:14;14475:47;14358:171;:::o;14535:366::-;14677:3;14698:67;14762:2;14757:3;14698:67;:::i;:::-;14691:74;;14774:93;14863:3;14774:93;:::i;:::-;14892:2;14887:3;14883:12;14876:19;;14535:366;;;:::o;14907:419::-;15073:4;15111:2;15100:9;15096:18;15088:26;;15160:9;15154:4;15150:20;15146:1;15135:9;15131:17;15124:47;15188:131;15314:4;15188:131;:::i;:::-;15180:139;;14907:419;;;:::o;15332:224::-;15472:34;15468:1;15460:6;15456:14;15449:58;15541:7;15536:2;15528:6;15524:15;15517:32;15332:224;:::o;15562:366::-;15704:3;15725:67;15789:2;15784:3;15725:67;:::i;:::-;15718:74;;15801:93;15890:3;15801:93;:::i;:::-;15919:2;15914:3;15910:12;15903:19;;15562:366;;;:::o;15934:419::-;16100:4;16138:2;16127:9;16123:18;16115:26;;16187:9;16181:4;16177:20;16173:1;16162:9;16158:17;16151:47;16215:131;16341:4;16215:131;:::i;:::-;16207:139;;15934:419;;;:::o;16359:167::-;16396:3;16419:22;16435:5;16419:22;:::i;:::-;16410:31;;16463:4;16456:5;16453:15;16450:41;;16471:18;;:::i;:::-;16450:41;16518:1;16511:5;16507:13;16500:20;;16359:167;;;:::o;16532:194::-;16572:4;16592:20;16610:1;16592:20;:::i;:::-;16587:25;;16626:20;16644:1;16626:20;:::i;:::-;16621:25;;16670:1;16667;16663:9;16655:17;;16694:1;16688:4;16685:11;16682:37;;;16699:18;;:::i;:::-;16682:37;16532:194;;;;:::o;16732:442::-;16881:4;16919:2;16908:9;16904:18;16896:26;;16932:71;17000:1;16989:9;16985:17;16976:6;16932:71;:::i;:::-;17013:72;17081:2;17070:9;17066:18;17057:6;17013:72;:::i;:::-;17095;17163:2;17152:9;17148:18;17139:6;17095:72;:::i;:::-;16732:442;;;;;;:::o;17180:180::-;17228:77;17225:1;17218:88;17325:4;17322:1;17315:15;17349:4;17346:1;17339:15;17366:180;17414:77;17411:1;17404:88;17511:4;17508:1;17501:15;17535:4;17532:1;17525:15;17552:143;17609:5;17640:6;17634:13;17625:22;;17656:33;17683:5;17656:33;:::i;:::-;17552:143;;;;:::o;17701:351::-;17771:6;17820:2;17808:9;17799:7;17795:23;17791:32;17788:119;;;17826:79;;:::i;:::-;17788:119;17946:1;17971:64;18027:7;18018:6;18007:9;18003:22;17971:64;:::i;:::-;17961:74;;17917:128;17701:351;;;;:::o;18058:85::-;18103:7;18132:5;18121:16;;18058:85;;;:::o;18149:158::-;18207:9;18240:61;18258:42;18267:32;18293:5;18267:32;:::i;:::-;18258:42;:::i;:::-;18240:61;:::i;:::-;18227:74;;18149:158;;;:::o;18313:147::-;18408:45;18447:5;18408:45;:::i;:::-;18403:3;18396:58;18313:147;;:::o;18466:114::-;18533:6;18567:5;18561:12;18551:22;;18466:114;;;:::o;18586:184::-;18685:11;18719:6;18714:3;18707:19;18759:4;18754:3;18750:14;18735:29;;18586:184;;;;:::o;18776:132::-;18843:4;18866:3;18858:11;;18896:4;18891:3;18887:14;18879:22;;18776:132;;;:::o;18914:108::-;18991:24;19009:5;18991:24;:::i;:::-;18986:3;18979:37;18914:108;;:::o;19028:179::-;19097:10;19118:46;19160:3;19152:6;19118:46;:::i;:::-;19196:4;19191:3;19187:14;19173:28;;19028:179;;;;:::o;19213:113::-;19283:4;19315;19310:3;19306:14;19298:22;;19213:113;;;:::o;19362:732::-;19481:3;19510:54;19558:5;19510:54;:::i;:::-;19580:86;19659:6;19654:3;19580:86;:::i;:::-;19573:93;;19690:56;19740:5;19690:56;:::i;:::-;19769:7;19800:1;19785:284;19810:6;19807:1;19804:13;19785:284;;;19886:6;19880:13;19913:63;19972:3;19957:13;19913:63;:::i;:::-;19906:70;;19999:60;20052:6;19999:60;:::i;:::-;19989:70;;19845:224;19832:1;19829;19825:9;19820:14;;19785:284;;;19789:14;20085:3;20078:10;;19486:608;;;19362:732;;;;:::o;20100:831::-;20363:4;20401:3;20390:9;20386:19;20378:27;;20415:71;20483:1;20472:9;20468:17;20459:6;20415:71;:::i;:::-;20496:80;20572:2;20561:9;20557:18;20548:6;20496:80;:::i;:::-;20623:9;20617:4;20613:20;20608:2;20597:9;20593:18;20586:48;20651:108;20754:4;20745:6;20651:108;:::i;:::-;20643:116;;20769:72;20837:2;20826:9;20822:18;20813:6;20769:72;:::i;:::-;20851:73;20919:3;20908:9;20904:19;20895:6;20851:73;:::i;:::-;20100:831;;;;;;;;:::o;20937:823::-;21194:4;21232:3;21221:9;21217:19;21209:27;;21246:71;21314:1;21303:9;21299:17;21290:6;21246:71;:::i;:::-;21327:72;21395:2;21384:9;21380:18;21371:6;21327:72;:::i;:::-;21409:80;21485:2;21474:9;21470:18;21461:6;21409:80;:::i;:::-;21499;21575:2;21564:9;21560:18;21551:6;21499:80;:::i;:::-;21589:81;21665:3;21654:9;21650:19;21641:6;21589:81;:::i;:::-;21680:73;21748:3;21737:9;21733:19;21724:6;21680:73;:::i;:::-;20937:823;;;;;;;;;:::o;21766:663::-;21854:6;21862;21870;21919:2;21907:9;21898:7;21894:23;21890:32;21887:119;;;21925:79;;:::i;:::-;21887:119;22045:1;22070:64;22126:7;22117:6;22106:9;22102:22;22070:64;:::i;:::-;22060:74;;22016:128;22183:2;22209:64;22265:7;22256:6;22245:9;22241:22;22209:64;:::i;:::-;22199:74;;22154:129;22322:2;22348:64;22404:7;22395:6;22384:9;22380:22;22348:64;:::i;:::-;22338:74;;22293:129;21766:663;;;;;:::o

Swarm Source

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