ETH Price: $2,637.84 (+2.03%)

Token

Bitcoin Eco (BTCE)
 

Overview

Max Total Supply

921,000,000 BTCE

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
33,099,010 BTCE

Value
$0.00
0xb50c584d8be682d7d321b3ce5d4c81e691502ead
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:
BE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-27
*/

//SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint a, uint b) internal pure returns (uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

        return c;
    }
    function mul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) {
            return 0;
        }

        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

contract Context {
    constructor () { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address) {
        return msg.sender;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
       
        _owner = msg.sender ;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender() , "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}




contract ERC20Detailed {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory tname, string memory tsymbol, uint8 tdecimals) {
        _name = tname;
        _symbol = tsymbol;
        _decimals = tdecimals;
        
    }
    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}



library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using SafeMath for uint;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

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 Mint(address indexed sender, uint amount0, uint amount1);
    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 mint(address to) external returns (uint liquidity);
    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);
}



// pragma solidity >=0.6.2;

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 BE is Context, Ownable, IERC20, ERC20Detailed {
  using SafeERC20 for IERC20;
  using Address for address;
  using SafeMath for uint256;
  
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    
    mapping (address => uint) internal _balances;
    mapping (address => mapping (address => uint)) internal _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    uint256 internal _totalSupply;

    uint256 public liquidityFee;
    uint256 public marketingFee;

    uint256 public buyLiquidityFee = 49;
    uint256 public buyMarketingFee = 50;

    uint256 public sellLiquidityFee = 49;
    uint256 public sellMarketingFee = 50;

    address public marketingWallet = 0x5c576869600Eab040970A67F10C9c54e6AB7F829 ;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    uint256 public _maxTxAmount = 921000000 * 10**18;
    uint256 private numTokensSellToAddToLiquidity = 921000000 * 10**18;
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
  
    address public _owner;
  
    constructor () ERC20Detailed(unicode"Bitcoin Eco", unicode"BTCE", 18) {
      _owner = msg.sender ;
    _totalSupply = 921000000 * (10**18);
    
	_balances[_owner] = _totalSupply;
	//mainnet router = 0x10ED43C718714eb63d5aA57B78B54704E256024E
	 IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
         // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;
         _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

          //exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;


     emit Transfer(address(0), _msgSender(), _totalSupply);
  }
  
    function totalSupply() public view override returns (uint) {
        return _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint) {
        return _balances[account];
    }
    function transfer(address recipient, uint amount) public override  returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address towner, address spender) public view override returns (uint) {
        return _allowances[towner][spender];
    }
    function approve(address spender, uint amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint 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, uint addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }


     function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
 
        _setAutomatedMarketMakerPair(pair, value);
    }


    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
 
        emit SetAutomatedMarketMakerPair(pair, value);
    }
 

     function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function changeNumTokensSellToAddToLiquidity(uint256 _numTokensSellToAddToLiquidity) external onlyOwner
    {
        numTokensSellToAddToLiquidity = _numTokensSellToAddToLiquidity;
    }

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

   
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}
    function _transfer(address sender, address recipient, uint amount) internal{

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
         if(sender != owner() && recipient != owner())
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");


         // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is uniswap pair.
        uint256 contractTokenBalance = balanceOf(address(this));
        
        if(contractTokenBalance >= _maxTxAmount)
        {
            contractTokenBalance = _maxTxAmount;
        }
        
        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            sender != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            //add liquidity
            swapAndLiquify(contractTokenBalance);
        }

         //indicates if fee should be deducted from transfer
        bool takeFee = true;
        
        //if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
            takeFee = false;
        }

        if(sender != address(uniswapV2Pair) && recipient != address(uniswapV2Pair))
        {
             liquidityFee = sellLiquidityFee;
            marketingFee = sellMarketingFee;
        }
       
        if(recipient == address(uniswapV2Pair))
        {
            liquidityFee = sellLiquidityFee;
            marketingFee = sellMarketingFee;
        }

        if(sender == address(uniswapV2Pair))
        {
            liquidityFee = buyLiquidityFee;
            marketingFee = buyMarketingFee;
        }
     
        if(takeFee)
        {
            
            uint256 liquidityAmount = (amount.mul(liquidityFee)).div(10000);
            uint256 marketingAmount = (amount.mul(marketingFee)).div(10000);
            uint256 feeAmount = liquidityAmount.add(marketingAmount);
            uint256 TotalSent = amount.sub(feeAmount);
            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(TotalSent);
            _balances[address(this)] = _balances[address(this)].add(liquidityAmount);
            _balances[marketingWallet] = _balances[marketingWallet].add(marketingAmount);

            emit Transfer(sender, recipient, TotalSent);
            emit Transfer(sender, address(this), liquidityAmount);
            emit Transfer(sender, marketingWallet, marketingAmount);
        }
        else
        {
            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
       
    }

     function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split the contract balance into halves
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);
        
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }
    function _approve(address towner, address spender, uint amount) internal {
        require(towner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[towner][spender] = amount;
        emit Approval(towner, spender, amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"enabled","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"towner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numTokensSellToAddToLiquidity","type":"uint256"}],"name":"changeNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","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":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526031600b556032600c556031600d556032600e55735c576869600eab040970a67f10c9c54e6ab7f829600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60156101000a81548160ff0219169083151502179055506b02f9d5560aff42e8390000006010556b02f9d5560aff42e839000000601155348015620000b3575f80fd5b506040518060400160405280600b81526020017f426974636f696e2045636f0000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42544345000000000000000000000000000000000000000000000000000000008152506012335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38260019081620001eb91906200092d565b508160029081620001fd91906200092d565b508060035f6101000a81548160ff021916908360ff1602179055505050503360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b02f9d5560aff42e83900000060088190555060085460045f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000335573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035b919062000a76565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e7919062000a76565b6040518363ffffffff1660e01b81526004016200040692919062000ab7565b6020604051808303815f875af115801562000423573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000449919062000a76565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620004c560a0516001620005fd60201b60201c565b600160065f620004da6200069b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200058e620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620005ee919062000af3565b60405180910390a35062000b0e565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f33905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200074557607f821691505b6020821081036200075b576200075a62000700565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000782565b620007cb868362000782565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008156200080f6200080984620007e3565b620007ec565b620007e3565b9050919050565b5f819050919050565b6200083083620007f5565b620008486200083f826200081c565b8484546200078e565b825550505050565b5f90565b6200085e62000850565b6200086b81848462000825565b505050565b5b818110156200089257620008865f8262000854565b60018101905062000871565b5050565b601f821115620008e157620008ab8162000761565b620008b68462000773565b81016020851015620008c6578190505b620008de620008d58562000773565b83018262000870565b50505b505050565b5f82821c905092915050565b5f620009035f1984600802620008e6565b1980831691505092915050565b5f6200091d8383620008f2565b9150826002028217905092915050565b6200093882620006c9565b67ffffffffffffffff811115620009545762000953620006d3565b5b6200096082546200072d565b6200096d82828562000896565b5f60209050601f831160018114620009a3575f84156200098e578287015190505b6200099a858262000910565b86555062000a09565b601f198416620009b38662000761565b5f5b82811015620009dc57848901518255600182019150602085019450602081019050620009b5565b86831015620009fc5784890151620009f8601f891682620008f2565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a408262000a15565b9050919050565b62000a528162000a34565b811462000a5d575f80fd5b50565b5f8151905062000a708162000a47565b92915050565b5f6020828403121562000a8e5762000a8d62000a11565b5b5f62000a9d8482850162000a60565b91505092915050565b62000ab18162000a34565b82525050565b5f60408201905062000acc5f83018562000aa6565b62000adb602083018462000aa6565b9392505050565b62000aed81620007e3565b82525050565b5f60208201905062000b085f83018462000ae2565b92915050565b60805160a05161367562000b7d5f395f8181610b0001528181610e5901528181611884015281816119aa01528181611a0101528181611a6a0152611ad001525f818161085001528181612535015281816126140152818161263b015281816126d101526126f801526136755ff3fe6080604052600436106101e6575f3560e01c80638da5cb5b11610101578063b62496f511610094578063ea2f0b3711610063578063ea2f0b37146106fd578063f11a24d314610725578063f2fde38b1461074f578063f637434214610777576101ed565b8063b62496f514610635578063c49b9a8014610671578063c57a6c4414610699578063dd62ed3e146106c1576101ed565b80639a7a23d6116100d05780639a7a23d61461056b578063a457c2d714610593578063a9059cbb146105cf578063b2bdfa7b1461060b576101ed565b80638da5cb5b146104c357806392136913146104ed57806395d89b411461051757806398118cb414610541576101ed565b806349bd5a5e11610179578063715018a611610148578063715018a61461042f57806375f0a874146104455780637bce5a041461046f5780637d1db4a514610499576101ed565b806349bd5a5e146103755780634a74bb021461039f5780636b67c4df146103c957806370a08231146103f3576101ed565b806323b872dd116101b557806323b872dd146102ab578063313ce567146102e75780633950935114610311578063437823ec1461034d576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631694505e1461025757806318160ddd14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b506102056107a1565b6040516102129190612894565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c9190612945565b610831565b60405161024e919061299d565b60405180910390f35b348015610262575f80fd5b5061026b61084e565b6040516102789190612a11565b60405180910390f35b34801561028c575f80fd5b50610295610872565b6040516102a29190612a39565b60405180910390f35b3480156102b6575f80fd5b506102d160048036038101906102cc9190612a52565b61087b565b6040516102de919061299d565b60405180910390f35b3480156102f2575f80fd5b506102fb61094f565b6040516103089190612abd565b60405180910390f35b34801561031c575f80fd5b5061033760048036038101906103329190612945565b610964565b604051610344919061299d565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190612ad6565b610a12565b005b348015610380575f80fd5b50610389610afe565b6040516103969190612b10565b60405180910390f35b3480156103aa575f80fd5b506103b3610b22565b6040516103c0919061299d565b60405180910390f35b3480156103d4575f80fd5b506103dd610b35565b6040516103ea9190612a39565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190612ad6565b610b3b565b6040516104269190612a39565b60405180910390f35b34801561043a575f80fd5b50610443610b81565b005b348015610450575f80fd5b50610459610ccf565b6040516104669190612b10565b60405180910390f35b34801561047a575f80fd5b50610483610cf4565b6040516104909190612a39565b60405180910390f35b3480156104a4575f80fd5b506104ad610cfa565b6040516104ba9190612a39565b60405180910390f35b3480156104ce575f80fd5b506104d7610d00565b6040516104e49190612b10565b60405180910390f35b3480156104f8575f80fd5b50610501610d27565b60405161050e9190612a39565b60405180910390f35b348015610522575f80fd5b5061052b610d2d565b6040516105389190612894565b60405180910390f35b34801561054c575f80fd5b50610555610dbd565b6040516105629190612a39565b60405180910390f35b348015610576575f80fd5b50610591600480360381019061058c9190612b53565b610dc3565b005b34801561059e575f80fd5b506105b960048036038101906105b49190612945565b610ef3565b6040516105c6919061299d565b60405180910390f35b3480156105da575f80fd5b506105f560048036038101906105f09190612945565b610fbb565b604051610602919061299d565b60405180910390f35b348015610616575f80fd5b5061061f610fd8565b60405161062c9190612b10565b60405180910390f35b348015610640575f80fd5b5061065b60048036038101906106569190612ad6565b610ffd565b604051610668919061299d565b60405180910390f35b34801561067c575f80fd5b5061069760048036038101906106929190612b91565b61101a565b005b3480156106a4575f80fd5b506106bf60048036038101906106ba9190612bbc565b611102565b005b3480156106cc575f80fd5b506106e760048036038101906106e29190612be7565b6111a0565b6040516106f49190612a39565b60405180910390f35b348015610708575f80fd5b50610723600480360381019061071e9190612ad6565b611222565b005b348015610730575f80fd5b5061073961130d565b6040516107469190612a39565b60405180910390f35b34801561075a575f80fd5b5061077560048036038101906107709190612ad6565b611313565b005b348015610782575f80fd5b5061078b6114d0565b6040516107989190612a39565b60405180910390f35b6060600180546107b090612c52565b80601f01602080910402602001604051908101604052809291908181526020018280546107dc90612c52565b80156108275780601f106107fe57610100808354040283529160200191610827565b820191905f5260205f20905b81548152906001019060200180831161080a57829003601f168201915b5050505050905090565b5f61084461083d6114d6565b84846114dd565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600854905090565b5f6108878484846116a0565b610944846108936114d6565b61093f856040518060600160405280602881526020016135f36028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108f66114d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b6114dd565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b5f610a086109706114d6565b84610a038560055f6109806114d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b6114dd565b6001905092915050565b610a1a6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d90612ccc565b60405180910390fd5b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600f60159054906101000a900460ff1681565b600a5481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b896114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c90612ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b606060028054610d3c90612c52565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6890612c52565b8015610db35780601f10610d8a57610100808354040283529160200191610db3565b820191905f5260205f20905b815481529060010190602001808311610d9657829003601f168201915b5050505050905090565b60095481565b610dcb6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612ccc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612d5a565b60405180910390fd5b610eef8282612220565b5050565b5f610fb1610eff6114d6565b84610fac8560405180606001604052806025815260200161361b6025913960055f610f286114d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b6114dd565b6001905092915050565b5f610fce610fc76114d6565b84846116a0565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915054906101000a900460ff1681565b6110226114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590612ccc565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516110f7919061299d565b60405180910390a150565b61110a6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612ccc565b60405180910390fd5b8060118190555050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61122a6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90612ccc565b60405180910390fd5b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600b5481565b61131b6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90612de8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361154b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154290612e76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b090612f04565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116939190612a39565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170590612f92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177390613020565b60405180910390fd5b611784610d00565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f257506117c2610d00565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183d5760105481111561183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906130ae565b60405180910390fd5b5b5f61184730610b3b565b905060105481106118585760105490505b5f601154821015905080801561187b5750600f60149054906101000a900460ff16155b80156118d357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118eb5750600f60159054906101000a900460ff165b156118ff5760115491506118fe826122be565b5b5f6001905060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061199f575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156119a8575f90505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611a5057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a6857600d54600981905550600e54600a819055505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ace57600d54600981905550600e54600a819055505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611b3457600b54600981905550600c54600a819055505b8015611fb7575f611b64612710611b566009548861238f90919063ffffffff16565b61240690919063ffffffff16565b90505f611b90612710611b82600a548961238f90919063ffffffff16565b61240690919063ffffffff16565b90505f611ba682846121c390919063ffffffff16565b90505f611bbc828961244f90919063ffffffff16565b9050611c28886040518060600160405280602681526020016135cd6026913960045f8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b60045f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cb98160045f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d4a8460045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dfc8360045f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebb9190612a39565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611f209190612a39565b60405180910390a3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fa69190612a39565b60405180910390a350505050612159565b612021846040518060600160405280602681526020016135cd6026913960045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120b28460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516121509190612a39565b60405180910390a35b505050505050565b5f8383111582906121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f9190612894565b60405180910390fd5b505f83856121b691906130f9565b9050809150509392505050565b5f8082846121d1919061312c565b905083811015612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d906131a9565b60405180910390fd5b8091505092915050565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001600f60146101000a81548160ff0219169083151502179055505f6122ee60028361240690919063ffffffff16565b90505f612304828461244f90919063ffffffff16565b90505f47905061231383612498565b5f612327824761244f90919063ffffffff16565b905061233383826126cb565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612366939291906131c7565b60405180910390a1505050505f600f60146101000a81548160ff02191690831515021790555050565b5f80830361239f575f9050612400565b5f82846123ac91906131fc565b90508284826123bb919061326a565b146123fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f29061330a565b60405180910390fd5b809150505b92915050565b5f61244783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a9565b905092915050565b5f61249083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612161565b905092915050565b5f600267ffffffffffffffff8111156124b4576124b3613328565b5b6040519080825280602002602001820160405280156124e25781602001602082028036833780820191505090505b50905030815f815181106124f9576124f8613355565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125c09190613396565b816001815181106125d4576125d3613355565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612639307f0000000000000000000000000000000000000000000000000000000000000000846114dd565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161269a9594939291906134b1565b5f604051808303815f87803b1580156126b1575f80fd5b505af11580156126c3573d5f803e3d5ffd5b505050505050565b6126f6307f0000000000000000000000000000000000000000000000000000000000000000846114dd565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061273f610d00565b426040518863ffffffff1660e01b815260040161276196959493929190613509565b60606040518083038185885af115801561277d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127a2919061357c565b5050505050565b5f80831182906127ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e69190612894565b60405180910390fd5b505f83856127fd919061326a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612841578082015181840152602081019050612826565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6128668261280a565b6128708185612814565b9350612880818560208601612824565b6128898161284c565b840191505092915050565b5f6020820190508181035f8301526128ac818461285c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128e1826128b8565b9050919050565b6128f1816128d7565b81146128fb575f80fd5b50565b5f8135905061290c816128e8565b92915050565b5f819050919050565b61292481612912565b811461292e575f80fd5b50565b5f8135905061293f8161291b565b92915050565b5f806040838503121561295b5761295a6128b4565b5b5f612968858286016128fe565b925050602061297985828601612931565b9150509250929050565b5f8115159050919050565b61299781612983565b82525050565b5f6020820190506129b05f83018461298e565b92915050565b5f819050919050565b5f6129d96129d46129cf846128b8565b6129b6565b6128b8565b9050919050565b5f6129ea826129bf565b9050919050565b5f6129fb826129e0565b9050919050565b612a0b816129f1565b82525050565b5f602082019050612a245f830184612a02565b92915050565b612a3381612912565b82525050565b5f602082019050612a4c5f830184612a2a565b92915050565b5f805f60608486031215612a6957612a686128b4565b5b5f612a76868287016128fe565b9350506020612a87868287016128fe565b9250506040612a9886828701612931565b9150509250925092565b5f60ff82169050919050565b612ab781612aa2565b82525050565b5f602082019050612ad05f830184612aae565b92915050565b5f60208284031215612aeb57612aea6128b4565b5b5f612af8848285016128fe565b91505092915050565b612b0a816128d7565b82525050565b5f602082019050612b235f830184612b01565b92915050565b612b3281612983565b8114612b3c575f80fd5b50565b5f81359050612b4d81612b29565b92915050565b5f8060408385031215612b6957612b686128b4565b5b5f612b76858286016128fe565b9250506020612b8785828601612b3f565b9150509250929050565b5f60208284031215612ba657612ba56128b4565b5b5f612bb384828501612b3f565b91505092915050565b5f60208284031215612bd157612bd06128b4565b5b5f612bde84828501612931565b91505092915050565b5f8060408385031215612bfd57612bfc6128b4565b5b5f612c0a858286016128fe565b9250506020612c1b858286016128fe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612c6957607f821691505b602082108103612c7c57612c7b612c25565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612cb6602083612814565b9150612cc182612c82565b602082019050919050565b5f6020820190508181035f830152612ce381612caa565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612d44603983612814565b9150612d4f82612cea565b604082019050919050565b5f6020820190508181035f830152612d7181612d38565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612dd2602683612814565b9150612ddd82612d78565b604082019050919050565b5f6020820190508181035f830152612dff81612dc6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e60602483612814565b9150612e6b82612e06565b604082019050919050565b5f6020820190508181035f830152612e8d81612e54565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eee602283612814565b9150612ef982612e94565b604082019050919050565b5f6020820190508181035f830152612f1b81612ee2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7c602583612814565b9150612f8782612f22565b604082019050919050565b5f6020820190508181035f830152612fa981612f70565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300a602383612814565b915061301582612fb0565b604082019050919050565b5f6020820190508181035f83015261303781612ffe565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613098602883612814565b91506130a38261303e565b604082019050919050565b5f6020820190508181035f8301526130c58161308c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61310382612912565b915061310e83612912565b9250828203905081811115613126576131256130cc565b5b92915050565b5f61313682612912565b915061314183612912565b9250828201905080821115613159576131586130cc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613193601b83612814565b915061319e8261315f565b602082019050919050565b5f6020820190508181035f8301526131c081613187565b9050919050565b5f6060820190506131da5f830186612a2a565b6131e76020830185612a2a565b6131f46040830184612a2a565b949350505050565b5f61320682612912565b915061321183612912565b925082820261321f81612912565b91508282048414831517613236576132356130cc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61327482612912565b915061327f83612912565b92508261328f5761328e61323d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132f4602183612814565b91506132ff8261329a565b604082019050919050565b5f6020820190508181035f830152613321816132e8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613390816128e8565b92915050565b5f602082840312156133ab576133aa6128b4565b5b5f6133b884828501613382565b91505092915050565b5f819050919050565b5f6133e46133df6133da846133c1565b6129b6565b612912565b9050919050565b6133f4816133ca565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61342c816128d7565b82525050565b5f61343d8383613423565b60208301905092915050565b5f602082019050919050565b5f61345f826133fa565b6134698185613404565b935061347483613414565b805f5b838110156134a457815161348b8882613432565b975061349683613449565b925050600181019050613477565b5085935050505092915050565b5f60a0820190506134c45f830188612a2a565b6134d160208301876133eb565b81810360408301526134e38186613455565b90506134f26060830185612b01565b6134ff6080830184612a2a565b9695505050505050565b5f60c08201905061351c5f830189612b01565b6135296020830188612a2a565b61353660408301876133eb565b61354360608301866133eb565b6135506080830185612b01565b61355d60a0830184612a2a565b979650505050505050565b5f815190506135768161291b565b92915050565b5f805f60608486031215613593576135926128b4565b5b5f6135a086828701613568565b93505060206135b186828701613568565b92505060406135c286828701613568565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bbca8569c04cb137cfe844e045d531ccf3c36a6d9b4867a53ab5c96784d1c67664736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101e6575f3560e01c80638da5cb5b11610101578063b62496f511610094578063ea2f0b3711610063578063ea2f0b37146106fd578063f11a24d314610725578063f2fde38b1461074f578063f637434214610777576101ed565b8063b62496f514610635578063c49b9a8014610671578063c57a6c4414610699578063dd62ed3e146106c1576101ed565b80639a7a23d6116100d05780639a7a23d61461056b578063a457c2d714610593578063a9059cbb146105cf578063b2bdfa7b1461060b576101ed565b80638da5cb5b146104c357806392136913146104ed57806395d89b411461051757806398118cb414610541576101ed565b806349bd5a5e11610179578063715018a611610148578063715018a61461042f57806375f0a874146104455780637bce5a041461046f5780637d1db4a514610499576101ed565b806349bd5a5e146103755780634a74bb021461039f5780636b67c4df146103c957806370a08231146103f3576101ed565b806323b872dd116101b557806323b872dd146102ab578063313ce567146102e75780633950935114610311578063437823ec1461034d576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631694505e1461025757806318160ddd14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b506102056107a1565b6040516102129190612894565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c9190612945565b610831565b60405161024e919061299d565b60405180910390f35b348015610262575f80fd5b5061026b61084e565b6040516102789190612a11565b60405180910390f35b34801561028c575f80fd5b50610295610872565b6040516102a29190612a39565b60405180910390f35b3480156102b6575f80fd5b506102d160048036038101906102cc9190612a52565b61087b565b6040516102de919061299d565b60405180910390f35b3480156102f2575f80fd5b506102fb61094f565b6040516103089190612abd565b60405180910390f35b34801561031c575f80fd5b5061033760048036038101906103329190612945565b610964565b604051610344919061299d565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190612ad6565b610a12565b005b348015610380575f80fd5b50610389610afe565b6040516103969190612b10565b60405180910390f35b3480156103aa575f80fd5b506103b3610b22565b6040516103c0919061299d565b60405180910390f35b3480156103d4575f80fd5b506103dd610b35565b6040516103ea9190612a39565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190612ad6565b610b3b565b6040516104269190612a39565b60405180910390f35b34801561043a575f80fd5b50610443610b81565b005b348015610450575f80fd5b50610459610ccf565b6040516104669190612b10565b60405180910390f35b34801561047a575f80fd5b50610483610cf4565b6040516104909190612a39565b60405180910390f35b3480156104a4575f80fd5b506104ad610cfa565b6040516104ba9190612a39565b60405180910390f35b3480156104ce575f80fd5b506104d7610d00565b6040516104e49190612b10565b60405180910390f35b3480156104f8575f80fd5b50610501610d27565b60405161050e9190612a39565b60405180910390f35b348015610522575f80fd5b5061052b610d2d565b6040516105389190612894565b60405180910390f35b34801561054c575f80fd5b50610555610dbd565b6040516105629190612a39565b60405180910390f35b348015610576575f80fd5b50610591600480360381019061058c9190612b53565b610dc3565b005b34801561059e575f80fd5b506105b960048036038101906105b49190612945565b610ef3565b6040516105c6919061299d565b60405180910390f35b3480156105da575f80fd5b506105f560048036038101906105f09190612945565b610fbb565b604051610602919061299d565b60405180910390f35b348015610616575f80fd5b5061061f610fd8565b60405161062c9190612b10565b60405180910390f35b348015610640575f80fd5b5061065b60048036038101906106569190612ad6565b610ffd565b604051610668919061299d565b60405180910390f35b34801561067c575f80fd5b5061069760048036038101906106929190612b91565b61101a565b005b3480156106a4575f80fd5b506106bf60048036038101906106ba9190612bbc565b611102565b005b3480156106cc575f80fd5b506106e760048036038101906106e29190612be7565b6111a0565b6040516106f49190612a39565b60405180910390f35b348015610708575f80fd5b50610723600480360381019061071e9190612ad6565b611222565b005b348015610730575f80fd5b5061073961130d565b6040516107469190612a39565b60405180910390f35b34801561075a575f80fd5b5061077560048036038101906107709190612ad6565b611313565b005b348015610782575f80fd5b5061078b6114d0565b6040516107989190612a39565b60405180910390f35b6060600180546107b090612c52565b80601f01602080910402602001604051908101604052809291908181526020018280546107dc90612c52565b80156108275780601f106107fe57610100808354040283529160200191610827565b820191905f5260205f20905b81548152906001019060200180831161080a57829003601f168201915b5050505050905090565b5f61084461083d6114d6565b84846114dd565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600854905090565b5f6108878484846116a0565b610944846108936114d6565b61093f856040518060600160405280602881526020016135f36028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108f66114d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b6114dd565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b5f610a086109706114d6565b84610a038560055f6109806114d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b6114dd565b6001905092915050565b610a1a6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d90612ccc565b60405180910390fd5b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b7f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3281565b600f60159054906101000a900460ff1681565b600a5481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b896114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c90612ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b606060028054610d3c90612c52565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6890612c52565b8015610db35780601f10610d8a57610100808354040283529160200191610db3565b820191905f5260205f20905b815481529060010190602001808311610d9657829003601f168201915b5050505050905090565b60095481565b610dcb6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612ccc565b60405180910390fd5b7f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612d5a565b60405180910390fd5b610eef8282612220565b5050565b5f610fb1610eff6114d6565b84610fac8560405180606001604052806025815260200161361b6025913960055f610f286114d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b6114dd565b6001905092915050565b5f610fce610fc76114d6565b84846116a0565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915054906101000a900460ff1681565b6110226114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590612ccc565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516110f7919061299d565b60405180910390a150565b61110a6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612ccc565b60405180910390fd5b8060118190555050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61122a6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90612ccc565b60405180910390fd5b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600b5481565b61131b6114d6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90612de8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361154b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154290612e76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b090612f04565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116939190612a39565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170590612f92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177390613020565b60405180910390fd5b611784610d00565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f257506117c2610d00565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183d5760105481111561183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906130ae565b60405180910390fd5b5b5f61184730610b3b565b905060105481106118585760105490505b5f601154821015905080801561187b5750600f60149054906101000a900460ff16155b80156118d357507f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118eb5750600f60159054906101000a900460ff165b156118ff5760115491506118fe826122be565b5b5f6001905060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061199f575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156119a8575f90505b7f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611a5057507f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a6857600d54600981905550600e54600a819055505b7f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ace57600d54600981905550600e54600a819055505b7f0000000000000000000000004da13674cc97c1e41e328b567c069d828aa62c3273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611b3457600b54600981905550600c54600a819055505b8015611fb7575f611b64612710611b566009548861238f90919063ffffffff16565b61240690919063ffffffff16565b90505f611b90612710611b82600a548961238f90919063ffffffff16565b61240690919063ffffffff16565b90505f611ba682846121c390919063ffffffff16565b90505f611bbc828961244f90919063ffffffff16565b9050611c28886040518060600160405280602681526020016135cd6026913960045f8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b60045f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cb98160045f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d4a8460045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dfc8360045f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebb9190612a39565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611f209190612a39565b60405180910390a3600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fa69190612a39565b60405180910390a350505050612159565b612021846040518060600160405280602681526020016135cd6026913960045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121619092919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120b28460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c390919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516121509190612a39565b60405180910390a35b505050505050565b5f8383111582906121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f9190612894565b60405180910390fd5b505f83856121b691906130f9565b9050809150509392505050565b5f8082846121d1919061312c565b905083811015612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d906131a9565b60405180910390fd5b8091505092915050565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001600f60146101000a81548160ff0219169083151502179055505f6122ee60028361240690919063ffffffff16565b90505f612304828461244f90919063ffffffff16565b90505f47905061231383612498565b5f612327824761244f90919063ffffffff16565b905061233383826126cb565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612366939291906131c7565b60405180910390a1505050505f600f60146101000a81548160ff02191690831515021790555050565b5f80830361239f575f9050612400565b5f82846123ac91906131fc565b90508284826123bb919061326a565b146123fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f29061330a565b60405180910390fd5b809150505b92915050565b5f61244783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a9565b905092915050565b5f61249083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612161565b905092915050565b5f600267ffffffffffffffff8111156124b4576124b3613328565b5b6040519080825280602002602001820160405280156124e25781602001602082028036833780820191505090505b50905030815f815181106124f9576124f8613355565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125c09190613396565b816001815181106125d4576125d3613355565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612639307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846114dd565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161269a9594939291906134b1565b5f604051808303815f87803b1580156126b1575f80fd5b505af11580156126c3573d5f803e3d5ffd5b505050505050565b6126f6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846114dd565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061273f610d00565b426040518863ffffffff1660e01b815260040161276196959493929190613509565b60606040518083038185885af115801561277d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127a2919061357c565b5050505050565b5f80831182906127ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e69190612894565b60405180910390fd5b505f83856127fd919061326a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612841578082015181840152602081019050612826565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6128668261280a565b6128708185612814565b9350612880818560208601612824565b6128898161284c565b840191505092915050565b5f6020820190508181035f8301526128ac818461285c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128e1826128b8565b9050919050565b6128f1816128d7565b81146128fb575f80fd5b50565b5f8135905061290c816128e8565b92915050565b5f819050919050565b61292481612912565b811461292e575f80fd5b50565b5f8135905061293f8161291b565b92915050565b5f806040838503121561295b5761295a6128b4565b5b5f612968858286016128fe565b925050602061297985828601612931565b9150509250929050565b5f8115159050919050565b61299781612983565b82525050565b5f6020820190506129b05f83018461298e565b92915050565b5f819050919050565b5f6129d96129d46129cf846128b8565b6129b6565b6128b8565b9050919050565b5f6129ea826129bf565b9050919050565b5f6129fb826129e0565b9050919050565b612a0b816129f1565b82525050565b5f602082019050612a245f830184612a02565b92915050565b612a3381612912565b82525050565b5f602082019050612a4c5f830184612a2a565b92915050565b5f805f60608486031215612a6957612a686128b4565b5b5f612a76868287016128fe565b9350506020612a87868287016128fe565b9250506040612a9886828701612931565b9150509250925092565b5f60ff82169050919050565b612ab781612aa2565b82525050565b5f602082019050612ad05f830184612aae565b92915050565b5f60208284031215612aeb57612aea6128b4565b5b5f612af8848285016128fe565b91505092915050565b612b0a816128d7565b82525050565b5f602082019050612b235f830184612b01565b92915050565b612b3281612983565b8114612b3c575f80fd5b50565b5f81359050612b4d81612b29565b92915050565b5f8060408385031215612b6957612b686128b4565b5b5f612b76858286016128fe565b9250506020612b8785828601612b3f565b9150509250929050565b5f60208284031215612ba657612ba56128b4565b5b5f612bb384828501612b3f565b91505092915050565b5f60208284031215612bd157612bd06128b4565b5b5f612bde84828501612931565b91505092915050565b5f8060408385031215612bfd57612bfc6128b4565b5b5f612c0a858286016128fe565b9250506020612c1b858286016128fe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612c6957607f821691505b602082108103612c7c57612c7b612c25565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612cb6602083612814565b9150612cc182612c82565b602082019050919050565b5f6020820190508181035f830152612ce381612caa565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612d44603983612814565b9150612d4f82612cea565b604082019050919050565b5f6020820190508181035f830152612d7181612d38565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612dd2602683612814565b9150612ddd82612d78565b604082019050919050565b5f6020820190508181035f830152612dff81612dc6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e60602483612814565b9150612e6b82612e06565b604082019050919050565b5f6020820190508181035f830152612e8d81612e54565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eee602283612814565b9150612ef982612e94565b604082019050919050565b5f6020820190508181035f830152612f1b81612ee2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7c602583612814565b9150612f8782612f22565b604082019050919050565b5f6020820190508181035f830152612fa981612f70565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300a602383612814565b915061301582612fb0565b604082019050919050565b5f6020820190508181035f83015261303781612ffe565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613098602883612814565b91506130a38261303e565b604082019050919050565b5f6020820190508181035f8301526130c58161308c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61310382612912565b915061310e83612912565b9250828203905081811115613126576131256130cc565b5b92915050565b5f61313682612912565b915061314183612912565b9250828201905080821115613159576131586130cc565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613193601b83612814565b915061319e8261315f565b602082019050919050565b5f6020820190508181035f8301526131c081613187565b9050919050565b5f6060820190506131da5f830186612a2a565b6131e76020830185612a2a565b6131f46040830184612a2a565b949350505050565b5f61320682612912565b915061321183612912565b925082820261321f81612912565b91508282048414831517613236576132356130cc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61327482612912565b915061327f83612912565b92508261328f5761328e61323d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132f4602183612814565b91506132ff8261329a565b604082019050919050565b5f6020820190508181035f830152613321816132e8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613390816128e8565b92915050565b5f602082840312156133ab576133aa6128b4565b5b5f6133b884828501613382565b91505092915050565b5f819050919050565b5f6133e46133df6133da846133c1565b6129b6565b612912565b9050919050565b6133f4816133ca565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61342c816128d7565b82525050565b5f61343d8383613423565b60208301905092915050565b5f602082019050919050565b5f61345f826133fa565b6134698185613404565b935061347483613414565b805f5b838110156134a457815161348b8882613432565b975061349683613449565b925050600181019050613477565b5085935050505092915050565b5f60a0820190506134c45f830188612a2a565b6134d160208301876133eb565b81810360408301526134e38186613455565b90506134f26060830185612b01565b6134ff6080830184612a2a565b9695505050505050565b5f60c08201905061351c5f830189612b01565b6135296020830188612a2a565b61353660408301876133eb565b61354360608301866133eb565b6135506080830185612b01565b61355d60a0830184612a2a565b979650505050505050565b5f815190506135768161291b565b92915050565b5f805f60608486031215613593576135926128b4565b5b5f6135a086828701613568565b93505060206135b186828701613568565b92505060406135c286828701613568565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bbca8569c04cb137cfe844e045d531ccf3c36a6d9b4867a53ab5c96784d1c67664736f6c63430008140033

Deployed Bytecode Sourcemap

13981:11019:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17071:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14139:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16527:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17238:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4208:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17554:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18869:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14197:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14980:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14653:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16630:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3166:148;;;;;;;;;;;;;:::i;:::-;;14863:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14731:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15033:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2523:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14818:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4115:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14619:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18036:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17767:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16752:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15551:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14432:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18492:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18671:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16923:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18992:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14689:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3469:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14775:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4026:83;4063:13;4096:5;4089:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4026:83;:::o;17071:158::-;17143:4;17160:39;17169:12;:10;:12::i;:::-;17183:7;17192:6;17160:8;:39::i;:::-;17217:4;17210:11;;17071:158;;;;:::o;14139:51::-;;;:::o;16527:97::-;16580:4;16604:12;;16597:19;;16527:97;:::o;17238:310::-;17333:4;17350:36;17360:6;17368:9;17379:6;17350:9;:36::i;:::-;17397:121;17406:6;17414:12;:10;:12::i;:::-;17428:89;17466:6;17428:89;;;;;;;;;;;;;;;;;:11;:19;17440:6;17428:19;;;;;;;;;;;;;;;:33;17448:12;:10;:12::i;:::-;17428:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17397:8;:121::i;:::-;17536:4;17529:11;;17238:310;;;;;:::o;4208:83::-;4249:5;4274:9;;;;;;;;;;;4267:16;;4208:83;:::o;17554:207::-;17631:4;17648:83;17657:12;:10;:12::i;:::-;17671:7;17680:50;17719:10;17680:11;:25;17692:12;:10;:12::i;:::-;17680:25;;;;;;;;;;;;;;;:34;17706:7;17680:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17648:8;:83::i;:::-;17749:4;17742:11;;17554:207;;;;:::o;18869:111::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18968:4:::1;18938:18;:27;18957:7;18938:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;18869:111:::0;:::o;14197:38::-;;;:::o;14980:40::-;;;;;;;;;;;;;:::o;14653:27::-;;;;:::o;16630:116::-;16696:4;16720:9;:18;16730:7;16720:18;;;;;;;;;;;;;;;;16713:25;;16630:116;;;:::o;3166:148::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3273:1:::1;3236:40;;3257:6;::::0;::::1;;;;;;;;3236:40;;;;;;;;;;;;3304:1;3287:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3166:148::o:0;14863:75::-;;;;;;;;;;;;;:::o;14731:35::-;;;;:::o;15033:48::-;;;;:::o;2523:79::-;2561:7;2588:6;;;;;;;;;;;2581:13;;2523:79;:::o;14818:36::-;;;;:::o;4115:87::-;4154:13;4187:7;4180:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4115:87;:::o;14619:27::-;;;;:::o;18036:245::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18143:13:::1;18135:21;;:4;:21;;::::0;18127:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18232:41;18261:4;18267:5;18232:28;:41::i;:::-;18036:245:::0;;:::o;17767:258::-;17849:4;17866:129;17875:12;:10;:12::i;:::-;17889:7;17898:96;17937:15;17898:96;;;;;;;;;;;;;;;;;:11;:25;17910:12;:10;:12::i;:::-;17898:25;;;;;;;;;;;;;;;:34;17924:7;17898:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17866:8;:129::i;:::-;18013:4;18006:11;;17767:258;;;;:::o;16752:165::-;16828:4;16845:42;16855:12;:10;:12::i;:::-;16869:9;16880:6;16845:9;:42::i;:::-;16905:4;16898:11;;16752:165;;;;:::o;15551:21::-;;;;;;;;;;;;;:::o;14432:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;18492:171::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18593:8:::1;18569:21;;:32;;;;;;;;;;;;;;;;;;18617:38;18646:8;18617:38;;;;;;:::i;:::-;;;;;;;;18492:171:::0;:::o;18671:190::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18823:30:::1;18791:29;:62;;;;18671:190:::0;:::o;16923:142::-;17005:4;17029:11;:19;17041:6;17029:19;;;;;;;;;;;;;;;:28;17049:7;17029:28;;;;;;;;;;;;;;;;17022:35;;16923:142;;;;:::o;18992:110::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19089:5:::1;19059:18;:27;19078:7;19059:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18992:110:::0;:::o;14689:35::-;;;;:::o;3469:244::-;2745:12;:10;:12::i;:::-;2735:22;;:6;;;;;;;;;;:22;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3578:1:::1;3558:22;;:8;:22;;::::0;3550:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3668:8;3639:38;;3660:6;::::0;::::1;;;;;;;;3639:38;;;;;;;;;;;;3697:8;3688:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3469:244:::0;:::o;14775:36::-;;;;:::o;1960:90::-;2005:7;2032:10;2025:17;;1960:90;:::o;24656:339::-;24766:1;24748:20;;:6;:20;;;24740:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;24847:1;24828:21;;:7;:21;;;24820:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24932:6;24901:11;:19;24913:6;24901:19;;;;;;;;;;;;;;;:28;24921:7;24901:28;;;;;;;;;;;;;;;:37;;;;24971:7;24954:33;;24963:6;24954:33;;;24980:6;24954:33;;;;;;:::i;:::-;;;;;;;;24656:339;;;:::o;19207:3325::-;19321:1;19303:20;;:6;:20;;;19295:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19405:1;19384:23;;:9;:23;;;19376:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19472:7;:5;:7::i;:::-;19462:17;;:6;:17;;;;:41;;;;;19496:7;:5;:7::i;:::-;19483:20;;:9;:20;;;;19462:41;19459:134;;;19536:12;;19526:6;:22;;19518:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19459:134;19891:28;19922:24;19940:4;19922:9;:24::i;:::-;19891:55;;19994:12;;19970:20;:36;19967:112;;20055:12;;20032:35;;19967:112;20099:24;20150:29;;20126:20;:53;;20099:80;;20208:19;:53;;;;;20245:16;;;;;;;;;;;20244:17;20208:53;:93;;;;;20288:13;20278:23;;:6;:23;;;;20208:93;:131;;;;;20318:21;;;;;;;;;;;20208:131;20190:320;;;20389:29;;20366:52;;20462:36;20477:20;20462:14;:36::i;:::-;20190:320;20584:12;20599:4;20584:19;;20711:18;:26;20730:6;20711:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;20741:18;:29;20760:9;20741:29;;;;;;;;;;;;;;;;;;;;;;;;;20711:59;20708:105;;;20796:5;20786:15;;20708:105;20846:13;20828:32;;:6;:32;;;;:71;;;;;20885:13;20864:35;;:9;:35;;;;20828:71;20825:190;;;20941:16;;20926:12;:31;;;;20987:16;;20972:12;:31;;;;20825:190;21058:13;21037:35;;:9;:35;;;21034:153;;21113:16;;21098:12;:31;;;;21159:16;;21144:12;:31;;;;21034:153;21220:13;21202:32;;:6;:32;;;21199:148;;21275:15;;21260:12;:30;;;;21320:15;;21305:12;:30;;;;21199:148;21367:7;21364:1152;;;21414:23;21440:37;21471:5;21441:24;21452:12;;21441:6;:10;;:24;;;;:::i;:::-;21440:30;;:37;;;;:::i;:::-;21414:63;;21492:23;21518:37;21549:5;21519:24;21530:12;;21519:6;:10;;:24;;;;:::i;:::-;21518:30;;:37;;;;:::i;:::-;21492:63;;21570:17;21590:36;21610:15;21590;:19;;:36;;;;:::i;:::-;21570:56;;21641:17;21661:21;21672:9;21661:6;:10;;:21;;;;:::i;:::-;21641:41;;21717:71;21739:6;21717:71;;;;;;;;;;;;;;;;;:9;:17;21727:6;21717:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;21697:9;:17;21707:6;21697:17;;;;;;;;;;;;;;;:91;;;;21826:35;21851:9;21826;:20;21836:9;21826:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;21803:9;:20;21813:9;21803:20;;;;;;;;;;;;;;;:58;;;;21903:45;21932:15;21903:9;:24;21921:4;21903:24;;;;;;;;;;;;;;;;:28;;:45;;;;:::i;:::-;21876:9;:24;21894:4;21876:24;;;;;;;;;;;;;;;:72;;;;21992:47;22023:15;21992:9;:26;22002:15;;;;;;;;;;;21992:26;;;;;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;21963:9;:26;21973:15;;;;;;;;;;;21963:26;;;;;;;;;;;;;;;:76;;;;22078:9;22061:38;;22070:6;22061:38;;;22089:9;22061:38;;;;;;:::i;:::-;;;;;;;;22144:4;22119:48;;22128:6;22119:48;;;22151:15;22119:48;;;;;;:::i;:::-;;;;;;;;22204:15;;;;;;;;;;;22187:50;;22196:6;22187:50;;;22221:15;22187:50;;;;;;:::i;:::-;;;;;;;;21385:864;;;;21364:1152;;;22308:71;22330:6;22308:71;;;;;;;;;;;;;;;;;:9;:17;22318:6;22308:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22288:9;:17;22298:6;22288:17;;;;;;;;;;;;;;;:91;;;;22417:32;22442:6;22417:9;:20;22427:9;22417:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22394:9;:20;22404:9;22394:20;;;;;;;;;;;;;;;:55;;;;22486:9;22469:35;;22478:6;22469:35;;;22497:6;22469:35;;;;;;:::i;:::-;;;;;;;;21364:1152;19282:3250;;;19207:3325;;;:::o;1044:180::-;1124:4;1154:1;1149;:6;;1157:12;1141:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1181:6;1194:1;1190;:5;;;;:::i;:::-;1181:14;;1215:1;1208:8;;;1044:180;;;;;:::o;736:169::-;788:4;805:6;818:1;814;:5;;;;:::i;:::-;805:14;;843:1;838;:6;;830:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;896:1;889:8;;;736:169;;;;:::o;18291:189::-;18408:5;18374:25;:31;18400:4;18374:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18466:5;18432:40;;18460:4;18432:40;;;;;;;;;;;;18291:189;;:::o;22541:985::-;15482:4;15463:16;;:23;;;;;;;;;;;;;;;;;;22677:12:::1;22692:27;22717:1;22692:20;:24;;:27;;;;:::i;:::-;22677:42;;22730:17;22750:30;22775:4;22750:20;:24;;:30;;;;:::i;:::-;22730:50;;23058:22;23083:21;23058:46;;23149:22;23166:4;23149:16;:22::i;:::-;23302:18;23323:41;23349:14;23323:21;:25;;:41;;;;:::i;:::-;23302:62;;23414:35;23427:9;23438:10;23414:12;:35::i;:::-;23475:43;23490:4;23496:10;23508:9;23475:43;;;;;;;;:::i;:::-;;;;;;;;22615:911;;;;15528:5:::0;15509:16;;:24;;;;;;;;;;;;;;;;;;22541:985;:::o;1230:238::-;1282:4;1308:1;1303;:6;1299:47;;1333:1;1326:8;;;;1299:47;1358:6;1371:1;1367;:5;;;;:::i;:::-;1358:14;;1400:1;1395;1391;:5;;;;:::i;:::-;:10;1383:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1459:1;1452:8;;;1230:238;;;;;:::o;1474:123::-;1526:4;1550:39;1554:1;1557;1550:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1543:46;;1474:123;;;;:::o;911:127::-;963:4;987:43;991:1;994;987:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;980:50;;911:127;;;;:::o;23540:589::-;23666:21;23704:1;23690:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23666:40;;23735:4;23717;23722:1;23717:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23761:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23751:4;23756:1;23751:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23796:62;23813:4;23828:15;23846:11;23796:8;:62::i;:::-;23897:15;:66;;;23978:11;24004:1;24048:4;24075;24095:15;23897:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23595:534;23540:589;:::o;24137:513::-;24285:62;24302:4;24317:15;24335:11;24285:8;:62::i;:::-;24390:15;:31;;;24429:9;24462:4;24482:11;24508:1;24551;24594:7;:5;:7::i;:::-;24616:15;24390:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24137:513;;:::o;1603:246::-;1683:4;1779:1;1775;:5;1782:12;1767:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1806:6;1819:1;1815;:5;;;;:::i;:::-;1806:14;;1840:1;1833:8;;;1603:246;;;;;:::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:329::-;5890:6;5939:2;5927:9;5918:7;5914:23;5910:32;5907:119;;;5945:79;;:::i;:::-;5907:119;6065:1;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6036:117;5831:329;;;;:::o;6166:118::-;6253:24;6271:5;6253:24;:::i;:::-;6248:3;6241:37;6166:118;;:::o;6290:222::-;6383:4;6421:2;6410:9;6406:18;6398:26;;6434:71;6502:1;6491:9;6487:17;6478:6;6434:71;:::i;:::-;6290:222;;;;:::o;6518:116::-;6588:21;6603:5;6588:21;:::i;:::-;6581:5;6578:32;6568:60;;6624:1;6621;6614:12;6568:60;6518:116;:::o;6640:133::-;6683:5;6721:6;6708:20;6699:29;;6737:30;6761:5;6737:30;:::i;:::-;6640:133;;;;:::o;6779:468::-;6844:6;6852;6901:2;6889:9;6880:7;6876:23;6872:32;6869:119;;;6907:79;;:::i;:::-;6869:119;7027:1;7052:53;7097:7;7088:6;7077:9;7073:22;7052:53;:::i;:::-;7042:63;;6998:117;7154:2;7180:50;7222:7;7213:6;7202:9;7198:22;7180:50;:::i;:::-;7170:60;;7125:115;6779:468;;;;;:::o;7253:323::-;7309:6;7358:2;7346:9;7337:7;7333:23;7329:32;7326:119;;;7364:79;;:::i;:::-;7326:119;7484:1;7509:50;7551:7;7542:6;7531:9;7527:22;7509:50;:::i;:::-;7499:60;;7455:114;7253:323;;;;:::o;7582:329::-;7641:6;7690:2;7678:9;7669:7;7665:23;7661:32;7658:119;;;7696:79;;:::i;:::-;7658:119;7816:1;7841:53;7886:7;7877:6;7866:9;7862:22;7841:53;:::i;:::-;7831:63;;7787:117;7582:329;;;;:::o;7917:474::-;7985:6;7993;8042:2;8030:9;8021:7;8017:23;8013:32;8010:119;;;8048:79;;:::i;:::-;8010:119;8168:1;8193:53;8238:7;8229:6;8218:9;8214:22;8193:53;:::i;:::-;8183:63;;8139:117;8295:2;8321:53;8366:7;8357:6;8346:9;8342:22;8321:53;:::i;:::-;8311:63;;8266:118;7917:474;;;;;:::o;8397:180::-;8445:77;8442:1;8435:88;8542:4;8539:1;8532:15;8566:4;8563:1;8556:15;8583:320;8627:6;8664:1;8658:4;8654:12;8644:22;;8711:1;8705:4;8701:12;8732:18;8722:81;;8788:4;8780:6;8776:17;8766:27;;8722:81;8850:2;8842:6;8839:14;8819:18;8816:38;8813:84;;8869:18;;:::i;:::-;8813:84;8634:269;8583:320;;;:::o;8909:182::-;9049:34;9045:1;9037:6;9033:14;9026:58;8909:182;:::o;9097:366::-;9239:3;9260:67;9324:2;9319:3;9260:67;:::i;:::-;9253:74;;9336:93;9425:3;9336:93;:::i;:::-;9454:2;9449:3;9445:12;9438:19;;9097:366;;;:::o;9469:419::-;9635:4;9673:2;9662:9;9658:18;9650:26;;9722:9;9716:4;9712:20;9708:1;9697:9;9693:17;9686:47;9750:131;9876:4;9750:131;:::i;:::-;9742:139;;9469:419;;;:::o;9894:244::-;10034:34;10030:1;10022:6;10018:14;10011:58;10103:27;10098:2;10090:6;10086:15;10079:52;9894:244;:::o;10144:366::-;10286:3;10307:67;10371:2;10366:3;10307:67;:::i;:::-;10300:74;;10383:93;10472:3;10383:93;:::i;:::-;10501:2;10496:3;10492:12;10485:19;;10144:366;;;:::o;10516:419::-;10682:4;10720:2;10709:9;10705:18;10697:26;;10769:9;10763:4;10759:20;10755:1;10744:9;10740:17;10733:47;10797:131;10923:4;10797:131;:::i;:::-;10789:139;;10516:419;;;:::o;10941:225::-;11081:34;11077:1;11069:6;11065:14;11058:58;11150:8;11145:2;11137:6;11133:15;11126:33;10941:225;:::o;11172:366::-;11314:3;11335:67;11399:2;11394:3;11335:67;:::i;:::-;11328:74;;11411:93;11500:3;11411:93;:::i;:::-;11529:2;11524:3;11520:12;11513:19;;11172:366;;;:::o;11544:419::-;11710:4;11748:2;11737:9;11733:18;11725:26;;11797:9;11791:4;11787:20;11783:1;11772:9;11768:17;11761:47;11825:131;11951:4;11825:131;:::i;:::-;11817:139;;11544:419;;;:::o;11969:223::-;12109:34;12105:1;12097:6;12093:14;12086:58;12178:6;12173:2;12165:6;12161:15;12154:31;11969:223;:::o;12198:366::-;12340:3;12361:67;12425:2;12420:3;12361:67;:::i;:::-;12354:74;;12437:93;12526:3;12437:93;:::i;:::-;12555:2;12550:3;12546:12;12539:19;;12198:366;;;:::o;12570:419::-;12736:4;12774:2;12763:9;12759:18;12751:26;;12823:9;12817:4;12813:20;12809:1;12798:9;12794:17;12787:47;12851:131;12977:4;12851:131;:::i;:::-;12843:139;;12570:419;;;:::o;12995:221::-;13135:34;13131:1;13123:6;13119:14;13112:58;13204:4;13199:2;13191:6;13187:15;13180:29;12995:221;:::o;13222:366::-;13364:3;13385:67;13449:2;13444:3;13385:67;:::i;:::-;13378:74;;13461:93;13550:3;13461:93;:::i;:::-;13579:2;13574:3;13570:12;13563:19;;13222:366;;;:::o;13594:419::-;13760:4;13798:2;13787:9;13783:18;13775:26;;13847:9;13841:4;13837:20;13833:1;13822:9;13818:17;13811:47;13875:131;14001:4;13875:131;:::i;:::-;13867:139;;13594:419;;;:::o;14019:224::-;14159:34;14155:1;14147:6;14143:14;14136:58;14228:7;14223:2;14215:6;14211:15;14204:32;14019:224;:::o;14249:366::-;14391:3;14412:67;14476:2;14471:3;14412:67;:::i;:::-;14405:74;;14488:93;14577:3;14488:93;:::i;:::-;14606:2;14601:3;14597:12;14590:19;;14249:366;;;:::o;14621:419::-;14787:4;14825:2;14814:9;14810:18;14802:26;;14874:9;14868:4;14864:20;14860:1;14849:9;14845:17;14838:47;14902:131;15028:4;14902:131;:::i;:::-;14894:139;;14621:419;;;:::o;15046:222::-;15186:34;15182:1;15174:6;15170:14;15163:58;15255:5;15250:2;15242:6;15238:15;15231:30;15046:222;:::o;15274:366::-;15416:3;15437:67;15501:2;15496:3;15437:67;:::i;:::-;15430:74;;15513:93;15602:3;15513:93;:::i;:::-;15631:2;15626:3;15622:12;15615:19;;15274:366;;;:::o;15646:419::-;15812:4;15850:2;15839:9;15835:18;15827:26;;15899:9;15893:4;15889:20;15885:1;15874:9;15870:17;15863:47;15927:131;16053:4;15927:131;:::i;:::-;15919:139;;15646:419;;;:::o;16071:227::-;16211:34;16207:1;16199:6;16195:14;16188:58;16280:10;16275:2;16267:6;16263:15;16256:35;16071:227;:::o;16304:366::-;16446:3;16467:67;16531:2;16526:3;16467:67;:::i;:::-;16460:74;;16543:93;16632:3;16543:93;:::i;:::-;16661:2;16656:3;16652:12;16645:19;;16304:366;;;:::o;16676:419::-;16842:4;16880:2;16869:9;16865:18;16857:26;;16929:9;16923:4;16919:20;16915:1;16904:9;16900:17;16893:47;16957:131;17083:4;16957:131;:::i;:::-;16949:139;;16676:419;;;:::o;17101:180::-;17149:77;17146:1;17139:88;17246:4;17243:1;17236:15;17270:4;17267:1;17260:15;17287:194;17327:4;17347:20;17365:1;17347:20;:::i;:::-;17342:25;;17381:20;17399:1;17381:20;:::i;:::-;17376:25;;17425:1;17422;17418:9;17410:17;;17449:1;17443:4;17440:11;17437:37;;;17454:18;;:::i;:::-;17437:37;17287:194;;;;:::o;17487:191::-;17527:3;17546:20;17564:1;17546:20;:::i;:::-;17541:25;;17580:20;17598:1;17580:20;:::i;:::-;17575:25;;17623:1;17620;17616:9;17609:16;;17644:3;17641:1;17638:10;17635:36;;;17651:18;;:::i;:::-;17635:36;17487:191;;;;:::o;17684:177::-;17824:29;17820:1;17812:6;17808:14;17801:53;17684:177;:::o;17867:366::-;18009:3;18030:67;18094:2;18089:3;18030:67;:::i;:::-;18023:74;;18106:93;18195:3;18106:93;:::i;:::-;18224:2;18219:3;18215:12;18208:19;;17867:366;;;:::o;18239:419::-;18405:4;18443:2;18432:9;18428:18;18420:26;;18492:9;18486:4;18482:20;18478:1;18467:9;18463:17;18456:47;18520:131;18646:4;18520:131;:::i;:::-;18512:139;;18239:419;;;:::o;18664:442::-;18813:4;18851:2;18840:9;18836:18;18828:26;;18864:71;18932:1;18921:9;18917:17;18908:6;18864:71;:::i;:::-;18945:72;19013:2;19002:9;18998:18;18989:6;18945:72;:::i;:::-;19027;19095:2;19084:9;19080:18;19071:6;19027:72;:::i;:::-;18664:442;;;;;;:::o;19112:410::-;19152:7;19175:20;19193:1;19175:20;:::i;:::-;19170:25;;19209:20;19227:1;19209:20;:::i;:::-;19204:25;;19264:1;19261;19257:9;19286:30;19304:11;19286:30;:::i;:::-;19275:41;;19465:1;19456:7;19452:15;19449:1;19446:22;19426:1;19419:9;19399:83;19376:139;;19495:18;;:::i;:::-;19376:139;19160:362;19112:410;;;;:::o;19528:180::-;19576:77;19573:1;19566:88;19673:4;19670:1;19663:15;19697:4;19694:1;19687:15;19714:185;19754:1;19771:20;19789:1;19771:20;:::i;:::-;19766:25;;19805:20;19823:1;19805:20;:::i;:::-;19800:25;;19844:1;19834:35;;19849:18;;:::i;:::-;19834:35;19891:1;19888;19884:9;19879:14;;19714:185;;;;:::o;19905:220::-;20045:34;20041:1;20033:6;20029:14;20022:58;20114:3;20109:2;20101:6;20097:15;20090:28;19905:220;:::o;20131:366::-;20273:3;20294:67;20358:2;20353:3;20294:67;:::i;:::-;20287:74;;20370:93;20459:3;20370:93;:::i;:::-;20488:2;20483:3;20479:12;20472:19;;20131:366;;;:::o;20503:419::-;20669:4;20707:2;20696:9;20692:18;20684:26;;20756:9;20750:4;20746:20;20742:1;20731:9;20727:17;20720:47;20784:131;20910:4;20784:131;:::i;:::-;20776:139;;20503:419;;;:::o;20928:180::-;20976:77;20973:1;20966:88;21073:4;21070:1;21063:15;21097:4;21094:1;21087:15;21114:180;21162:77;21159:1;21152:88;21259:4;21256:1;21249:15;21283:4;21280:1;21273:15;21300:143;21357:5;21388:6;21382:13;21373:22;;21404:33;21431:5;21404:33;:::i;:::-;21300:143;;;;:::o;21449:351::-;21519:6;21568:2;21556:9;21547:7;21543:23;21539:32;21536:119;;;21574:79;;:::i;:::-;21536:119;21694:1;21719:64;21775:7;21766:6;21755:9;21751:22;21719:64;:::i;:::-;21709:74;;21665:128;21449:351;;;;:::o;21806:85::-;21851:7;21880:5;21869:16;;21806:85;;;:::o;21897:158::-;21955:9;21988:61;22006:42;22015:32;22041:5;22015:32;:::i;:::-;22006:42;:::i;:::-;21988:61;:::i;:::-;21975:74;;21897:158;;;:::o;22061:147::-;22156:45;22195:5;22156:45;:::i;:::-;22151:3;22144:58;22061:147;;:::o;22214:114::-;22281:6;22315:5;22309:12;22299:22;;22214:114;;;:::o;22334:184::-;22433:11;22467:6;22462:3;22455:19;22507:4;22502:3;22498:14;22483:29;;22334:184;;;;:::o;22524:132::-;22591:4;22614:3;22606:11;;22644:4;22639:3;22635:14;22627:22;;22524:132;;;:::o;22662:108::-;22739:24;22757:5;22739:24;:::i;:::-;22734:3;22727:37;22662:108;;:::o;22776:179::-;22845:10;22866:46;22908:3;22900:6;22866:46;:::i;:::-;22944:4;22939:3;22935:14;22921:28;;22776:179;;;;:::o;22961:113::-;23031:4;23063;23058:3;23054:14;23046:22;;22961:113;;;:::o;23110:732::-;23229:3;23258:54;23306:5;23258:54;:::i;:::-;23328:86;23407:6;23402:3;23328:86;:::i;:::-;23321:93;;23438:56;23488:5;23438:56;:::i;:::-;23517:7;23548:1;23533:284;23558:6;23555:1;23552:13;23533:284;;;23634:6;23628:13;23661:63;23720:3;23705:13;23661:63;:::i;:::-;23654:70;;23747:60;23800:6;23747:60;:::i;:::-;23737:70;;23593:224;23580:1;23577;23573:9;23568:14;;23533:284;;;23537:14;23833:3;23826:10;;23234:608;;;23110:732;;;;:::o;23848:831::-;24111:4;24149:3;24138:9;24134:19;24126:27;;24163:71;24231:1;24220:9;24216:17;24207:6;24163:71;:::i;:::-;24244:80;24320:2;24309:9;24305:18;24296:6;24244:80;:::i;:::-;24371:9;24365:4;24361:20;24356:2;24345:9;24341:18;24334:48;24399:108;24502:4;24493:6;24399:108;:::i;:::-;24391:116;;24517:72;24585:2;24574:9;24570:18;24561:6;24517:72;:::i;:::-;24599:73;24667:3;24656:9;24652:19;24643:6;24599:73;:::i;:::-;23848:831;;;;;;;;:::o;24685:807::-;24934:4;24972:3;24961:9;24957:19;24949:27;;24986:71;25054:1;25043:9;25039:17;25030:6;24986:71;:::i;:::-;25067:72;25135:2;25124:9;25120:18;25111:6;25067:72;:::i;:::-;25149:80;25225:2;25214:9;25210:18;25201:6;25149:80;:::i;:::-;25239;25315:2;25304:9;25300:18;25291:6;25239:80;:::i;:::-;25329:73;25397:3;25386:9;25382:19;25373:6;25329:73;:::i;:::-;25412;25480:3;25469:9;25465:19;25456:6;25412:73;:::i;:::-;24685:807;;;;;;;;;:::o;25498:143::-;25555:5;25586:6;25580:13;25571:22;;25602:33;25629:5;25602:33;:::i;:::-;25498:143;;;;:::o;25647:663::-;25735:6;25743;25751;25800:2;25788:9;25779:7;25775:23;25771:32;25768:119;;;25806:79;;:::i;:::-;25768:119;25926:1;25951:64;26007:7;25998:6;25987:9;25983:22;25951:64;:::i;:::-;25941:74;;25897:128;26064:2;26090:64;26146:7;26137:6;26126:9;26122:22;26090:64;:::i;:::-;26080:74;;26035:129;26203:2;26229:64;26285:7;26276:6;26265:9;26261:22;26229:64;:::i;:::-;26219:74;;26174:129;25647:663;;;;;:::o

Swarm Source

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