ETH Price: $2,619.31 (+0.99%)

Token

FineBurn (FURN)
 

Overview

Max Total Supply

976,223.467623 FURN

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
15,920 FURN

Value
$0.00
0xC8606b7dDF5A30E49c41bb277b097824E871198F
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:
FineBurn

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-15
*/

// WEB : https://furntoken.com/
// TELEGRAM : https://t.me/FURN_erc
// https://x.com/FURN_erc
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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 != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

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

    string private constant _name = "FineBurn";
    string private constant _symbol = "FURN";
    uint8 private constant _decimals = 6;
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 public _tTotal = 1000 * 1e3 * 1e6; //1,000,000

    uint256 public _maxWalletAmount = 20 * 1e3 * 1e6; //2%
    uint256 public j_maxtxn = 20 * 1e3 * 1e6; //2%
    uint256 public swapAmount = 7 * 1e2 * 1e6; //.07%
    uint256 private buyFINEUpperLimit = 200 * 1e14; // 0.01

    // fees
    uint256 public j_liqBuy = 0; 
    uint256 public j_burnBuy = 3;
    uint256 public j_FINEBuy = 17;
    uint256 public j_jeetBuy = 0;

    uint256 public j_liqSell = 0; 
    uint256 public j_burnSell = 3;
    uint256 public j_FINESell = 20;
    uint256 public j_jeetSell = 2;
 
    uint256 private j_previousLiqFee = j_liqFee;
    uint256 private j_previousBurnFee = j_burnFee;
    uint256 private j_previousFINEFee = j_FINEFee;
    uint256 private j_previousJeetTax = j_jeetTax;
    
    uint256 private j_liqFee;
    uint256 private j_burnFee;
    uint256 private j_FINEFee;
    uint256 private j_jeetTax;

    uint256 public _totalBurned;

    struct FeeBreakdown {
        uint256 tLiq;
        uint256 tBurn;
        uint256 tFINE;
        uint256 tJeet;
        uint256 tAmount;
    }

    mapping(address => bool) private bots;
    address payable private FINEburnWallet = payable(0x9BC5dac5Fddd8734F8EE33a427fA053fE1AD4666);
    address payable private _marky = payable(0x9BC5dac5Fddd8734F8EE33a427fA053fE1AD4666);
    address payable public dead = payable(0x000000000000000000000000000000000000dEaD);
    address FINE = 0x75C97384cA209f915381755c582EC0E2cE88c1BA;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping = false;
    bool public burnMode = false;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[FINEburnWallet] = true;
        _isExcludedFromFee[dead] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function totalBurned() public view returns (uint256) {
        return _totalBurned;
    }

    function burning(address _account, uint _amount) private {  
        require( _amount <= balanceOf(_account));
        _balances[_account] = _balances[_account].sub(_amount);
        _tTotal = _tTotal.sub(_amount);
        _totalBurned = _totalBurned.add(_amount);
        emit Transfer(_account, address(0), _amount);
    }

    function removeAllFee() private {
        if (j_burnFee == 0 && j_liqFee == 0 && j_FINEFee == 0 && j_jeetTax == 0) return;
        j_previousBurnFee = j_burnFee;
        j_previousLiqFee = j_liqFee;
        j_previousFINEFee = j_FINEFee;
        j_previousJeetTax = j_jeetTax;

        j_burnFee = 0;
        j_liqFee = 0;
        j_FINEFee = 0;
        j_jeetTax = 0;
    }
    
    function restoreAllFee() private {
        j_liqFee = j_previousLiqFee;
        j_burnFee = j_previousBurnFee;
        j_FINEFee = j_previousFINEFee;
        j_jeetTax = j_previousJeetTax;
    }

    function removeJeetTax() external {
        require(_msgSender() == FINEburnWallet);
        j_jeetSell = 0;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to]);

        bool takeFee = true;

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet.");
                require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqBuy;
                j_burnFee = j_burnBuy;
                j_FINEFee = j_FINEBuy;
                j_jeetTax = j_jeetBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqSell;
                j_burnFee = j_burnSell;
                j_FINEFee = j_FINESell;
                j_jeetTax = j_jeetSell;
            }
           
            if (!swapping && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
            
                if (!burnMode && (contractETHBalance > 0)) {
                    sendETHToFee(address(this).balance);
                } else if (burnMode && (contractETHBalance > buyFINEUpperLimit)) {
                        uint256 buyAmount = (contractETHBalance.div(2));
                        bool marky;
                        (marky,) = address (_marky).call{value: (buyAmount/2)}("");
                        buyFINE(buyAmount/2);
                        
                }                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _transferAgain(from, to, amount, takeFee);
        restoreAllFee();
    }

    function setMaxTxn(uint256 maxTransaction) external {
        require(maxTransaction >= 10 * 1e3 * 1e6,"negative ghost rider");
        require(_msgSender() == FINEburnWallet);
        j_maxtxn = maxTransaction;
    }

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

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

      // make the swap
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            dead, // Burn address
            block.timestamp
        );        
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            FINEburnWallet,
            block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockSwap {
        uint256 autoLPamount = j_liqFee.mul(contractTokenBalance).div(j_burnFee.add(j_FINEFee).add(j_jeetTax).add(j_liqFee));
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(otherHalf);
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);
        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        _marky.transfer(amount);
    }

    function manualSwap() external {
        require(_msgSender() == FINEburnWallet);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSend() external {
        require(_msgSender() == FINEburnWallet);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        
        FeeBreakdown memory fees;
        fees.tBurn = amount.mul(j_burnFee).div(100);
        fees.tLiq = amount.mul(j_liqFee).div(100);
        fees.tFINE = amount.mul(j_FINEFee).div(100);
        fees.tJeet = amount.mul(j_jeetTax).div(100);
        
        fees.tAmount = amount.sub(fees.tFINE).sub(fees.tJeet).sub(fees.tBurn).sub(fees.tLiq);

        uint256 amountPreBurn = amount.sub(fees.tBurn);
        burning(sender, fees.tBurn);

        _balances[sender] = _balances[sender].sub(amountPreBurn);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tFINE).add(fees.tJeet).add(fees.tBurn.add(fees.tLiq));
        
        if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) {
            burning(uniswapV2Pair, fees.tBurn);
        }

        emit Transfer(sender, recipient, fees.tAmount);
        restoreAllFee();
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == FINEburnWallet);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == FINEburnWallet);
        swapAmount = _swapAmount;
    }

    function turnOnTheBurn() public onlyOwner {
        burnMode = true;
    }

    function buyFINE(uint256 amount) private {
    	if (amount > 0) {
    	    swapETHForTokens(amount);
	    }
    }

    function setBuyFINERate(uint256 buyFINEToken) external {
        require(_msgSender() == FINEburnWallet);
        buyFINEUpperLimit = buyFINEToken;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"j_FINEBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_FINESell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_jeetBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_jeetSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeJeetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFINEToken","type":"uint256"}],"name":"setBuyFINERate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"turnOnTheBurn","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"}]

608060405264e8d4a510006005556404a817c8006006556404a817c8006007556329b9270060085566470de4df8200006009556000600a556003600b556011600c556000600d556000600e556003600f5560146010556002601155601654601255601754601355601854601455601954601555739bc5dac5fddd8734f8ee33a427fa053fe1ad4666601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739bc5dac5fddd8734f8ee33a427fa053fe1ad4666601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507375c97384ca209f915381755c582ec0e2ce88c1ba601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506000602160156101000a81548160ff021916908315150217905550348015620001f757600080fd5b5060006200020a6200072f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003749190620007ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004029190620007ca565b6040518363ffffffff1660e01b8152600401620004219291906200080d565b6020604051808303816000875af115801562000441573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004679190620007ca565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460026000620004be6200072f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620005126200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006bf6200072f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000720919062000855565b60405180910390a35062000872565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007928262000765565b9050919050565b620007a48162000785565b8114620007b057600080fd5b50565b600081519050620007c48162000799565b92915050565b600060208284031215620007e357620007e262000760565b5b6000620007f384828501620007b3565b91505092915050565b620008078162000785565b82525050565b6000604082019050620008246000830185620007fc565b620008336020830184620007fc565b9392505050565b6000819050919050565b6200084f816200083a565b82525050565b60006020820190506200086c600083018462000844565b92915050565b61415e80620008826000396000f3fe6080604052600436106102295760003560e01c806370a0823111610123578063d89135cd116100ab578063f28264e11161006f578063f28264e1146107c4578063f2fde38b146107ef578063f429389014610818578063fc588c041461082f578063fd01bd4c1461085857610230565b8063d89135cd146106dd578063d9f7e4df14610708578063dc903ba114610733578063dd62ed3e1461075e578063e632313c1461079b57610230565b80638ea78153116100f25780638ea78153146105f457806395d89b411461061f578063a9059cbb1461064a578063af465a2714610687578063d3e6cee0146106b257610230565b806370a082311461054a578063715018a6146105875780637a8ef8721461059e5780638da5cb5b146105c957610230565b806327a14fc2116101b157806351bc3c851161017557806351bc3c85146104af5780635dbc2fe1146104c657806363a640ff146104dd578063653092fd146105085780636c0a24eb1461051f57610230565b806327a14fc2146103da5780632e8fa82114610403578063313ce5671461042e57806336cf7c871461045957806349bd5a5e1461048457610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c578063233296f01461034757806323b872dd1461037257806323bbf9e7146103af57610230565b806306fdde0314610235578063095ea7b3146102605780630cdf21871461029d57806310d4cce4146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610883565b60405161025791906131c7565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613282565b6108c0565b60405161029491906132dd565b60405180910390f35b3480156102a957600080fd5b506102b26108de565b6040516102bf9190613307565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613322565b6108e4565b005b3480156102fd57600080fd5b5061030661094f565b60405161031391906133ae565b60405180910390f35b34801561032857600080fd5b50610331610975565b60405161033e9190613307565b60405180910390f35b34801561035357600080fd5b5061035c61097f565b6040516103699190613307565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906133c9565b610985565b6040516103a691906132dd565b60405180910390f35b3480156103bb57600080fd5b506103c4610a5e565b6040516103d19190613307565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190613322565b610a64565b005b34801561040f57600080fd5b50610418610b26565b6040516104259190613307565b60405180910390f35b34801561043a57600080fd5b50610443610b2c565b6040516104509190613438565b60405180910390f35b34801561046557600080fd5b5061046e610b35565b60405161047b9190613474565b60405180910390f35b34801561049057600080fd5b50610499610b5b565b6040516104a6919061349e565b60405180910390f35b3480156104bb57600080fd5b506104c4610b81565b005b3480156104d257600080fd5b506104db610c05565b005b3480156104e957600080fd5b506104f2610cb7565b6040516104ff9190613307565b60405180910390f35b34801561051457600080fd5b5061051d610cbd565b005b34801561052b57600080fd5b50610534610d28565b6040516105419190613307565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c91906134b9565b610d2e565b60405161057e9190613307565b60405180910390f35b34801561059357600080fd5b5061059c610d77565b005b3480156105aa57600080fd5b506105b3610eca565b6040516105c09190613307565b60405180910390f35b3480156105d557600080fd5b506105de610ed0565b6040516105eb919061349e565b60405180910390f35b34801561060057600080fd5b50610609610ef9565b60405161061691906132dd565b60405180910390f35b34801561062b57600080fd5b50610634610f0c565b60405161064191906131c7565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190613282565b610f49565b60405161067e91906132dd565b60405180910390f35b34801561069357600080fd5b5061069c610f67565b6040516106a99190613307565b60405180910390f35b3480156106be57600080fd5b506106c7610f6d565b6040516106d49190613307565b60405180910390f35b3480156106e957600080fd5b506106f2610f73565b6040516106ff9190613307565b60405180910390f35b34801561071457600080fd5b5061071d610f7d565b60405161072a9190613307565b60405180910390f35b34801561073f57600080fd5b50610748610f83565b6040516107559190613307565b60405180910390f35b34801561076a57600080fd5b50610785600480360381019061078091906134e6565b610f89565b6040516107929190613307565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd9190613322565b611010565b005b3480156107d057600080fd5b506107d961107b565b6040516107e69190613307565b60405180910390f35b3480156107fb57600080fd5b50610816600480360381019061081191906134b9565b611081565b005b34801561082457600080fd5b5061082d611191565b005b34801561083b57600080fd5b5061085660048036038101906108519190613322565b61120d565b005b34801561086457600080fd5b5061086d6112c0565b60405161087a9190613307565b60405180910390f35b60606040518060400160405280600881526020017f46696e654275726e000000000000000000000000000000000000000000000000815250905090565b60006108d46108cd6112c6565b84846112ce565b6001905092915050565b600e5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109256112c6565b73ffffffffffffffffffffffffffffffffffffffff161461094557600080fd5b8060098190555050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60075481565b6000610992848484611497565b610a538461099e6112c6565b610a4e8560405180606001604052806028815260200161410160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a046112c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed69092919063ffffffff16565b6112ce565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa56112c6565b73ffffffffffffffffffffffffffffffffffffffff1614610ac557600080fd5b610adb60c8600554611f3a90919063ffffffff16565b8111610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613598565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc26112c6565b73ffffffffffffffffffffffffffffffffffffffff1614610be257600080fd5b6000610bed30610d2e565b90506000811115610c0257610c0181611f84565b5b50565b610c0d6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190613604565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b600d5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfe6112c6565b73ffffffffffffffffffffffffffffffffffffffff1614610d1e57600080fd5b6000601181905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d7f6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390613604565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60606040518060400160405280600481526020017f4655524e00000000000000000000000000000000000000000000000000000000815250905090565b6000610f5d610f566112c6565b8484611497565b6001905092915050565b60055481565b60115481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110516112c6565b73ffffffffffffffffffffffffffffffffffffffff161461107157600080fd5b8060088190555050565b60105481565b6110896112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90613604565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90613696565b60405180910390fd5b61118e816121fd565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d26112c6565b73ffffffffffffffffffffffffffffffffffffffff16146111f257600080fd5b6000479050600081111561120a57611209816122c1565b5b50565b6402540be400811015611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613702565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112966112c6565b73ffffffffffffffffffffffffffffffffffffffff16146112b657600080fd5b8060078190555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490613794565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390613826565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148a9190613307565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd906138b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c9061394a565b60405180910390fd5b600081116115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906139dc565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561165c5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61166557600080fd5b600060019050611673610ed0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e157506116b1610ed0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561171957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561175157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e1157602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118015750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118ac5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806118ab5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611956576006546118cf836118c186610d2e565b61232d90919063ffffffff16565b1115611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613a6e565b60405180910390fd5b600754821115611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c90613b00565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a015750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a575750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611aad5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad757600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b825750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bd85750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c2e5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c5857600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611cc35750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e10576000611cd330610d2e565b9050600854811115611ce957611ce88161238b565b5b6000479050602160159054906101000a900460ff16158015611d0b5750600081115b15611d1e57611d19476122c1565b611e0d565b602160159054906101000a900460ff168015611d3b575060095481115b15611e0c576000611d56600283611f3a90919063ffffffff16565b90506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600283611da09190613b7e565b604051611dac90613be0565b60006040518083038185875af1925050503d8060008114611de9576040519150601f19603f3d011682016040523d82523d6000602084013e611dee565b606091505b505080915050611e09600283611e049190613b7e565b6124b4565b50505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ebc57600090505b611ec8848484846124ca565b611ed0612a94565b50505050565b6000838311158290611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1591906131c7565b60405180910390fd5b5060008385611f2d9190613bf5565b9050809150509392505050565b6000611f7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612aba565b905092915050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fbc57611fbb613c29565b5b604051908082528060200260200182016040528015611fea5781602001602082028036833780820191505090505b509050308160008151811061200257612001613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cd9190613c9c565b816001815181106120e1576120e0613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214830602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121ac959493929190613dc2565b600060405180830381600087803b1580156121c657600080fd5b505af11580156121da573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612329573d6000803e3d6000fd5b5050565b600080828461233c9190613e1c565b905083811015612381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237890613ebe565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff021916908315150217905550600061240d6123ea6016546123dc6019546123ce60185460175461232d90919063ffffffff16565b61232d90919063ffffffff16565b61232d90919063ffffffff16565b6123ff84601654612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b90506000612425600283611f3a90919063ffffffff16565b9050600061243c8285612b9790919063ffffffff16565b9050600047905061244c82611f84565b600061248583612477866124698647612b9790919063ffffffff16565b612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b90506124918482612be1565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156124c7576124c681612ce1565b5b50565b806124d8576124d7612f3a565b5b6124e06130ff565b61250860646124fa60175486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b816020018181525050612539606461252b60165486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b81600001818152505061256a606461255c60185486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b81604001818152505061259b606461258d60195486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b8160600181815250506125fd81600001516125ef83602001516125e185606001516125d387604001518a612b9790919063ffffffff16565b612b9790919063ffffffff16565b612b9790919063ffffffff16565b612b9790919063ffffffff16565b816080018181525050600061261f826020015185612b9790919063ffffffff16565b905061262f868360200151612fb5565b61268181600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271a8260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f561277b8360000151846020015161232d90919063ffffffff16565b6127e784606001516127d98660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232d90919063ffffffff16565b61232d90919063ffffffff16565b61232d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff1680156128a25750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156128da57503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129345750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e55750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806129e45750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612a1b57612a1a602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360200151612fb5565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612a7c9190613307565b60405180910390a3612a8c612a94565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b60008083118290612b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af891906131c7565b60405180910390fd5b5060008385612b109190613b7e565b9050809150509392505050565b6000808303612b2f5760009050612b91565b60008284612b3d9190613ede565b9050828482612b4c9190613b7e565b14612b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8390613faa565b60405180910390fd5b809150505b92915050565b6000612bd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ed6565b905092915050565b612c0e30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c9796959493929190613feb565b60606040518083038185885af1158015612cb5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612cda9190614061565b5050505050565b6000600267ffffffffffffffff811115612cfe57612cfd613c29565b5b604051908082528060200260200182016040528015612d2c5781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc09190613c9c565b81600081518110612dd457612dd3613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e4557612e44613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612f0494939291906140b4565b6000604051808303818588803b158015612f1d57600080fd5b505af1158015612f31573d6000803e3d6000fd5b50505050505050565b6000601754148015612f4e57506000601654145b8015612f5c57506000601854145b8015612f6a57506000601954145b612fb35760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b612fbe82610d2e565b811115612fca57600080fd5b61301c81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061307481600554612b9790919063ffffffff16565b60058190555061308f81601a5461232d90919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130f39190613307565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561316857808201518184015260208101905061314d565b83811115613177576000848401525b50505050565b6000601f19601f8301169050919050565b60006131998261312e565b6131a38185613139565b93506131b381856020860161314a565b6131bc8161317d565b840191505092915050565b600060208201905081810360008301526131e1818461318e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613219826131ee565b9050919050565b6132298161320e565b811461323457600080fd5b50565b60008135905061324681613220565b92915050565b6000819050919050565b61325f8161324c565b811461326a57600080fd5b50565b60008135905061327c81613256565b92915050565b60008060408385031215613299576132986131e9565b5b60006132a785828601613237565b92505060206132b88582860161326d565b9150509250929050565b60008115159050919050565b6132d7816132c2565b82525050565b60006020820190506132f260008301846132ce565b92915050565b6133018161324c565b82525050565b600060208201905061331c60008301846132f8565b92915050565b600060208284031215613338576133376131e9565b5b60006133468482850161326d565b91505092915050565b6000819050919050565b600061337461336f61336a846131ee565b61334f565b6131ee565b9050919050565b600061338682613359565b9050919050565b60006133988261337b565b9050919050565b6133a88161338d565b82525050565b60006020820190506133c3600083018461339f565b92915050565b6000806000606084860312156133e2576133e16131e9565b5b60006133f086828701613237565b935050602061340186828701613237565b92505060406134128682870161326d565b9150509250925092565b600060ff82169050919050565b6134328161341c565b82525050565b600060208201905061344d6000830184613429565b92915050565b600061345e826131ee565b9050919050565b61346e81613453565b82525050565b60006020820190506134896000830184613465565b92915050565b6134988161320e565b82525050565b60006020820190506134b3600083018461348f565b92915050565b6000602082840312156134cf576134ce6131e9565b5b60006134dd84828501613237565b91505092915050565b600080604083850312156134fd576134fc6131e9565b5b600061350b85828601613237565b925050602061351c85828601613237565b9150509250929050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b6000613582602a83613139565b915061358d82613526565b604082019050919050565b600060208201905081810360008301526135b181613575565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ee602083613139565b91506135f9826135b8565b602082019050919050565b6000602082019050818103600083015261361d816135e1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613680602683613139565b915061368b82613624565b604082019050919050565b600060208201905081810360008301526136af81613673565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b60006136ec601483613139565b91506136f7826136b6565b602082019050919050565b6000602082019050818103600083015261371b816136df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061377e602483613139565b915061378982613722565b604082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613810602283613139565b915061381b826137b4565b604082019050919050565b6000602082019050818103600083015261383f81613803565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138a2602583613139565b91506138ad82613846565b604082019050919050565b600060208201905081810360008301526138d181613895565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613934602383613139565b915061393f826138d8565b604082019050919050565b6000602082019050818103600083015261396381613927565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139c6602983613139565b91506139d18261396a565b604082019050919050565b600060208201905081810360008301526139f5816139b9565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613a58602b83613139565b9150613a63826139fc565b604082019050919050565b60006020820190508181036000830152613a8781613a4b565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613aea602c83613139565b9150613af582613a8e565b604082019050919050565b60006020820190508181036000830152613b1981613add565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b898261324c565b9150613b948361324c565b925082613ba457613ba3613b20565b5b828204905092915050565b600081905092915050565b50565b6000613bca600083613baf565b9150613bd582613bba565b600082019050919050565b6000613beb82613bbd565b9150819050919050565b6000613c008261324c565b9150613c0b8361324c565b925082821015613c1e57613c1d613b4f565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c9681613220565b92915050565b600060208284031215613cb257613cb16131e9565b5b6000613cc084828501613c87565b91505092915050565b6000819050919050565b6000613cee613ce9613ce484613cc9565b61334f565b61324c565b9050919050565b613cfe81613cd3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d398161320e565b82525050565b6000613d4b8383613d30565b60208301905092915050565b6000602082019050919050565b6000613d6f82613d04565b613d798185613d0f565b9350613d8483613d20565b8060005b83811015613db5578151613d9c8882613d3f565b9750613da783613d57565b925050600181019050613d88565b5085935050505092915050565b600060a082019050613dd760008301886132f8565b613de46020830187613cf5565b8181036040830152613df68186613d64565b9050613e05606083018561348f565b613e1260808301846132f8565b9695505050505050565b6000613e278261324c565b9150613e328361324c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e6757613e66613b4f565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ea8601b83613139565b9150613eb382613e72565b602082019050919050565b60006020820190508181036000830152613ed781613e9b565b9050919050565b6000613ee98261324c565b9150613ef48361324c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2d57613f2c613b4f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f94602183613139565b9150613f9f82613f38565b604082019050919050565b60006020820190508181036000830152613fc381613f87565b9050919050565b6000613fd58261337b565b9050919050565b613fe581613fca565b82525050565b600060c082019050614000600083018961348f565b61400d60208301886132f8565b61401a6040830187613cf5565b6140276060830186613cf5565b6140346080830185613fdc565b61404160a08301846132f8565b979650505050505050565b60008151905061405b81613256565b92915050565b60008060006060848603121561407a576140796131e9565b5b60006140888682870161404c565b93505060206140998682870161404c565b92505060406140aa8682870161404c565b9150509250925092565b60006080820190506140c96000830187613cf5565b81810360208301526140db8186613d64565b90506140ea6040830185613fdc565b6140f760608301846132f8565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051f4d87b7a496eb09c1b4b740b267158e550f70f93d491498f9488cfa0e5db4464736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806370a0823111610123578063d89135cd116100ab578063f28264e11161006f578063f28264e1146107c4578063f2fde38b146107ef578063f429389014610818578063fc588c041461082f578063fd01bd4c1461085857610230565b8063d89135cd146106dd578063d9f7e4df14610708578063dc903ba114610733578063dd62ed3e1461075e578063e632313c1461079b57610230565b80638ea78153116100f25780638ea78153146105f457806395d89b411461061f578063a9059cbb1461064a578063af465a2714610687578063d3e6cee0146106b257610230565b806370a082311461054a578063715018a6146105875780637a8ef8721461059e5780638da5cb5b146105c957610230565b806327a14fc2116101b157806351bc3c851161017557806351bc3c85146104af5780635dbc2fe1146104c657806363a640ff146104dd578063653092fd146105085780636c0a24eb1461051f57610230565b806327a14fc2146103da5780632e8fa82114610403578063313ce5671461042e57806336cf7c871461045957806349bd5a5e1461048457610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c578063233296f01461034757806323b872dd1461037257806323bbf9e7146103af57610230565b806306fdde0314610235578063095ea7b3146102605780630cdf21871461029d57806310d4cce4146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610883565b60405161025791906131c7565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613282565b6108c0565b60405161029491906132dd565b60405180910390f35b3480156102a957600080fd5b506102b26108de565b6040516102bf9190613307565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613322565b6108e4565b005b3480156102fd57600080fd5b5061030661094f565b60405161031391906133ae565b60405180910390f35b34801561032857600080fd5b50610331610975565b60405161033e9190613307565b60405180910390f35b34801561035357600080fd5b5061035c61097f565b6040516103699190613307565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906133c9565b610985565b6040516103a691906132dd565b60405180910390f35b3480156103bb57600080fd5b506103c4610a5e565b6040516103d19190613307565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190613322565b610a64565b005b34801561040f57600080fd5b50610418610b26565b6040516104259190613307565b60405180910390f35b34801561043a57600080fd5b50610443610b2c565b6040516104509190613438565b60405180910390f35b34801561046557600080fd5b5061046e610b35565b60405161047b9190613474565b60405180910390f35b34801561049057600080fd5b50610499610b5b565b6040516104a6919061349e565b60405180910390f35b3480156104bb57600080fd5b506104c4610b81565b005b3480156104d257600080fd5b506104db610c05565b005b3480156104e957600080fd5b506104f2610cb7565b6040516104ff9190613307565b60405180910390f35b34801561051457600080fd5b5061051d610cbd565b005b34801561052b57600080fd5b50610534610d28565b6040516105419190613307565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c91906134b9565b610d2e565b60405161057e9190613307565b60405180910390f35b34801561059357600080fd5b5061059c610d77565b005b3480156105aa57600080fd5b506105b3610eca565b6040516105c09190613307565b60405180910390f35b3480156105d557600080fd5b506105de610ed0565b6040516105eb919061349e565b60405180910390f35b34801561060057600080fd5b50610609610ef9565b60405161061691906132dd565b60405180910390f35b34801561062b57600080fd5b50610634610f0c565b60405161064191906131c7565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190613282565b610f49565b60405161067e91906132dd565b60405180910390f35b34801561069357600080fd5b5061069c610f67565b6040516106a99190613307565b60405180910390f35b3480156106be57600080fd5b506106c7610f6d565b6040516106d49190613307565b60405180910390f35b3480156106e957600080fd5b506106f2610f73565b6040516106ff9190613307565b60405180910390f35b34801561071457600080fd5b5061071d610f7d565b60405161072a9190613307565b60405180910390f35b34801561073f57600080fd5b50610748610f83565b6040516107559190613307565b60405180910390f35b34801561076a57600080fd5b50610785600480360381019061078091906134e6565b610f89565b6040516107929190613307565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd9190613322565b611010565b005b3480156107d057600080fd5b506107d961107b565b6040516107e69190613307565b60405180910390f35b3480156107fb57600080fd5b50610816600480360381019061081191906134b9565b611081565b005b34801561082457600080fd5b5061082d611191565b005b34801561083b57600080fd5b5061085660048036038101906108519190613322565b61120d565b005b34801561086457600080fd5b5061086d6112c0565b60405161087a9190613307565b60405180910390f35b60606040518060400160405280600881526020017f46696e654275726e000000000000000000000000000000000000000000000000815250905090565b60006108d46108cd6112c6565b84846112ce565b6001905092915050565b600e5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109256112c6565b73ffffffffffffffffffffffffffffffffffffffff161461094557600080fd5b8060098190555050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60075481565b6000610992848484611497565b610a538461099e6112c6565b610a4e8560405180606001604052806028815260200161410160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a046112c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed69092919063ffffffff16565b6112ce565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa56112c6565b73ffffffffffffffffffffffffffffffffffffffff1614610ac557600080fd5b610adb60c8600554611f3a90919063ffffffff16565b8111610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1390613598565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc26112c6565b73ffffffffffffffffffffffffffffffffffffffff1614610be257600080fd5b6000610bed30610d2e565b90506000811115610c0257610c0181611f84565b5b50565b610c0d6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190613604565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b600d5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfe6112c6565b73ffffffffffffffffffffffffffffffffffffffff1614610d1e57600080fd5b6000601181905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d7f6112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390613604565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60606040518060400160405280600481526020017f4655524e00000000000000000000000000000000000000000000000000000000815250905090565b6000610f5d610f566112c6565b8484611497565b6001905092915050565b60055481565b60115481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110516112c6565b73ffffffffffffffffffffffffffffffffffffffff161461107157600080fd5b8060088190555050565b60105481565b6110896112c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90613604565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90613696565b60405180910390fd5b61118e816121fd565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d26112c6565b73ffffffffffffffffffffffffffffffffffffffff16146111f257600080fd5b6000479050600081111561120a57611209816122c1565b5b50565b6402540be400811015611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613702565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112966112c6565b73ffffffffffffffffffffffffffffffffffffffff16146112b657600080fd5b8060078190555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490613794565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390613826565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161148a9190613307565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fd906138b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c9061394a565b60405180910390fd5b600081116115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906139dc565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561165c5750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61166557600080fd5b600060019050611673610ed0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116e157506116b1610ed0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561171957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561175157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e1157602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118015750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118ac5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806118ab5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611956576006546118cf836118c186610d2e565b61232d90919063ffffffff16565b1115611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790613a6e565b60405180910390fd5b600754821115611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c90613b00565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a015750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a575750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611aad5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad757600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b825750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bd85750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c2e5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c5857600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611cc35750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e10576000611cd330610d2e565b9050600854811115611ce957611ce88161238b565b5b6000479050602160159054906101000a900460ff16158015611d0b5750600081115b15611d1e57611d19476122c1565b611e0d565b602160159054906101000a900460ff168015611d3b575060095481115b15611e0c576000611d56600283611f3a90919063ffffffff16565b90506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600283611da09190613b7e565b604051611dac90613be0565b60006040518083038185875af1925050503d8060008114611de9576040519150601f19603f3d011682016040523d82523d6000602084013e611dee565b606091505b505080915050611e09600283611e049190613b7e565b6124b4565b50505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ebc57600090505b611ec8848484846124ca565b611ed0612a94565b50505050565b6000838311158290611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1591906131c7565b60405180910390fd5b5060008385611f2d9190613bf5565b9050809150509392505050565b6000611f7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612aba565b905092915050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fbc57611fbb613c29565b5b604051908082528060200260200182016040528015611fea5781602001602082028036833780820191505090505b509050308160008151811061200257612001613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cd9190613c9c565b816001815181106120e1576120e0613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214830602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121ac959493929190613dc2565b600060405180830381600087803b1580156121c657600080fd5b505af11580156121da573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612329573d6000803e3d6000fd5b5050565b600080828461233c9190613e1c565b905083811015612381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237890613ebe565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff021916908315150217905550600061240d6123ea6016546123dc6019546123ce60185460175461232d90919063ffffffff16565b61232d90919063ffffffff16565b61232d90919063ffffffff16565b6123ff84601654612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b90506000612425600283611f3a90919063ffffffff16565b9050600061243c8285612b9790919063ffffffff16565b9050600047905061244c82611f84565b600061248583612477866124698647612b9790919063ffffffff16565b612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b90506124918482612be1565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156124c7576124c681612ce1565b5b50565b806124d8576124d7612f3a565b5b6124e06130ff565b61250860646124fa60175486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b816020018181525050612539606461252b60165486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b81600001818152505061256a606461255c60185486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b81604001818152505061259b606461258d60195486612b1d90919063ffffffff16565b611f3a90919063ffffffff16565b8160600181815250506125fd81600001516125ef83602001516125e185606001516125d387604001518a612b9790919063ffffffff16565b612b9790919063ffffffff16565b612b9790919063ffffffff16565b612b9790919063ffffffff16565b816080018181525050600061261f826020015185612b9790919063ffffffff16565b905061262f868360200151612fb5565b61268181600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9790919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061271a8260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f561277b8360000151846020015161232d90919063ffffffff16565b6127e784606001516127d98660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232d90919063ffffffff16565b61232d90919063ffffffff16565b61232d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff1680156128a25750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156128da57503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129345750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e55750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806129e45750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612a1b57612a1a602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360200151612fb5565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612a7c9190613307565b60405180910390a3612a8c612a94565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b60008083118290612b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af891906131c7565b60405180910390fd5b5060008385612b109190613b7e565b9050809150509392505050565b6000808303612b2f5760009050612b91565b60008284612b3d9190613ede565b9050828482612b4c9190613b7e565b14612b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8390613faa565b60405180910390fd5b809150505b92915050565b6000612bd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ed6565b905092915050565b612c0e30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ce565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c9796959493929190613feb565b60606040518083038185885af1158015612cb5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612cda9190614061565b5050505050565b6000600267ffffffffffffffff811115612cfe57612cfd613c29565b5b604051908082528060200260200182016040528015612d2c5781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc09190613c9c565b81600081518110612dd457612dd3613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e4557612e44613c58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612f0494939291906140b4565b6000604051808303818588803b158015612f1d57600080fd5b505af1158015612f31573d6000803e3d6000fd5b50505050505050565b6000601754148015612f4e57506000601654145b8015612f5c57506000601854145b8015612f6a57506000601954145b612fb35760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b612fbe82610d2e565b811115612fca57600080fd5b61301c81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061307481600554612b9790919063ffffffff16565b60058190555061308f81601a5461232d90919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130f39190613307565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561316857808201518184015260208101905061314d565b83811115613177576000848401525b50505050565b6000601f19601f8301169050919050565b60006131998261312e565b6131a38185613139565b93506131b381856020860161314a565b6131bc8161317d565b840191505092915050565b600060208201905081810360008301526131e1818461318e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613219826131ee565b9050919050565b6132298161320e565b811461323457600080fd5b50565b60008135905061324681613220565b92915050565b6000819050919050565b61325f8161324c565b811461326a57600080fd5b50565b60008135905061327c81613256565b92915050565b60008060408385031215613299576132986131e9565b5b60006132a785828601613237565b92505060206132b88582860161326d565b9150509250929050565b60008115159050919050565b6132d7816132c2565b82525050565b60006020820190506132f260008301846132ce565b92915050565b6133018161324c565b82525050565b600060208201905061331c60008301846132f8565b92915050565b600060208284031215613338576133376131e9565b5b60006133468482850161326d565b91505092915050565b6000819050919050565b600061337461336f61336a846131ee565b61334f565b6131ee565b9050919050565b600061338682613359565b9050919050565b60006133988261337b565b9050919050565b6133a88161338d565b82525050565b60006020820190506133c3600083018461339f565b92915050565b6000806000606084860312156133e2576133e16131e9565b5b60006133f086828701613237565b935050602061340186828701613237565b92505060406134128682870161326d565b9150509250925092565b600060ff82169050919050565b6134328161341c565b82525050565b600060208201905061344d6000830184613429565b92915050565b600061345e826131ee565b9050919050565b61346e81613453565b82525050565b60006020820190506134896000830184613465565b92915050565b6134988161320e565b82525050565b60006020820190506134b3600083018461348f565b92915050565b6000602082840312156134cf576134ce6131e9565b5b60006134dd84828501613237565b91505092915050565b600080604083850312156134fd576134fc6131e9565b5b600061350b85828601613237565b925050602061351c85828601613237565b9150509250929050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b6000613582602a83613139565b915061358d82613526565b604082019050919050565b600060208201905081810360008301526135b181613575565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ee602083613139565b91506135f9826135b8565b602082019050919050565b6000602082019050818103600083015261361d816135e1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613680602683613139565b915061368b82613624565b604082019050919050565b600060208201905081810360008301526136af81613673565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b60006136ec601483613139565b91506136f7826136b6565b602082019050919050565b6000602082019050818103600083015261371b816136df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061377e602483613139565b915061378982613722565b604082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613810602283613139565b915061381b826137b4565b604082019050919050565b6000602082019050818103600083015261383f81613803565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138a2602583613139565b91506138ad82613846565b604082019050919050565b600060208201905081810360008301526138d181613895565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613934602383613139565b915061393f826138d8565b604082019050919050565b6000602082019050818103600083015261396381613927565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139c6602983613139565b91506139d18261396a565b604082019050919050565b600060208201905081810360008301526139f5816139b9565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613a58602b83613139565b9150613a63826139fc565b604082019050919050565b60006020820190508181036000830152613a8781613a4b565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613aea602c83613139565b9150613af582613a8e565b604082019050919050565b60006020820190508181036000830152613b1981613add565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b898261324c565b9150613b948361324c565b925082613ba457613ba3613b20565b5b828204905092915050565b600081905092915050565b50565b6000613bca600083613baf565b9150613bd582613bba565b600082019050919050565b6000613beb82613bbd565b9150819050919050565b6000613c008261324c565b9150613c0b8361324c565b925082821015613c1e57613c1d613b4f565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c9681613220565b92915050565b600060208284031215613cb257613cb16131e9565b5b6000613cc084828501613c87565b91505092915050565b6000819050919050565b6000613cee613ce9613ce484613cc9565b61334f565b61324c565b9050919050565b613cfe81613cd3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d398161320e565b82525050565b6000613d4b8383613d30565b60208301905092915050565b6000602082019050919050565b6000613d6f82613d04565b613d798185613d0f565b9350613d8483613d20565b8060005b83811015613db5578151613d9c8882613d3f565b9750613da783613d57565b925050600181019050613d88565b5085935050505092915050565b600060a082019050613dd760008301886132f8565b613de46020830187613cf5565b8181036040830152613df68186613d64565b9050613e05606083018561348f565b613e1260808301846132f8565b9695505050505050565b6000613e278261324c565b9150613e328361324c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e6757613e66613b4f565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ea8601b83613139565b9150613eb382613e72565b602082019050919050565b60006020820190508181036000830152613ed781613e9b565b9050919050565b6000613ee98261324c565b9150613ef48361324c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2d57613f2c613b4f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f94602183613139565b9150613f9f82613f38565b604082019050919050565b60006020820190508181036000830152613fc381613f87565b9050919050565b6000613fd58261337b565b9050919050565b613fe581613fca565b82525050565b600060c082019050614000600083018961348f565b61400d60208301886132f8565b61401a6040830187613cf5565b6140276060830186613cf5565b6140346080830185613fdc565b61404160a08301846132f8565b979650505050505050565b60008151905061405b81613256565b92915050565b60008060006060848603121561407a576140796131e9565b5b60006140888682870161404c565b93505060206140998682870161404c565b92505060406140aa8682870161404c565b9150509250925092565b60006080820190506140c96000830187613cf5565b81810360208301526140db8186613d64565b90506140ea6040830185613fdc565b6140f760608301846132f8565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051f4d87b7a496eb09c1b4b740b267158e550f70f93d491498f9488cfa0e5db4464736f6c634300080d0033

Deployed Bytecode Sourcemap

11254:13097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14086:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14927:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12147:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24190:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13217:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14363:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11821:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15098:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12004:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23554:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11873:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14272:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13063:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13265:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21751:245;;;;;;;;;;;;;:::i;:::-;;23981:76;;;;;;;;;;;;;:::i;:::-;;12110:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16459:117;;;;;;;;;;;;;:::i;:::-;;11761:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14466:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5304:148;;;;;;;;;;;;;:::i;:::-;;12074:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5090:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13338:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14177:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14597:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11699:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12256:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15418:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12183:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12039:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14774:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23827:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12219:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22004:247;;;;;;;;;;;;;:::i;:::-;;19468:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12636:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14086:83;14123:13;14156:5;;;;;;;;;;;;;;;;;14149:12;;14086:83;:::o;14927:163::-;15004:4;15021:39;15030:12;:10;:12::i;:::-;15044:7;15053:6;15021:8;:39::i;:::-;15078:4;15071:11;;14927:163;;;;:::o;12147:28::-;;;;:::o;24190:156::-;24280:14;;;;;;;;;;;24264:30;;:12;:10;:12::i;:::-;:30;;;24256:39;;;;;;24326:12;24306:17;:32;;;;24190:156;:::o;13217:41::-;;;;;;;;;;;;;:::o;14363:95::-;14416:7;14443;;14436:14;;14363:95;:::o;11821:40::-;;;;:::o;15098:312::-;15198:4;15215:36;15225:6;15233:9;15244:6;15215:9;:36::i;:::-;15262:118;15271:6;15278:12;:10;:12::i;:::-;15291:88;15329:6;15291:88;;;;;;;;;;;;;;;;;:11;:19;15303:6;15291:19;;;;;;;;;;;;;;;:33;15311:12;:10;:12::i;:::-;15291:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;15262:8;:118::i;:::-;15398:4;15391:11;;15098:312;;;;;:::o;12004:27::-;;;;:::o;23554:265::-;23651:14;;;;;;;;;;;23635:30;;:12;:10;:12::i;:::-;:30;;;23627:39;;;;;;23703:16;23715:3;23703:7;;:11;;:16;;;;:::i;:::-;23685:15;:34;23677:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;23796:15;23777:16;:34;;;;23554:265;:::o;11873:41::-;;;;:::o;14272:83::-;14313:5;11505:1;14331:16;;14272:83;:::o;13063:81::-;;;;;;;;;;;;;:::o;13265:28::-;;;;;;;;;;;;;:::o;21751:245::-;21817:14;;;;;;;;;;;21801:30;;:12;:10;:12::i;:::-;:30;;;21793:39;;;;;;21843:23;21869:24;21887:4;21869:9;:24::i;:::-;21843:50;;21926:1;21908:15;:19;21904:85;;;21944:33;21961:15;21944:16;:33::i;:::-;21904:85;21782:214;21751:245::o;23981:76::-;5227:12;:10;:12::i;:::-;5217:22;;:6;;;;;;;;;;:22;;;5209:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24045:4:::1;24034:8;;:15;;;;;;;;;;;;;;;;;;23981:76::o:0;12110:28::-;;;;:::o;16459:117::-;16528:14;;;;;;;;;;;16512:30;;:12;:10;:12::i;:::-;:30;;;16504:39;;;;;;16567:1;16554:10;:14;;;;16459:117::o;11761:48::-;;;;:::o;14466:119::-;14532:7;14559:9;:18;14569:7;14559:18;;;;;;;;;;;;;;;;14552:25;;14466:119;;;:::o;5304:148::-;5227:12;:10;:12::i;:::-;5217:22;;:6;;;;;;;;;;:22;;;5209:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5411:1:::1;5374:40;;5395:6;::::0;::::1;;;;;;;;5374:40;;;;;;;;;;;;5442:1;5425:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5304:148::o:0;12074:29::-;;;;:::o;5090:79::-;5128:7;5155:6;;;;;;;;;;;5148:13;;5090:79;:::o;13338:28::-;;;;;;;;;;;;;:::o;14177:87::-;14216:13;14249:7;;;;;;;;;;;;;;;;;14242:14;;14177:87;:::o;14597:169::-;14677:4;14694:42;14704:12;:10;:12::i;:::-;14718:9;14729:6;14694:9;:42::i;:::-;14754:4;14747:11;;14597:169;;;;:::o;11699:41::-;;;;:::o;12256:29::-;;;;:::o;15418:91::-;15462:7;15489:12;;15482:19;;15418:91;:::o;12183:29::-;;;;:::o;12039:28::-;;;;:::o;14774:145::-;14857:7;14884:11;:18;14896:5;14884:18;;;;;;;;;;;;;;;:27;14903:7;14884:27;;;;;;;;;;;;;;;;14877:34;;14774:145;;;;:::o;23827:146::-;23915:14;;;;;;;;;;;23899:30;;:12;:10;:12::i;:::-;:30;;;23891:39;;;;;;23954:11;23941:10;:24;;;;23827:146;:::o;12219:30::-;;;;:::o;5464:201::-;5227:12;:10;:12::i;:::-;5217:22;;:6;;;;;;;;;;:22;;;5209:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5573:1:::1;5553:22;;:8;:22;;::::0;5545:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5629:28;5648:8;5629:18;:28::i;:::-;5464:201:::0;:::o;22004:247::-;22070:14;;;;;;;;;;;22054:30;;:12;:10;:12::i;:::-;:30;;;22046:39;;;;;;22096:26;22125:21;22096:50;;22182:1;22161:18;:22;22157:87;;;22200:32;22213:18;22200:12;:32::i;:::-;22157:87;22035:216;22004:247::o;19468:221::-;19557:14;19539;:32;;19531:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19630:14;;;;;;;;;;;19614:30;;:12;:10;:12::i;:::-;:30;;;19606:39;;;;;;19667:14;19656:8;:25;;;;19468:221;:::o;12636:27::-;;;;:::o;192:98::-;245:7;272:10;265:17;;192:98;:::o;16584:335::-;16694:1;16677:19;;:5;:19;;;16669:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16775:1;16756:21;;:7;:21;;;16748:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16857:6;16827:11;:18;16839:5;16827:18;;;;;;;;;;;;;;;:27;16846:7;16827:27;;;;;;;;;;;;;;;:36;;;;16895:7;16879:32;;16888:5;16879:32;;;16904:6;16879:32;;;;;;:::i;:::-;;;;;;;;16584:335;;;:::o;16931:2529::-;17035:1;17019:18;;:4;:18;;;17011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17112:1;17098:16;;:2;:16;;;17090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17182:1;17173:6;:10;17165:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17249:4;:10;17254:4;17249:10;;;;;;;;;;;;;;;;;;;;;;;;;17248:11;:24;;;;;17264:4;:8;17269:2;17264:8;;;;;;;;;;;;;;;;;;;;;;;;;17263:9;17248:24;17240:33;;;;;;17286:12;17301:4;17286:19;;17330:7;:5;:7::i;:::-;17322:15;;:4;:15;;;;:32;;;;;17347:7;:5;:7::i;:::-;17341:13;;:2;:13;;;;17322:32;:57;;;;;17374:4;17358:21;;:4;:21;;;;17322:57;:80;;;;;17397:4;17383:19;;:2;:19;;;;17322:80;17318:1937;;;17433:13;;;;;;;;;;;17425:21;;:4;:21;;;:55;;;;;17464:15;;;;;;;;;;;17450:30;;:2;:30;;;;17425:55;:115;;;;;17487:18;:24;17506:4;17487:24;;;;;;;;;;;;;;;;;;;;;;;;;17486:25;:52;;;;17516:18;:22;17535:2;17516:22;;;;;;;;;;;;;;;;;;;;;;;;;17515:23;17486:52;17425:115;17421:351;;;17598:16;;17569:25;17587:6;17569:13;17579:2;17569:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:45;;17561:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17699:8;;17689:6;:18;;17681:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17421:351;17800:13;;;;;;;;;;;17792:21;;:4;:21;;;:55;;;;;17831:15;;;;;;;;;;;17817:30;;:2;:30;;;;17792:55;:68;;;;;17852:4;:8;17857:2;17852:8;;;;;;;;;;;;;;;;;;;;;;;;;17851:9;17792:68;:83;;;;;17865:4;:10;17870:4;17865:10;;;;;;;;;;;;;;;;;;;;;;;;;17864:11;17792:83;17788:263;;;17907:8;;17896;:19;;;;17946:9;;17934;:21;;;;17986:9;;17974;:21;;;;18026:9;;18014;:21;;;;17788:263;18093:13;;;;;;;;;;;18087:19;;:2;:19;;;:55;;;;;18126:15;;;;;;;;;;;18110:32;;:4;:32;;;;18087:55;:68;;;;;18147:4;:8;18152:2;18147:8;;;;;;;;;;;;;;;;;;;;;;;;;18146:9;18087:68;:83;;;;;18160:4;:10;18165:4;18160:10;;;;;;;;;;;;;;;;;;;;;;;;;18159:11;18087:83;18083:267;;;18202:9;;18191:8;:20;;;;18242:10;;18230:9;:22;;;;18283:10;;18271:9;:22;;;;18324:10;;18312:9;:22;;;;18083:267;18382:8;;;;;;;;;;;18381:9;:34;;;;;18402:13;;;;;;;;;;;18394:21;;:4;:21;;;;18381:34;18377:867;;;18438:28;18469:24;18487:4;18469:9;:24::i;:::-;18438:55;;18541:10;;18518:20;:33;18514:118;;;18576:36;18591:20;18576:14;:36::i;:::-;18514:118;18652:26;18681:21;18652:50;;18740:8;;;;;;;;;;;18739:9;:37;;;;;18774:1;18753:18;:22;18739:37;18735:474;;;18801:35;18814:21;18801:12;:35::i;:::-;18735:474;;;18866:8;;;;;;;;;;;:52;;;;;18900:17;;18879:18;:38;18866:52;18862:347;;;18947:17;18968:25;18991:1;18968:18;:22;;:25;;;;:::i;:::-;18947:47;;19021:10;19078:6;;;;;;;;;;;19069:21;;19109:1;19099:9;:11;;;;:::i;:::-;19069:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19058:58;;;;;19143:20;19161:1;19151:9;:11;;;;:::i;:::-;19143:7;:20::i;:::-;18920:289;;18862:347;18735:474;18417:827;;18377:867;17318:1937;19271:18;:24;19290:4;19271:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19299:18;:22;19318:2;19299:22;;;;;;;;;;;;;;;;;;;;;;;;;19271:50;19267:98;;;19348:5;19338:15;;19267:98;19385:41;19400:4;19406:2;19410:6;19418:7;19385:14;:41::i;:::-;19437:15;:13;:15::i;:::-;17000:2460;16931:2529;;;:::o;1329:190::-;1415:7;1448:1;1443;:6;;1451:12;1435:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1475:9;1491:1;1487;:5;;;;:::i;:::-;1475:17;;1510:1;1503:8;;;1329:190;;;;;:::o;1781:132::-;1839:7;1866:39;1870:1;1873;1866:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1859:46;;1781:132;;;;:::o;19697:404::-;13415:4;13404:8;;:15;;;;;;;;;;;;;;;;;;19772:21:::1;19810:1;19796:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19772:40;;19841:4;19823;19828:1;19823:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19867:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19857:4;19862:1;19857:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;19900:62;19917:4;19932:15;;;;;;;;;;;19950:11;19900:8;:62::i;:::-;19973:15;;;;;;;;;;;:66;;;20040:11;20053:1;20056:4;20070;20077:15;19973:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19761:340;13453:5:::0;13442:8;;:16;;;;;;;;;;;;;;;;;;19697:404;:::o;5673:191::-;5747:16;5766:6;;;;;;;;;;;5747:25;;5792:8;5783:6;;:17;;;;;;;;;;;;;;;;;;5847:8;5816:40;;5837:8;5816:40;;;;;;;;;;;;5736:128;5673:191;:::o;21655:88::-;21712:6;;;;;;;;;;;:15;;:23;21728:6;21712:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21655:88;:::o;998:179::-;1056:7;1076:9;1092:1;1088;:5;;;;:::i;:::-;1076:17;;1117:1;1112;:6;;1104:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1168:1;1161:8;;;998:179;;;;:::o;21096:551::-;13415:4;13404:8;;:15;;;;;;;;;;;;;;;;;;21178:20:::1;21201:93;21240:53;21284:8;;21240:39;21269:9;;21240:24;21254:9;;21240;;:13;;:24;;;;:::i;:::-;:28;;:39;;;;:::i;:::-;:43;;:53;;;;:::i;:::-;21201:34;21214:20;21201:8;;:12;;:34;;;;:::i;:::-;:38;;:93;;;;:::i;:::-;21178:116;;21305:12;21321:19;21338:1;21321:12;:16;;:19;;;;:::i;:::-;21305:35;;21351:17;21371:30;21396:4;21371:20;:24;;:30;;;;:::i;:::-;21351:50;;21412:22;21437:21;21412:46;;21469:27;21486:9;21469:16;:27::i;:::-;21507:18;21528:70;21588:9;21529:53;21577:4;21530:41;21556:14;21530:21;:25;;:41;;;;:::i;:::-;21529:47;;:53;;;;:::i;:::-;21528:59;;:70;;;;:::i;:::-;21507:91;;21609:30;21622:4;21628:10;21609:12;:30::i;:::-;21167:480;;;;;13453:5:::0;13442:8;;:16;;;;;;;;;;;;;;;;;;21096:551;:::o;24065:117::-;24127:1;24118:6;:10;24114:61;;;24142:24;24159:6;24142:16;:24::i;:::-;24114:61;24065:117;:::o;22259:1246::-;22372:7;22367:60;;22401:14;:12;:14::i;:::-;22367:60;22447:24;;:::i;:::-;22495:30;22521:3;22495:21;22506:9;;22495:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22482:4;:10;;:43;;;;;22548:29;22573:3;22548:20;22559:8;;22548:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22536:4;:9;;:41;;;;;22601:30;22627:3;22601:21;22612:9;;22601:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22588:4;:10;;:43;;;;;22655:30;22681:3;22655:21;22666:9;;22655:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22642:4;:10;;:43;;;;;22721:69;22780:4;:9;;;22721:54;22764:4;:10;;;22721:38;22748:4;:10;;;22721:22;22732:4;:10;;;22721:6;:10;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:42;;:54;;;;:::i;:::-;:58;;:69;;;;:::i;:::-;22706:4;:12;;:84;;;;;22803:21;22827:22;22838:4;:10;;;22827:6;:10;;:22;;;;:::i;:::-;22803:46;;22860:27;22868:6;22876:4;:10;;;22860:7;:27::i;:::-;22920:36;22942:13;22920:9;:17;22930:6;22920:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;22900:9;:17;22910:6;22900:17;;;;;;;;;;;;;;;:56;;;;22990:38;23015:4;:12;;;22990:9;:20;23000:9;22990:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;22967:9;:20;22977:9;22967:20;;;;;;;;;;;;;;;:61;;;;23066:87;23127:25;23142:4;:9;;;23127:4;:10;;;:14;;:25;;;;:::i;:::-;23066:56;23111:4;:10;;;23066:40;23095:4;:10;;;23066:9;:24;23084:4;23066:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;:44;;:56;;;;:::i;:::-;:60;;:87;;;;:::i;:::-;23039:9;:24;23057:4;23039:24;;;;;;;;;;;;;;;:114;;;;23177:8;;;;;;;;;;;:35;;;;;23199:13;;;;;;;;;;;23189:23;;:6;:23;;;;23177:35;:62;;;;;23234:4;23216:23;;:6;:23;;;;23177:62;:100;;;;;23261:15;;;;;;;;;;;23243:34;;:6;:34;;;;23177:100;:173;;;;;23303:15;;;;;;;;;;;23282:37;;:9;:37;;;:67;;;;23336:13;;;;;;;;;;;23323:26;;:9;:26;;;23282:67;23177:173;23174:239;;;23367:34;23375:13;;;;;;;;;;;23390:4;:10;;;23367:7;:34::i;:::-;23174:239;23447:9;23430:41;;23439:6;23430:41;;;23458:4;:12;;;23430:41;;;;;;:::i;:::-;;;;;;;;23482:15;:13;:15::i;:::-;22356:1149;;22259:1246;;;;:::o;16252:199::-;16307:16;;16296:8;:27;;;;16346:17;;16334:9;:29;;;;16386:17;;16374:9;:29;;;;16426:17;;16414:9;:29;;;;16252:199::o;1921:189::-;2007:7;2039:1;2035;:5;2042:12;2027:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2066:9;2082:1;2078;:5;;;;:::i;:::-;2066:17;;2101:1;2094:8;;;1921:189;;;;;:::o;1527:246::-;1585:7;1614:1;1609;:6;1605:47;;1639:1;1632:8;;;;1605:47;1662:9;1678:1;1674;:5;;;;:::i;:::-;1662:17;;1707:1;1702;1698;:5;;;;:::i;:::-;:10;1690:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1764:1;1757:8;;;1527:246;;;;;:::o;1185:136::-;1243:7;1270:43;1274:1;1277;1270:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1263:50;;1185:136;;;;:::o;20631:455::-;20712:62;20729:4;20744:15;;;;;;;;;;;20762:11;20712:8;:62::i;:::-;20817:15;;;;;;;;;;;:31;;;20856:9;20889:4;20909:11;20935:1;20978;21021:14;;;;;;;;;;;21050:15;20817:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20631:455;;:::o;20109:514::-;20230:21;20268:1;20254:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20230:40;;20291:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20281:4;20286:1;20281:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;20342:4;;;;;;;;;;;20324;20329:1;20324:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20384:15;;;;;;;;;;;:66;;;20458:6;20480:1;20527:4;20546;;;;;;;;;;;20581:15;20384:223;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20159:464;20109:514;:::o;15855:385::-;15915:1;15902:9;;:14;:31;;;;;15932:1;15920:8;;:13;15902:31;:49;;;;;15950:1;15937:9;;:14;15902:49;:67;;;;;15968:1;15955:9;;:14;15902:67;15971:7;15898:80;16008:9;;15988:17;:29;;;;16047:8;;16028:16;:27;;;;16086:9;;16066:17;:29;;;;16126:9;;16106:17;:29;;;;16160:1;16148:9;:13;;;;16183:1;16172:8;:12;;;;16207:1;16195:9;:13;;;;16231:1;16219:9;:13;;;;15855:385;:::o;15517:330::-;15607:19;15617:8;15607:9;:19::i;:::-;15596:7;:30;;15587:40;;;;;;15660:32;15684:7;15660:9;:19;15670:8;15660:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;15638:9;:19;15648:8;15638:19;;;;;;;;;;;;;;;:54;;;;15713:20;15725:7;15713;;:11;;:20;;;;:::i;:::-;15703:7;:30;;;;15759:25;15776:7;15759:12;;:16;;:25;;;;:::i;:::-;15744:12;:40;;;;15827:1;15800:39;;15809:8;15800:39;;;15831:7;15800:39;;;;;;:::i;:::-;;;;;;;;15517:330;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:60::-;4209:3;4230:5;4223:12;;4181:60;;;:::o;4247:142::-;4297:9;4330:53;4348:34;4357:24;4375:5;4357:24;:::i;:::-;4348:34;:::i;:::-;4330:53;:::i;:::-;4317:66;;4247:142;;;:::o;4395:126::-;4445:9;4478:37;4509:5;4478:37;:::i;:::-;4465:50;;4395:126;;;:::o;4527:152::-;4603:9;4636:37;4667:5;4636:37;:::i;:::-;4623:50;;4527:152;;;:::o;4685:183::-;4798:63;4855:5;4798:63;:::i;:::-;4793:3;4786:76;4685:183;;:::o;4874:274::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:97;5138:1;5127:9;5123:17;5114:6;5044:97;:::i;:::-;4874:274;;;;:::o;5154:619::-;5231:6;5239;5247;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5549:2;5575:53;5620:7;5611:6;5600:9;5596:22;5575:53;:::i;:::-;5565:63;;5520:118;5677:2;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5648:118;5154:619;;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:104::-;6254:7;6283:24;6301:5;6283:24;:::i;:::-;6272:35;;6209:104;;;:::o;6319:142::-;6422:32;6448:5;6422:32;:::i;:::-;6417:3;6410:45;6319:142;;:::o;6467:254::-;6576:4;6614:2;6603:9;6599:18;6591:26;;6627:87;6711:1;6700:9;6696:17;6687:6;6627:87;:::i;:::-;6467:254;;;;:::o;6727:118::-;6814:24;6832:5;6814:24;:::i;:::-;6809:3;6802:37;6727:118;;:::o;6851:222::-;6944:4;6982:2;6971:9;6967:18;6959:26;;6995:71;7063:1;7052:9;7048:17;7039:6;6995:71;:::i;:::-;6851:222;;;;:::o;7079:329::-;7138:6;7187:2;7175:9;7166:7;7162:23;7158:32;7155:119;;;7193:79;;:::i;:::-;7155:119;7313:1;7338:53;7383:7;7374:6;7363:9;7359:22;7338:53;:::i;:::-;7328:63;;7284:117;7079:329;;;;:::o;7414:474::-;7482:6;7490;7539:2;7527:9;7518:7;7514:23;7510:32;7507:119;;;7545:79;;:::i;:::-;7507:119;7665:1;7690:53;7735:7;7726:6;7715:9;7711:22;7690:53;:::i;:::-;7680:63;;7636:117;7792:2;7818:53;7863:7;7854:6;7843:9;7839:22;7818:53;:::i;:::-;7808:63;;7763:118;7414:474;;;;;:::o;7894:229::-;8034:34;8030:1;8022:6;8018:14;8011:58;8103:12;8098:2;8090:6;8086:15;8079:37;7894:229;:::o;8129:366::-;8271:3;8292:67;8356:2;8351:3;8292:67;:::i;:::-;8285:74;;8368:93;8457:3;8368:93;:::i;:::-;8486:2;8481:3;8477:12;8470:19;;8129:366;;;:::o;8501:419::-;8667:4;8705:2;8694:9;8690:18;8682:26;;8754:9;8748:4;8744:20;8740:1;8729:9;8725:17;8718:47;8782:131;8908:4;8782:131;:::i;:::-;8774:139;;8501:419;;;:::o;8926:182::-;9066:34;9062:1;9054:6;9050:14;9043:58;8926:182;:::o;9114:366::-;9256:3;9277:67;9341:2;9336:3;9277:67;:::i;:::-;9270:74;;9353:93;9442:3;9353:93;:::i;:::-;9471:2;9466:3;9462:12;9455:19;;9114:366;;;:::o;9486:419::-;9652:4;9690:2;9679:9;9675:18;9667:26;;9739:9;9733:4;9729:20;9725:1;9714:9;9710:17;9703:47;9767:131;9893:4;9767:131;:::i;:::-;9759:139;;9486:419;;;:::o;9911:225::-;10051:34;10047:1;10039:6;10035:14;10028:58;10120:8;10115:2;10107:6;10103:15;10096:33;9911:225;:::o;10142:366::-;10284:3;10305:67;10369:2;10364:3;10305:67;:::i;:::-;10298:74;;10381:93;10470:3;10381:93;:::i;:::-;10499:2;10494:3;10490:12;10483:19;;10142:366;;;:::o;10514:419::-;10680:4;10718:2;10707:9;10703:18;10695:26;;10767:9;10761:4;10757:20;10753:1;10742:9;10738:17;10731:47;10795:131;10921:4;10795:131;:::i;:::-;10787:139;;10514:419;;;:::o;10939:170::-;11079:22;11075:1;11067:6;11063:14;11056:46;10939:170;:::o;11115:366::-;11257:3;11278:67;11342:2;11337:3;11278:67;:::i;:::-;11271:74;;11354:93;11443:3;11354:93;:::i;:::-;11472:2;11467:3;11463:12;11456:19;;11115:366;;;:::o;11487:419::-;11653:4;11691:2;11680:9;11676:18;11668:26;;11740:9;11734:4;11730:20;11726:1;11715:9;11711:17;11704:47;11768:131;11894:4;11768:131;:::i;:::-;11760:139;;11487:419;;;:::o;11912:223::-;12052:34;12048:1;12040:6;12036:14;12029:58;12121:6;12116:2;12108:6;12104:15;12097:31;11912:223;:::o;12141:366::-;12283:3;12304:67;12368:2;12363:3;12304:67;:::i;:::-;12297:74;;12380:93;12469:3;12380:93;:::i;:::-;12498:2;12493:3;12489:12;12482:19;;12141:366;;;:::o;12513:419::-;12679:4;12717:2;12706:9;12702:18;12694:26;;12766:9;12760:4;12756:20;12752:1;12741:9;12737:17;12730:47;12794:131;12920:4;12794:131;:::i;:::-;12786:139;;12513:419;;;:::o;12938:221::-;13078:34;13074:1;13066:6;13062:14;13055:58;13147:4;13142:2;13134:6;13130:15;13123:29;12938:221;:::o;13165:366::-;13307:3;13328:67;13392:2;13387:3;13328:67;:::i;:::-;13321:74;;13404:93;13493:3;13404:93;:::i;:::-;13522:2;13517:3;13513:12;13506:19;;13165:366;;;:::o;13537:419::-;13703:4;13741:2;13730:9;13726:18;13718:26;;13790:9;13784:4;13780:20;13776:1;13765:9;13761:17;13754:47;13818:131;13944:4;13818:131;:::i;:::-;13810:139;;13537:419;;;:::o;13962:224::-;14102:34;14098:1;14090:6;14086:14;14079:58;14171:7;14166:2;14158:6;14154:15;14147:32;13962:224;:::o;14192:366::-;14334:3;14355:67;14419:2;14414:3;14355:67;:::i;:::-;14348:74;;14431:93;14520:3;14431:93;:::i;:::-;14549:2;14544:3;14540:12;14533:19;;14192:366;;;:::o;14564:419::-;14730:4;14768:2;14757:9;14753:18;14745:26;;14817:9;14811:4;14807:20;14803:1;14792:9;14788:17;14781:47;14845:131;14971:4;14845:131;:::i;:::-;14837:139;;14564:419;;;:::o;14989:222::-;15129:34;15125:1;15117:6;15113:14;15106:58;15198:5;15193:2;15185:6;15181:15;15174:30;14989:222;:::o;15217:366::-;15359:3;15380:67;15444:2;15439:3;15380:67;:::i;:::-;15373:74;;15456:93;15545:3;15456:93;:::i;:::-;15574:2;15569:3;15565:12;15558:19;;15217:366;;;:::o;15589:419::-;15755:4;15793:2;15782:9;15778:18;15770:26;;15842:9;15836:4;15832:20;15828:1;15817:9;15813:17;15806:47;15870:131;15996:4;15870:131;:::i;:::-;15862:139;;15589:419;;;:::o;16014:228::-;16154:34;16150:1;16142:6;16138:14;16131:58;16223:11;16218:2;16210:6;16206:15;16199:36;16014:228;:::o;16248:366::-;16390:3;16411:67;16475:2;16470:3;16411:67;:::i;:::-;16404:74;;16487:93;16576:3;16487:93;:::i;:::-;16605:2;16600:3;16596:12;16589:19;;16248:366;;;:::o;16620:419::-;16786:4;16824:2;16813:9;16809:18;16801:26;;16873:9;16867:4;16863:20;16859:1;16848:9;16844:17;16837:47;16901:131;17027:4;16901:131;:::i;:::-;16893:139;;16620:419;;;:::o;17045:230::-;17185:34;17181:1;17173:6;17169:14;17162:58;17254:13;17249:2;17241:6;17237:15;17230:38;17045:230;:::o;17281:366::-;17423:3;17444:67;17508:2;17503:3;17444:67;:::i;:::-;17437:74;;17520:93;17609:3;17520:93;:::i;:::-;17638:2;17633:3;17629:12;17622:19;;17281:366;;;:::o;17653:419::-;17819:4;17857:2;17846:9;17842:18;17834:26;;17906:9;17900:4;17896:20;17892:1;17881:9;17877:17;17870:47;17934:131;18060:4;17934:131;:::i;:::-;17926:139;;17653:419;;;:::o;18078:231::-;18218:34;18214:1;18206:6;18202:14;18195:58;18287:14;18282:2;18274:6;18270:15;18263:39;18078:231;:::o;18315:366::-;18457:3;18478:67;18542:2;18537:3;18478:67;:::i;:::-;18471:74;;18554:93;18643:3;18554:93;:::i;:::-;18672:2;18667:3;18663:12;18656:19;;18315:366;;;:::o;18687:419::-;18853:4;18891:2;18880:9;18876:18;18868:26;;18940:9;18934:4;18930:20;18926:1;18915:9;18911:17;18904:47;18968:131;19094:4;18968:131;:::i;:::-;18960:139;;18687:419;;;:::o;19112:180::-;19160:77;19157:1;19150:88;19257:4;19254:1;19247:15;19281:4;19278:1;19271:15;19298:180;19346:77;19343:1;19336:88;19443:4;19440:1;19433:15;19467:4;19464:1;19457:15;19484:185;19524:1;19541:20;19559:1;19541:20;:::i;:::-;19536:25;;19575:20;19593:1;19575:20;:::i;:::-;19570:25;;19614:1;19604:35;;19619:18;;:::i;:::-;19604:35;19661:1;19658;19654:9;19649:14;;19484:185;;;;:::o;19675:147::-;19776:11;19813:3;19798:18;;19675:147;;;;:::o;19828:114::-;;:::o;19948:398::-;20107:3;20128:83;20209:1;20204:3;20128:83;:::i;:::-;20121:90;;20220:93;20309:3;20220:93;:::i;:::-;20338:1;20333:3;20329:11;20322:18;;19948:398;;;:::o;20352:379::-;20536:3;20558:147;20701:3;20558:147;:::i;:::-;20551:154;;20722:3;20715:10;;20352:379;;;:::o;20737:191::-;20777:4;20797:20;20815:1;20797:20;:::i;:::-;20792:25;;20831:20;20849:1;20831:20;:::i;:::-;20826:25;;20870:1;20867;20864:8;20861:34;;;20875:18;;:::i;:::-;20861:34;20920:1;20917;20913:9;20905:17;;20737:191;;;;:::o;20934:180::-;20982:77;20979:1;20972:88;21079:4;21076:1;21069:15;21103:4;21100:1;21093:15;21120:180;21168:77;21165:1;21158:88;21265:4;21262:1;21255:15;21289:4;21286:1;21279:15;21306:143;21363:5;21394:6;21388:13;21379:22;;21410:33;21437:5;21410:33;:::i;:::-;21306:143;;;;:::o;21455:351::-;21525:6;21574:2;21562:9;21553:7;21549:23;21545:32;21542:119;;;21580:79;;:::i;:::-;21542:119;21700:1;21725:64;21781:7;21772:6;21761:9;21757:22;21725:64;:::i;:::-;21715:74;;21671:128;21455:351;;;;:::o;21812:85::-;21857:7;21886:5;21875:16;;21812:85;;;:::o;21903:158::-;21961:9;21994:61;22012:42;22021:32;22047:5;22021:32;:::i;:::-;22012:42;:::i;:::-;21994:61;:::i;:::-;21981:74;;21903:158;;;:::o;22067:147::-;22162:45;22201:5;22162:45;:::i;:::-;22157:3;22150:58;22067:147;;:::o;22220:114::-;22287:6;22321:5;22315:12;22305:22;;22220:114;;;:::o;22340:184::-;22439:11;22473:6;22468:3;22461:19;22513:4;22508:3;22504:14;22489:29;;22340:184;;;;:::o;22530:132::-;22597:4;22620:3;22612:11;;22650:4;22645:3;22641:14;22633:22;;22530:132;;;:::o;22668:108::-;22745:24;22763:5;22745:24;:::i;:::-;22740:3;22733:37;22668:108;;:::o;22782:179::-;22851:10;22872:46;22914:3;22906:6;22872:46;:::i;:::-;22950:4;22945:3;22941:14;22927:28;;22782:179;;;;:::o;22967:113::-;23037:4;23069;23064:3;23060:14;23052:22;;22967:113;;;:::o;23116:732::-;23235:3;23264:54;23312:5;23264:54;:::i;:::-;23334:86;23413:6;23408:3;23334:86;:::i;:::-;23327:93;;23444:56;23494:5;23444:56;:::i;:::-;23523:7;23554:1;23539:284;23564:6;23561:1;23558:13;23539:284;;;23640:6;23634:13;23667:63;23726:3;23711:13;23667:63;:::i;:::-;23660:70;;23753:60;23806:6;23753:60;:::i;:::-;23743:70;;23599:224;23586:1;23583;23579:9;23574:14;;23539:284;;;23543:14;23839:3;23832:10;;23240:608;;;23116:732;;;;:::o;23854:831::-;24117:4;24155:3;24144:9;24140:19;24132:27;;24169:71;24237:1;24226:9;24222:17;24213:6;24169:71;:::i;:::-;24250:80;24326:2;24315:9;24311:18;24302:6;24250:80;:::i;:::-;24377:9;24371:4;24367:20;24362:2;24351:9;24347:18;24340:48;24405:108;24508:4;24499:6;24405:108;:::i;:::-;24397:116;;24523:72;24591:2;24580:9;24576:18;24567:6;24523:72;:::i;:::-;24605:73;24673:3;24662:9;24658:19;24649:6;24605:73;:::i;:::-;23854:831;;;;;;;;:::o;24691:305::-;24731:3;24750:20;24768:1;24750:20;:::i;:::-;24745:25;;24784:20;24802:1;24784:20;:::i;:::-;24779:25;;24938:1;24870:66;24866:74;24863:1;24860:81;24857:107;;;24944:18;;:::i;:::-;24857:107;24988:1;24985;24981:9;24974:16;;24691:305;;;;:::o;25002:177::-;25142:29;25138:1;25130:6;25126:14;25119:53;25002:177;:::o;25185:366::-;25327:3;25348:67;25412:2;25407:3;25348:67;:::i;:::-;25341:74;;25424:93;25513:3;25424:93;:::i;:::-;25542:2;25537:3;25533:12;25526:19;;25185:366;;;:::o;25557:419::-;25723:4;25761:2;25750:9;25746:18;25738:26;;25810:9;25804:4;25800:20;25796:1;25785:9;25781:17;25774:47;25838:131;25964:4;25838:131;:::i;:::-;25830:139;;25557:419;;;:::o;25982:348::-;26022:7;26045:20;26063:1;26045:20;:::i;:::-;26040:25;;26079:20;26097:1;26079:20;:::i;:::-;26074:25;;26267:1;26199:66;26195:74;26192:1;26189:81;26184:1;26177:9;26170:17;26166:105;26163:131;;;26274:18;;:::i;:::-;26163:131;26322:1;26319;26315:9;26304:20;;25982:348;;;;:::o;26336:220::-;26476:34;26472:1;26464:6;26460:14;26453:58;26545:3;26540:2;26532:6;26528:15;26521:28;26336:220;:::o;26562:366::-;26704:3;26725:67;26789:2;26784:3;26725:67;:::i;:::-;26718:74;;26801:93;26890:3;26801:93;:::i;:::-;26919:2;26914:3;26910:12;26903:19;;26562:366;;;:::o;26934:419::-;27100:4;27138:2;27127:9;27123:18;27115:26;;27187:9;27181:4;27177:20;27173:1;27162:9;27158:17;27151:47;27215:131;27341:4;27215:131;:::i;:::-;27207:139;;26934:419;;;:::o;27359:134::-;27417:9;27450:37;27481:5;27450:37;:::i;:::-;27437:50;;27359:134;;;:::o;27499:147::-;27594:45;27633:5;27594:45;:::i;:::-;27589:3;27582:58;27499:147;;:::o;27652:823::-;27909:4;27947:3;27936:9;27932:19;27924:27;;27961:71;28029:1;28018:9;28014:17;28005:6;27961:71;:::i;:::-;28042:72;28110:2;28099:9;28095:18;28086:6;28042:72;:::i;:::-;28124:80;28200:2;28189:9;28185:18;28176:6;28124:80;:::i;:::-;28214;28290:2;28279:9;28275:18;28266:6;28214:80;:::i;:::-;28304:81;28380:3;28369:9;28365:19;28356:6;28304:81;:::i;:::-;28395:73;28463:3;28452:9;28448:19;28439:6;28395:73;:::i;:::-;27652:823;;;;;;;;;:::o;28481:143::-;28538:5;28569:6;28563:13;28554:22;;28585:33;28612:5;28585:33;:::i;:::-;28481:143;;;;:::o;28630:663::-;28718:6;28726;28734;28783:2;28771:9;28762:7;28758:23;28754:32;28751:119;;;28789:79;;:::i;:::-;28751:119;28909:1;28934:64;28990:7;28981:6;28970:9;28966:22;28934:64;:::i;:::-;28924:74;;28880:128;29047:2;29073:64;29129:7;29120:6;29109:9;29105:22;29073:64;:::i;:::-;29063:74;;29018:129;29186:2;29212:64;29268:7;29259:6;29248:9;29244:22;29212:64;:::i;:::-;29202:74;;29157:129;28630:663;;;;;:::o;29299:736::-;29542:4;29580:3;29569:9;29565:19;29557:27;;29594:79;29670:1;29659:9;29655:17;29646:6;29594:79;:::i;:::-;29720:9;29714:4;29710:20;29705:2;29694:9;29690:18;29683:48;29748:108;29851:4;29842:6;29748:108;:::i;:::-;29740:116;;29866:80;29942:2;29931:9;29927:18;29918:6;29866:80;:::i;:::-;29956:72;30024:2;30013:9;30009:18;30000:6;29956:72;:::i;:::-;29299:736;;;;;;;:::o

Swarm Source

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