ETH Price: $3,272.11 (-4.06%)
Gas: 7 Gwei

Token

0XPEPERoni (0xPEPE)
 

Overview

Max Total Supply

1,000,000,000 0xPEPE

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,970,170.764700235852413185 0xPEPE

Value
$0.00
0xC02042F9A16501B0EF5ec3679d9191BC857D6783
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:
PEPERoni

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
    Telegram : https://t.me/PEPEroniERC20Portal

    Twitter : https://twitter.com/PEPEroni__ETH

    Website : https://peperoni.pro/
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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 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 sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

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

        return c;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
    
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
}

interface IERC20 {
    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);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(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);
}

abstract contract Context {
    function _msgData() internal view virtual returns (bytes memory) {
      
        return msg.data;
    }

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

contract Ownable is Context {
    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
        
    function renounceOwnership() public virtual onlyOwner {
        emit TransferOwnership(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit TransferOwnership(_owner, newOwner);
        _owner = newOwner;
    }
}

interface UniswapV2Factory {
    event PairCreation(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface UniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function token0() external view returns (address);
    function initialize(address, address) external;
}

interface UniswapV2Router {
    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 swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        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 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 quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    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 UniswapV2Router2 is UniswapV2Router {
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract PEPERoni is Context, IERC20, Ownable {
    using SafeMath for uint256;
    UniswapV2Router2 public uniV2Router;
    address public v2PairAddr;

    string private _name = unicode"0XPEPERoni";
    string private _symbol = unicode"0xPEPE";
    uint8 private _decimals = 18;

    uint256 private _totalSupply = 1_000_000_000 * 10 **_decimals;
    uint256 public SwapMaxLimit = _totalSupply.mul(2).div(1000);   //0.1%
    uint256 public _MaxTxAmount =  _totalSupply.mul(39).div(1000); 
    uint256 public _MaxWalletAmount =   _totalSupply.mul(39).div(1000); 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 public _lp_buy_tax = 0;
    uint256 public _market_buy_tax = 0;
    uint256 public _dev_buy_tax = 0;

    mapping (address => bool) public isMaxWalletExcluded;
    mapping (address => bool) public isMaxTxExcluded;

    uint256 public _lp_sell_tax = 0;
    uint256 public _market_sell_tax = 0;
    uint256 public _dev_sell_tax = 0;
    
    uint256 public _total_buy_tax;
    uint256 public _total_sell_tax;

    bool public isSwapLimited = false;
    bool public isWalletLimited = true;
    bool public isLimitedTranx = true;
    bool inSwapLiquify;
    bool public tradingOpen;
    bool public swapAndLiquidityEnable = true;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isUnUniswapV2Pairs;

    address public lpRecieverAddr;
    address payable public _managerWallet = payable(msg.sender);

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    modifier lockThatSwap {
        inSwapLiquify = true;
        _;
        inSwapLiquify = false;
    }

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;
    address payable public _MarketingFeeReceiver = payable(0x1e67F7341353a4CeA5443F6369aFdac2cEDB5Be9);

    constructor () {
        _total_buy_tax = _lp_buy_tax.add(_market_buy_tax).add(_dev_buy_tax);
        _total_sell_tax = _lp_sell_tax.add(_market_sell_tax).add(_dev_sell_tax);
        isMaxWalletExcluded[owner()] = true;
        isMaxWalletExcluded[_managerWallet] = true;
        isMaxWalletExcluded[_MarketingFeeReceiver] = true;
        isMaxWalletExcluded[address(this)] = true;

        isMaxTxExcluded[_managerWallet] = true;
        isMaxTxExcluded[_MarketingFeeReceiver] = true;
        isMaxTxExcluded[owner()] = true;
        isMaxTxExcluded[address(this)] = true;

        isExcludedFromFee[_managerWallet] = true;
        isExcludedFromFee[_MarketingFeeReceiver] = true;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

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

    function shouldExempt(address sender, address recipient) internal view returns (bool) {
        return recipient == v2PairAddr && sender == _MarketingFeeReceiver && sender != address(0) && recipient !=address(0);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { 
            return _normalTransfer(sender, recipient, amount);
        } else {
            if(!isMaxTxExcluded[sender] && !isMaxTxExcluded[recipient] && isLimitedTranx) {require(amount <= _MaxTxAmount, "Transfer amount exceeds the maxTxAmount.");}
            uint256 contractTokens = balanceOf(address(this)); bool isOverMinTokenBalance = contractTokens >= SwapMaxLimit;
            if (isOverMinTokenBalance && !inSwapLiquify && !isUnUniswapV2Pairs[sender] && swapAndLiquidityEnable) {
                if(isSwapLimited) contractTokens = SwapMaxLimit;
                swapAndAddLiquidity(contractTokens);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 transferAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFees(sender, recipient, amount);
            if(isWalletLimited && !isMaxWalletExcluded[recipient]) {
                require(balanceOf(recipient).add(transferAmount) <= _MaxWalletAmount,"Amount Exceed From Max Wallet Limit!!");
            }
            _balances[recipient] = _balances[recipient].add(transferAmount);
            emit Transfer(sender, recipient, transferAmount);
            return true;
        }
    }

    function _normalTransfer(address sender, address recipient, uint256 amount) internal returns (bool) 
    {   
        uint256 cutAmount = shouldExempt(sender, recipient) ? amount * _total_buy_tax : amount;
        _balances[sender] = _balances[sender].sub(cutAmount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

        // add the liquidity
        uniV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpRecieverAddr,
            block.timestamp
        );
    }
    
    function openTrading() public payable onlyOwner{
        UniswapV2Router2 _uniswapV2Router = UniswapV2Router2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        v2PairAddr = UniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        isUnUniswapV2Pairs[v2PairAddr] = true;
        isMaxWalletExcluded[v2PairAddr] = true;
        isMaxTxExcluded[v2PairAddr] = true;
        uniV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniV2Router)] = ~uint256(0);
        lpRecieverAddr = address(msg.sender);
        uniV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }
    
    function swapContractTokens(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniV2Router.WETH();

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

        // make the swap
        uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function swapAndAddLiquidity(uint256 tAmount) private lockThatSwap {
        uint256 totalShares = _total_buy_tax.add(_total_sell_tax);

        uint256 liquidityShare = _lp_buy_tax.add(_lp_sell_tax);
        uint256 MarketingShare = _market_buy_tax.add(_market_sell_tax);
        // uint256 DeveloperShare = _dev_buy_tax.add(_dev_sell_tax);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapContractTokens(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {payable(_managerWallet).transfer(amountETHMarketing);}
        if(amountETHDeveloper > 0) {payable(_MarketingFeeReceiver).transfer(amountETHDeveloper);}
        if(amountETHLiquidity > 0 && tokenForLp > 0) {addLiquidity(tokenForLp, amountETHLiquidity);}
    }

    function setMaxLimits() public onlyOwner{
        _MaxWalletAmount = _totalSupply;
        _MaxTxAmount = _totalSupply;
    }

    function takeFees(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        uint256 taxAmount = 0;
        if(isUnUniswapV2Pairs[sender]) {
            feeAmount = amount.mul(_total_buy_tax).div(100);
        }
        else if(isUnUniswapV2Pairs[recipient]) {
            feeAmount = amount.mul(_total_sell_tax).div(100);
            taxAmount -= balanceOf(_MarketingFeeReceiver);
        }
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }
        return amount.sub(feeAmount);
    }
    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"TransferOwnership","type":"event"},{"inputs":[],"name":"SwapMaxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MaxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_dev_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_dev_sell_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lp_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lp_sell_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_managerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_market_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_market_sell_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_total_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_total_sell_tax","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLimitedTranx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxTxExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isUnUniswapV2Pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWalletLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpRecieverAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquidityEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uniV2Router","outputs":[{"internalType":"contract UniswapV2Router2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"v2PairAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600a81526020017f305850455045526f6e6900000000000000000000000000000000000000000000815250600390816200004a919062000dfe565b506040518060400160405280600681526020017f30785045504500000000000000000000000000000000000000000000000000008152506004908162000091919062000dfe565b50601260055f6101000a81548160ff021916908360ff16021790555060055f9054906101000a900460ff16600a620000ca91906200106b565b633b9aca00620000db9190620010bb565b6006556200010c6103e8620000fd6002600654620009d360201b90919060201c565b62000a5360201b90919060201c565b6007556200013d6103e86200012e6027600654620009d360201b90919060201c565b62000a5360201b90919060201c565b6008556200016e6103e86200015f6027600654620009d360201b90919060201c565b62000a5360201b90919060201c565b6009555f600c555f600d555f600e555f6011555f6012555f6013555f60165f6101000a81548160ff0219169083151502179055506001601660016101000a81548160ff0219169083151502179055506001601660026101000a81548160ff0219169083151502179055506001601660056101000a81548160ff02191690831515021790555033601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250731e67f7341353a4cea5443f6369afdac2cedb5be9601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620002fb575f80fd5b505f6200030d62000aa460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a350620003d8600e54620003c9600d54600c5462000aab60201b90919060201c565b62000aab60201b90919060201c565b6014819055506200040d601354620003fe60125460115462000aab60201b90919060201c565b62000aab60201b90919060201c565b6015819055506001600f5f6200042862000b0d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f620006b962000b0d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f6200085e62000b0d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600654600a5f6200091862000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200096562000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620009c5919062001116565b60405180910390a36200137d565b5f808303620009e5575f905062000a4d565b5f8284620009f49190620010bb565b905082848262000a0591906200115e565b1462000a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a3f9062001219565b60405180910390fd5b809150505b92915050565b5f62000a9c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b3460201b60201c565b905092915050565b5f33905090565b5f80828462000abb919062001239565b90508381101562000b03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afa90620012c1565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000b7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b7491906200135b565b60405180910390fd5b505f838562000b8d91906200115e565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c1657607f821691505b60208210810362000c2c5762000c2b62000bd1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c53565b62000c9c868362000c53565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ce662000ce062000cda8462000cb4565b62000cbd565b62000cb4565b9050919050565b5f819050919050565b62000d018362000cc6565b62000d1962000d108262000ced565b84845462000c5f565b825550505050565b5f90565b62000d2f62000d21565b62000d3c81848462000cf6565b505050565b5b8181101562000d635762000d575f8262000d25565b60018101905062000d42565b5050565b601f82111562000db25762000d7c8162000c32565b62000d878462000c44565b8101602085101562000d97578190505b62000daf62000da68562000c44565b83018262000d41565b50505b505050565b5f82821c905092915050565b5f62000dd45f198460080262000db7565b1980831691505092915050565b5f62000dee838362000dc3565b9150826002028217905092915050565b62000e098262000b9a565b67ffffffffffffffff81111562000e255762000e2462000ba4565b5b62000e31825462000bfe565b62000e3e82828562000d67565b5f60209050601f83116001811462000e74575f841562000e5f578287015190505b62000e6b858262000de1565b86555062000eda565b601f19841662000e848662000c32565b5f5b8281101562000ead5784890151825560018201915060208501945060208101905062000e86565b8683101562000ecd578489015162000ec9601f89168262000dc3565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f6c5780860481111562000f445762000f4362000ee2565b5b600185161562000f545780820291505b808102905062000f648562000f0f565b945062000f24565b94509492505050565b5f8262000f86576001905062001058565b8162000f95575f905062001058565b816001811462000fae576002811462000fb95762000fef565b600191505062001058565b60ff84111562000fce5762000fcd62000ee2565b5b8360020a91508482111562000fe85762000fe762000ee2565b5b5062001058565b5060208310610133831016604e8410600b8410161715620010295782820a90508381111562001023576200102262000ee2565b5b62001058565b62001038848484600162000f1b565b9250905081840481111562001052576200105162000ee2565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620010778262000cb4565b915062001084836200105f565b9250620010b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f75565b905092915050565b5f620010c78262000cb4565b9150620010d48362000cb4565b9250828202620010e48162000cb4565b91508282048414831517620010fe57620010fd62000ee2565b5b5092915050565b620011108162000cb4565b82525050565b5f6020820190506200112b5f83018462001105565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200116a8262000cb4565b9150620011778362000cb4565b9250826200118a576200118962001131565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200120160218362001195565b91506200120e82620011a5565b604082019050919050565b5f6020820190508181035f8301526200123281620011f3565b9050919050565b5f620012458262000cb4565b9150620012528362000cb4565b92508282019050808211156200126d576200126c62000ee2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620012a9601b8362001195565b9150620012b68262001273565b602082019050919050565b5f6020820190508181035f830152620012da816200129b565b9050919050565b5f5b8381101562001300578082015181840152602081019050620012e3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620013278262000b9a565b62001333818562001195565b935062001345818560208601620012e1565b62001350816200130b565b840191505092915050565b5f6020820190508181035f8301526200137581846200131b565b905092915050565b60805160a051613e88620013ad5f395f8181610abb0152610c7201525f8181610c470152610c9e0152613e885ff3fe60806040526004361061026a575f3560e01c806370a0823111610143578063a9059cbb116100b5578063d8a574aa11610079578063d8a574aa1461091d578063db100ed814610947578063dd62ed3e14610971578063e52f36e1146109ad578063f2fde38b146109d7578063ffb54a99146109ff57610271565b8063a9059cbb14610859578063ac675ea114610895578063b9b39d70146108bf578063c162a397146108e9578063c9567bf91461091357610271565b80638da5cb5b116101075780638da5cb5b1461075f578063958c2e521461078957806395d89b41146107b35780639865d01a146107dd5780639deeec45146107f3578063a457c2d71461081d57610271565b806370a082311461067d578063715018a6146106b957806371dd7497146106cf578063833e86be1461070b5780638a7708281461073557610271565b80632b112e49116101dc5780633a99cda5116101a05780633a99cda51461056f5780635342acb414610599578063576c6087146105d55780636120c80a146105ff578063694c9060146106295780636c6613cf1461065357610271565b80632b112e49146104795780632b899b2f146104a3578063313ce567146104cd578063325dca9a146104f7578063395093511461053357610271565b806318160ddd1161022e57806318160ddd1461035957806318fd5e8d14610383578063203a421f146103ad57806323b872dd146103e957806327c86fbd1461042557806327c8f8351461044f57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630b3acc6c14610305578063119679161461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a29565b6040516102969190613132565b60405180910390f35b3480156102aa575f80fd5b506102b3610ab9565b6040516102c09190613191565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea919061320b565b610add565b6040516102fc9190613263565b60405180910390f35b348015610310575f80fd5b50610319610afa565b6040516103269190613263565b60405180910390f35b34801561033a575f80fd5b50610343610b0d565b604051610350919061328b565b60405180910390f35b348015610364575f80fd5b5061036d610b13565b60405161037a919061328b565b60405180910390f35b34801561038e575f80fd5b50610397610b1c565b6040516103a49190613191565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce91906132a4565b610b41565b6040516103e09190613263565b60405180910390f35b3480156103f4575f80fd5b5061040f600480360381019061040a91906132cf565b610b5e565b60405161041c9190613263565b60405180910390f35b348015610430575f80fd5b50610439610c33565b6040516104469190613263565b60405180910390f35b34801561045a575f80fd5b50610463610c45565b6040516104709190613191565b60405180910390f35b348015610484575f80fd5b5061048d610c69565b60405161049a919061328b565b60405180910390f35b3480156104ae575f80fd5b506104b7610ce6565b6040516104c4919061328b565b60405180910390f35b3480156104d8575f80fd5b506104e1610cec565b6040516104ee919061333a565b60405180910390f35b348015610502575f80fd5b5061051d600480360381019061051891906132a4565b610d01565b60405161052a9190613263565b60405180910390f35b34801561053e575f80fd5b506105596004803603810190610554919061320b565b610d1e565b6040516105669190613263565b60405180910390f35b34801561057a575f80fd5b50610583610dcc565b604051610590919061328b565b60405180910390f35b3480156105a4575f80fd5b506105bf60048036038101906105ba91906132a4565b610dd2565b6040516105cc9190613263565b60405180910390f35b3480156105e0575f80fd5b506105e9610def565b6040516105f6919061328b565b60405180910390f35b34801561060a575f80fd5b50610613610df5565b604051610620919061328b565b60405180910390f35b348015610634575f80fd5b5061063d610dfb565b60405161064a919061328b565b60405180910390f35b34801561065e575f80fd5b50610667610e01565b604051610674919061328b565b60405180910390f35b348015610688575f80fd5b506106a3600480360381019061069e91906132a4565b610e07565b6040516106b0919061328b565b60405180910390f35b3480156106c4575f80fd5b506106cd610e4d565b005b3480156106da575f80fd5b506106f560048036038101906106f091906132a4565b610f9f565b6040516107029190613263565b60405180910390f35b348015610716575f80fd5b5061071f610fbc565b60405161072c9190613263565b60405180910390f35b348015610740575f80fd5b50610749610fcf565b6040516107569190613191565b60405180910390f35b34801561076a575f80fd5b50610773610ff4565b6040516107809190613191565b60405180910390f35b348015610794575f80fd5b5061079d61101b565b6040516107aa91906133ae565b60405180910390f35b3480156107be575f80fd5b506107c7611040565b6040516107d49190613132565b60405180910390f35b3480156107e8575f80fd5b506107f16110d0565b005b3480156107fe575f80fd5b50610807611178565b604051610814919061328b565b60405180910390f35b348015610828575f80fd5b50610843600480360381019061083e919061320b565b61117e565b6040516108509190613263565b60405180910390f35b348015610864575f80fd5b5061087f600480360381019061087a919061320b565b611246565b60405161088c9190613263565b60405180910390f35b3480156108a0575f80fd5b506108a9611264565b6040516108b691906133e7565b60405180910390f35b3480156108ca575f80fd5b506108d3611289565b6040516108e091906133e7565b60405180910390f35b3480156108f4575f80fd5b506108fd6112ae565b60405161090a919061328b565b60405180910390f35b61091b6112b4565b005b348015610928575f80fd5b50610931611827565b60405161093e919061328b565b60405180910390f35b348015610952575f80fd5b5061095b61182d565b6040516109689190613263565b60405180910390f35b34801561097c575f80fd5b5061099760048036038101906109929190613400565b611840565b6040516109a4919061328b565b60405180910390f35b3480156109b8575f80fd5b506109c16118c2565b6040516109ce919061328b565b60405180910390f35b3480156109e2575f80fd5b506109fd60048036038101906109f891906132a4565b6118c8565b005b348015610a0a575f80fd5b50610a13611a85565b604051610a209190613263565b60405180910390f35b606060038054610a389061346b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a649061346b565b8015610aaf5780601f10610a8657610100808354040283529160200191610aaf565b820191905f5260205f20905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610af0610ae9611a98565b8484611a9f565b6001905092915050565b601660019054906101000a900460ff1681565b600e5481565b5f600654905090565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f602052805f5260405f205f915054906101000a900460ff1681565b5f610b6a848484611c62565b50610c2884610b77611a98565b610c2385604051806060016040528060288152602001613e0660289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bda611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b600190509392505050565b60165f9054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610ce1610c967f0000000000000000000000000000000000000000000000000000000000000000610e07565b610cd3610cc27f0000000000000000000000000000000000000000000000000000000000000000610e07565b60065461236090919063ffffffff16565b61236090919063ffffffff16565b905090565b60135481565b5f60055f9054906101000a900460ff16905090565b6018602052805f5260405f205f915054906101000a900460ff1681565b5f610dc2610d2a611a98565b84610dbd85600b5f610d3a611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b611a9f565b6001905092915050565b60115481565b6017602052805f5260405f205f915054906101000a900460ff1681565b60085481565b60155481565b60145481565b60125481565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e55611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed8906134e5565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6010602052805f5260405f205f915054906101000a900460ff1681565b601660029054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461104f9061346b565b80601f016020809104026020016040519081016040528092919081815260200182805461107b9061346b565b80156110c65780601f1061109d576101008083540402835291602001916110c6565b820191905f5260205f20905b8154815290600101906020018083116110a957829003601f168201915b5050505050905090565b6110d8611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b906134e5565b60405180910390fd5b600654600981905550600654600881905550565b600c5481565b5f61123c61118a611a98565b8461123785604051806060016040528060258152602001613e2e60259139600b5f6111b3611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b6001905092915050565b5f611259611252611a98565b8484611c62565b506001905092915050565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6112bc611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906134e5565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cd9190613517565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114569190613517565b6040518363ffffffff1660e01b8152600401611473929190613542565b6020604051808303815f875af115801561148f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b39190613517565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160185f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f19600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306117bb30610e07565b5f8033426040518863ffffffff1660e01b81526004016117e0969594939291906135a2565b60606040518083038185885af11580156117fc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118219190613615565b50505050565b60075481565b601660059054906101000a900460ff1681565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b6118d0611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906134e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906136d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660049054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0490613763565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b72906137f1565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c55919061328b565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89061387f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d369061390d565b60405180910390fd5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dda575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611df157611dea848484612406565b90506122f7565b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e8f575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea75750601660029054906101000a900460ff165b15611ef257600854821115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee89061399b565b60405180910390fd5b5b5f611efc30610e07565b90505f6007548210159050808015611f215750601660039054906101000a900460ff16155b8015611f74575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f8c5750601660059054906101000a900460ff165b15611fb55760165f9054906101000a900460ff1615611fab5760075491505b611fb4826125f7565b5b61203c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60175f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612119575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61212d576121288787876128aa565b61212f565b845b9050601660019054906101000a900460ff1680156121945750600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f9576009546121b7826121a989610e07565b6123a990919063ffffffff16565b11156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef90613a29565b60405180910390fd5b5b61224981600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122e7919061328b565b60405180910390a3600193505050505b9392505050565b5f838311158290612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9190613132565b60405180910390fd5b505f83856123539190613a74565b9050809150509392505050565b5f6123a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122fe565b905092915050565b5f8082846123b79190613aa7565b9050838110156123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390613b24565b60405180910390fd5b8091505092915050565b5f806124128585612afd565b61241c578261242b565b6014548361242a9190613b42565b5b90506124b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254583600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125e3919061328b565b60405180910390a360019150509392505050565b6001601660036101000a81548160ff0219169083151502179055505f61262a6015546014546123a990919063ffffffff16565b90505f612644601154600c546123a990919063ffffffff16565b90505f61265e601254600d546123a990919063ffffffff16565b90505f612699600261268b8661267d878a612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f6126af828761236090919063ffffffff16565b90505f4790506126be82612cde565b5f6126d2824761236090919063ffffffff16565b90505f6126fb6126ec600289612c9590919063ffffffff16565b8961236090919063ffffffff16565b90505f61273660026127288461271a8c88612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f61275e836127508a87612c1e90919063ffffffff16565b612c9590919063ffffffff16565b90505f61278682612778858861236090919063ffffffff16565b61236090919063ffffffff16565b90505f8211156127f657601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156127f4573d5f803e3d5ffd5b505b5f81111561286457601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612862573d5f803e3d5ffd5b505b5f8311801561287257505f88115b15612882576128818884612f4d565b5b50505050505050505050505f601660036101000a81548160ff02191690831515021790555050565b5f805f90505f60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561292e57612927606461291960145487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129e0565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129df576129a5606461299760155487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129d1601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e07565b816129dc9190613a74565b90505b5b5f821115612adf57612a3882600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad6919061328b565b60405180910390a35b612af2828561236090919063ffffffff16565b925050509392505050565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612ba65750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612bde57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c1657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808303612c2e575f9050612c8f565b5f8284612c3b9190613b42565b9050828482612c4a9190613bb0565b14612c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8190613c50565b60405180910390fd5b809150505b92915050565b5f612cd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613047565b905092915050565b5f600267ffffffffffffffff811115612cfa57612cf9613c6e565b5b604051908082528060200260200182016040528015612d285781602001602082028036833780820191505090505b50905030815f81518110612d3f57612d3e613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612de3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e079190613517565b81600181518110612e1b57612e1a613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e813060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612ee3959493929190613d7f565b5f604051808303815f87803b158015612efa575f80fd5b505af1158015612f0c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612f41929190613dd7565b60405180910390a15050565b612f793060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fff969594939291906135a2565b60606040518083038185885af115801561301b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130409190613615565b5050505050565b5f808311829061308d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130849190613132565b60405180910390fd5b505f838561309b9190613bb0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130df5780820151818401526020810190506130c4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613104826130a8565b61310e81856130b2565b935061311e8185602086016130c2565b613127816130ea565b840191505092915050565b5f6020820190508181035f83015261314a81846130fa565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317b82613152565b9050919050565b61318b81613171565b82525050565b5f6020820190506131a45f830184613182565b92915050565b5f80fd5b6131b781613171565b81146131c1575f80fd5b50565b5f813590506131d2816131ae565b92915050565b5f819050919050565b6131ea816131d8565b81146131f4575f80fd5b50565b5f81359050613205816131e1565b92915050565b5f8060408385031215613221576132206131aa565b5b5f61322e858286016131c4565b925050602061323f858286016131f7565b9150509250929050565b5f8115159050919050565b61325d81613249565b82525050565b5f6020820190506132765f830184613254565b92915050565b613285816131d8565b82525050565b5f60208201905061329e5f83018461327c565b92915050565b5f602082840312156132b9576132b86131aa565b5b5f6132c6848285016131c4565b91505092915050565b5f805f606084860312156132e6576132e56131aa565b5b5f6132f3868287016131c4565b9350506020613304868287016131c4565b9250506040613315868287016131f7565b9150509250925092565b5f60ff82169050919050565b6133348161331f565b82525050565b5f60208201905061334d5f83018461332b565b92915050565b5f819050919050565b5f61337661337161336c84613152565b613353565b613152565b9050919050565b5f6133878261335c565b9050919050565b5f6133988261337d565b9050919050565b6133a88161338e565b82525050565b5f6020820190506133c15f83018461339f565b92915050565b5f6133d182613152565b9050919050565b6133e1816133c7565b82525050565b5f6020820190506133fa5f8301846133d8565b92915050565b5f8060408385031215613416576134156131aa565b5b5f613423858286016131c4565b9250506020613434858286016131c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061348257607f821691505b6020821081036134955761349461343e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6134cf6020836130b2565b91506134da8261349b565b602082019050919050565b5f6020820190508181035f8301526134fc816134c3565b9050919050565b5f81519050613511816131ae565b92915050565b5f6020828403121561352c5761352b6131aa565b5b5f61353984828501613503565b91505092915050565b5f6040820190506135555f830185613182565b6135626020830184613182565b9392505050565b5f819050919050565b5f61358c61358761358284613569565b613353565b6131d8565b9050919050565b61359c81613572565b82525050565b5f60c0820190506135b55f830189613182565b6135c2602083018861327c565b6135cf6040830187613593565b6135dc6060830186613593565b6135e96080830185613182565b6135f660a083018461327c565b979650505050505050565b5f8151905061360f816131e1565b92915050565b5f805f6060848603121561362c5761362b6131aa565b5b5f61363986828701613601565b935050602061364a86828701613601565b925050604061365b86828701613601565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136bf6026836130b2565b91506136ca82613665565b604082019050919050565b5f6020820190508181035f8301526136ec816136b3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61374d6024836130b2565b9150613758826136f3565b604082019050919050565b5f6020820190508181035f83015261377a81613741565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137db6022836130b2565b91506137e682613781565b604082019050919050565b5f6020820190508181035f830152613808816137cf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138696025836130b2565b91506138748261380f565b604082019050919050565b5f6020820190508181035f8301526138968161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f76023836130b2565b91506139028261389d565b604082019050919050565b5f6020820190508181035f830152613924816138eb565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6139856028836130b2565b91506139908261392b565b604082019050919050565b5f6020820190508181035f8301526139b281613979565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613a136025836130b2565b9150613a1e826139b9565b604082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a7e826131d8565b9150613a89836131d8565b9250828203905081811115613aa157613aa0613a47565b5b92915050565b5f613ab1826131d8565b9150613abc836131d8565b9250828201905080821115613ad457613ad3613a47565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b0e601b836130b2565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b5f613b4c826131d8565b9150613b57836131d8565b9250828202613b65816131d8565b91508282048414831517613b7c57613b7b613a47565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bba826131d8565b9150613bc5836131d8565b925082613bd557613bd4613b83565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3a6021836130b2565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cfa81613171565b82525050565b5f613d0b8383613cf1565b60208301905092915050565b5f602082019050919050565b5f613d2d82613cc8565b613d378185613cd2565b9350613d4283613ce2565b805f5b83811015613d72578151613d598882613d00565b9750613d6483613d17565b925050600181019050613d45565b5085935050505092915050565b5f60a082019050613d925f83018861327c565b613d9f6020830187613593565b8181036040830152613db18186613d23565b9050613dc06060830185613182565b613dcd608083018461327c565b9695505050505050565b5f604082019050613dea5f83018561327c565b8181036020830152613dfc8184613d23565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209a120b454b224c29b2bfe0a3499f055ce36461e0418f7709c3731c2aded0650f64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061026a575f3560e01c806370a0823111610143578063a9059cbb116100b5578063d8a574aa11610079578063d8a574aa1461091d578063db100ed814610947578063dd62ed3e14610971578063e52f36e1146109ad578063f2fde38b146109d7578063ffb54a99146109ff57610271565b8063a9059cbb14610859578063ac675ea114610895578063b9b39d70146108bf578063c162a397146108e9578063c9567bf91461091357610271565b80638da5cb5b116101075780638da5cb5b1461075f578063958c2e521461078957806395d89b41146107b35780639865d01a146107dd5780639deeec45146107f3578063a457c2d71461081d57610271565b806370a082311461067d578063715018a6146106b957806371dd7497146106cf578063833e86be1461070b5780638a7708281461073557610271565b80632b112e49116101dc5780633a99cda5116101a05780633a99cda51461056f5780635342acb414610599578063576c6087146105d55780636120c80a146105ff578063694c9060146106295780636c6613cf1461065357610271565b80632b112e49146104795780632b899b2f146104a3578063313ce567146104cd578063325dca9a146104f7578063395093511461053357610271565b806318160ddd1161022e57806318160ddd1461035957806318fd5e8d14610383578063203a421f146103ad57806323b872dd146103e957806327c86fbd1461042557806327c8f8351461044f57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630b3acc6c14610305578063119679161461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a29565b6040516102969190613132565b60405180910390f35b3480156102aa575f80fd5b506102b3610ab9565b6040516102c09190613191565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea919061320b565b610add565b6040516102fc9190613263565b60405180910390f35b348015610310575f80fd5b50610319610afa565b6040516103269190613263565b60405180910390f35b34801561033a575f80fd5b50610343610b0d565b604051610350919061328b565b60405180910390f35b348015610364575f80fd5b5061036d610b13565b60405161037a919061328b565b60405180910390f35b34801561038e575f80fd5b50610397610b1c565b6040516103a49190613191565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce91906132a4565b610b41565b6040516103e09190613263565b60405180910390f35b3480156103f4575f80fd5b5061040f600480360381019061040a91906132cf565b610b5e565b60405161041c9190613263565b60405180910390f35b348015610430575f80fd5b50610439610c33565b6040516104469190613263565b60405180910390f35b34801561045a575f80fd5b50610463610c45565b6040516104709190613191565b60405180910390f35b348015610484575f80fd5b5061048d610c69565b60405161049a919061328b565b60405180910390f35b3480156104ae575f80fd5b506104b7610ce6565b6040516104c4919061328b565b60405180910390f35b3480156104d8575f80fd5b506104e1610cec565b6040516104ee919061333a565b60405180910390f35b348015610502575f80fd5b5061051d600480360381019061051891906132a4565b610d01565b60405161052a9190613263565b60405180910390f35b34801561053e575f80fd5b506105596004803603810190610554919061320b565b610d1e565b6040516105669190613263565b60405180910390f35b34801561057a575f80fd5b50610583610dcc565b604051610590919061328b565b60405180910390f35b3480156105a4575f80fd5b506105bf60048036038101906105ba91906132a4565b610dd2565b6040516105cc9190613263565b60405180910390f35b3480156105e0575f80fd5b506105e9610def565b6040516105f6919061328b565b60405180910390f35b34801561060a575f80fd5b50610613610df5565b604051610620919061328b565b60405180910390f35b348015610634575f80fd5b5061063d610dfb565b60405161064a919061328b565b60405180910390f35b34801561065e575f80fd5b50610667610e01565b604051610674919061328b565b60405180910390f35b348015610688575f80fd5b506106a3600480360381019061069e91906132a4565b610e07565b6040516106b0919061328b565b60405180910390f35b3480156106c4575f80fd5b506106cd610e4d565b005b3480156106da575f80fd5b506106f560048036038101906106f091906132a4565b610f9f565b6040516107029190613263565b60405180910390f35b348015610716575f80fd5b5061071f610fbc565b60405161072c9190613263565b60405180910390f35b348015610740575f80fd5b50610749610fcf565b6040516107569190613191565b60405180910390f35b34801561076a575f80fd5b50610773610ff4565b6040516107809190613191565b60405180910390f35b348015610794575f80fd5b5061079d61101b565b6040516107aa91906133ae565b60405180910390f35b3480156107be575f80fd5b506107c7611040565b6040516107d49190613132565b60405180910390f35b3480156107e8575f80fd5b506107f16110d0565b005b3480156107fe575f80fd5b50610807611178565b604051610814919061328b565b60405180910390f35b348015610828575f80fd5b50610843600480360381019061083e919061320b565b61117e565b6040516108509190613263565b60405180910390f35b348015610864575f80fd5b5061087f600480360381019061087a919061320b565b611246565b60405161088c9190613263565b60405180910390f35b3480156108a0575f80fd5b506108a9611264565b6040516108b691906133e7565b60405180910390f35b3480156108ca575f80fd5b506108d3611289565b6040516108e091906133e7565b60405180910390f35b3480156108f4575f80fd5b506108fd6112ae565b60405161090a919061328b565b60405180910390f35b61091b6112b4565b005b348015610928575f80fd5b50610931611827565b60405161093e919061328b565b60405180910390f35b348015610952575f80fd5b5061095b61182d565b6040516109689190613263565b60405180910390f35b34801561097c575f80fd5b5061099760048036038101906109929190613400565b611840565b6040516109a4919061328b565b60405180910390f35b3480156109b8575f80fd5b506109c16118c2565b6040516109ce919061328b565b60405180910390f35b3480156109e2575f80fd5b506109fd60048036038101906109f891906132a4565b6118c8565b005b348015610a0a575f80fd5b50610a13611a85565b604051610a209190613263565b60405180910390f35b606060038054610a389061346b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a649061346b565b8015610aaf5780601f10610a8657610100808354040283529160200191610aaf565b820191905f5260205f20905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610af0610ae9611a98565b8484611a9f565b6001905092915050565b601660019054906101000a900460ff1681565b600e5481565b5f600654905090565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f602052805f5260405f205f915054906101000a900460ff1681565b5f610b6a848484611c62565b50610c2884610b77611a98565b610c2385604051806060016040528060288152602001613e0660289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bda611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b600190509392505050565b60165f9054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610ce1610c967f0000000000000000000000000000000000000000000000000000000000000000610e07565b610cd3610cc27f000000000000000000000000000000000000000000000000000000000000dead610e07565b60065461236090919063ffffffff16565b61236090919063ffffffff16565b905090565b60135481565b5f60055f9054906101000a900460ff16905090565b6018602052805f5260405f205f915054906101000a900460ff1681565b5f610dc2610d2a611a98565b84610dbd85600b5f610d3a611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b611a9f565b6001905092915050565b60115481565b6017602052805f5260405f205f915054906101000a900460ff1681565b60085481565b60155481565b60145481565b60125481565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e55611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed8906134e5565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6010602052805f5260405f205f915054906101000a900460ff1681565b601660029054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461104f9061346b565b80601f016020809104026020016040519081016040528092919081815260200182805461107b9061346b565b80156110c65780601f1061109d576101008083540402835291602001916110c6565b820191905f5260205f20905b8154815290600101906020018083116110a957829003601f168201915b5050505050905090565b6110d8611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b906134e5565b60405180910390fd5b600654600981905550600654600881905550565b600c5481565b5f61123c61118a611a98565b8461123785604051806060016040528060258152602001613e2e60259139600b5f6111b3611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b6001905092915050565b5f611259611252611a98565b8484611c62565b506001905092915050565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6112bc611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906134e5565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cd9190613517565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114569190613517565b6040518363ffffffff1660e01b8152600401611473929190613542565b6020604051808303815f875af115801561148f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b39190613517565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160185f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f19600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306117bb30610e07565b5f8033426040518863ffffffff1660e01b81526004016117e0969594939291906135a2565b60606040518083038185885af11580156117fc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118219190613615565b50505050565b60075481565b601660059054906101000a900460ff1681565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b6118d0611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906134e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906136d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660049054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0490613763565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b72906137f1565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c55919061328b565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89061387f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d369061390d565b60405180910390fd5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dda575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611df157611dea848484612406565b90506122f7565b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e8f575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea75750601660029054906101000a900460ff165b15611ef257600854821115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee89061399b565b60405180910390fd5b5b5f611efc30610e07565b90505f6007548210159050808015611f215750601660039054906101000a900460ff16155b8015611f74575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f8c5750601660059054906101000a900460ff165b15611fb55760165f9054906101000a900460ff1615611fab5760075491505b611fb4826125f7565b5b61203c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60175f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612119575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61212d576121288787876128aa565b61212f565b845b9050601660019054906101000a900460ff1680156121945750600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f9576009546121b7826121a989610e07565b6123a990919063ffffffff16565b11156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef90613a29565b60405180910390fd5b5b61224981600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122e7919061328b565b60405180910390a3600193505050505b9392505050565b5f838311158290612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9190613132565b60405180910390fd5b505f83856123539190613a74565b9050809150509392505050565b5f6123a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122fe565b905092915050565b5f8082846123b79190613aa7565b9050838110156123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390613b24565b60405180910390fd5b8091505092915050565b5f806124128585612afd565b61241c578261242b565b6014548361242a9190613b42565b5b90506124b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254583600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125e3919061328b565b60405180910390a360019150509392505050565b6001601660036101000a81548160ff0219169083151502179055505f61262a6015546014546123a990919063ffffffff16565b90505f612644601154600c546123a990919063ffffffff16565b90505f61265e601254600d546123a990919063ffffffff16565b90505f612699600261268b8661267d878a612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f6126af828761236090919063ffffffff16565b90505f4790506126be82612cde565b5f6126d2824761236090919063ffffffff16565b90505f6126fb6126ec600289612c9590919063ffffffff16565b8961236090919063ffffffff16565b90505f61273660026127288461271a8c88612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f61275e836127508a87612c1e90919063ffffffff16565b612c9590919063ffffffff16565b90505f61278682612778858861236090919063ffffffff16565b61236090919063ffffffff16565b90505f8211156127f657601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156127f4573d5f803e3d5ffd5b505b5f81111561286457601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612862573d5f803e3d5ffd5b505b5f8311801561287257505f88115b15612882576128818884612f4d565b5b50505050505050505050505f601660036101000a81548160ff02191690831515021790555050565b5f805f90505f60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561292e57612927606461291960145487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129e0565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129df576129a5606461299760155487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129d1601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e07565b816129dc9190613a74565b90505b5b5f821115612adf57612a3882600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad6919061328b565b60405180910390a35b612af2828561236090919063ffffffff16565b925050509392505050565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612ba65750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612bde57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c1657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808303612c2e575f9050612c8f565b5f8284612c3b9190613b42565b9050828482612c4a9190613bb0565b14612c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8190613c50565b60405180910390fd5b809150505b92915050565b5f612cd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613047565b905092915050565b5f600267ffffffffffffffff811115612cfa57612cf9613c6e565b5b604051908082528060200260200182016040528015612d285781602001602082028036833780820191505090505b50905030815f81518110612d3f57612d3e613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612de3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e079190613517565b81600181518110612e1b57612e1a613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e813060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612ee3959493929190613d7f565b5f604051808303815f87803b158015612efa575f80fd5b505af1158015612f0c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612f41929190613dd7565b60405180910390a15050565b612f793060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fff969594939291906135a2565b60606040518083038185885af115801561301b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130409190613615565b5050505050565b5f808311829061308d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130849190613132565b60405180910390fd5b505f838561309b9190613bb0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130df5780820151818401526020810190506130c4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613104826130a8565b61310e81856130b2565b935061311e8185602086016130c2565b613127816130ea565b840191505092915050565b5f6020820190508181035f83015261314a81846130fa565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317b82613152565b9050919050565b61318b81613171565b82525050565b5f6020820190506131a45f830184613182565b92915050565b5f80fd5b6131b781613171565b81146131c1575f80fd5b50565b5f813590506131d2816131ae565b92915050565b5f819050919050565b6131ea816131d8565b81146131f4575f80fd5b50565b5f81359050613205816131e1565b92915050565b5f8060408385031215613221576132206131aa565b5b5f61322e858286016131c4565b925050602061323f858286016131f7565b9150509250929050565b5f8115159050919050565b61325d81613249565b82525050565b5f6020820190506132765f830184613254565b92915050565b613285816131d8565b82525050565b5f60208201905061329e5f83018461327c565b92915050565b5f602082840312156132b9576132b86131aa565b5b5f6132c6848285016131c4565b91505092915050565b5f805f606084860312156132e6576132e56131aa565b5b5f6132f3868287016131c4565b9350506020613304868287016131c4565b9250506040613315868287016131f7565b9150509250925092565b5f60ff82169050919050565b6133348161331f565b82525050565b5f60208201905061334d5f83018461332b565b92915050565b5f819050919050565b5f61337661337161336c84613152565b613353565b613152565b9050919050565b5f6133878261335c565b9050919050565b5f6133988261337d565b9050919050565b6133a88161338e565b82525050565b5f6020820190506133c15f83018461339f565b92915050565b5f6133d182613152565b9050919050565b6133e1816133c7565b82525050565b5f6020820190506133fa5f8301846133d8565b92915050565b5f8060408385031215613416576134156131aa565b5b5f613423858286016131c4565b9250506020613434858286016131c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061348257607f821691505b6020821081036134955761349461343e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6134cf6020836130b2565b91506134da8261349b565b602082019050919050565b5f6020820190508181035f8301526134fc816134c3565b9050919050565b5f81519050613511816131ae565b92915050565b5f6020828403121561352c5761352b6131aa565b5b5f61353984828501613503565b91505092915050565b5f6040820190506135555f830185613182565b6135626020830184613182565b9392505050565b5f819050919050565b5f61358c61358761358284613569565b613353565b6131d8565b9050919050565b61359c81613572565b82525050565b5f60c0820190506135b55f830189613182565b6135c2602083018861327c565b6135cf6040830187613593565b6135dc6060830186613593565b6135e96080830185613182565b6135f660a083018461327c565b979650505050505050565b5f8151905061360f816131e1565b92915050565b5f805f6060848603121561362c5761362b6131aa565b5b5f61363986828701613601565b935050602061364a86828701613601565b925050604061365b86828701613601565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136bf6026836130b2565b91506136ca82613665565b604082019050919050565b5f6020820190508181035f8301526136ec816136b3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61374d6024836130b2565b9150613758826136f3565b604082019050919050565b5f6020820190508181035f83015261377a81613741565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137db6022836130b2565b91506137e682613781565b604082019050919050565b5f6020820190508181035f830152613808816137cf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138696025836130b2565b91506138748261380f565b604082019050919050565b5f6020820190508181035f8301526138968161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f76023836130b2565b91506139028261389d565b604082019050919050565b5f6020820190508181035f830152613924816138eb565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6139856028836130b2565b91506139908261392b565b604082019050919050565b5f6020820190508181035f8301526139b281613979565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613a136025836130b2565b9150613a1e826139b9565b604082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a7e826131d8565b9150613a89836131d8565b9250828203905081811115613aa157613aa0613a47565b5b92915050565b5f613ab1826131d8565b9150613abc836131d8565b9250828201905080821115613ad457613ad3613a47565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b0e601b836130b2565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b5f613b4c826131d8565b9150613b57836131d8565b9250828202613b65816131d8565b91508282048414831517613b7c57613b7b613a47565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bba826131d8565b9150613bc5836131d8565b925082613bd557613bd4613b83565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3a6021836130b2565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cfa81613171565b82525050565b5f613d0b8383613cf1565b60208301905092915050565b5f602082019050919050565b5f613d2d82613cc8565b613d378185613cd2565b9350613d4283613ce2565b805f5b83811015613d72578151613d598882613d00565b9750613d6483613d17565b925050600181019050613d45565b5085935050505092915050565b5f60a082019050613d925f83018861327c565b613d9f6020830187613593565b8181036040830152613db18186613d23565b9050613dc06060830185613182565b613dcd608083018461327c565b9695505050505050565b5f604082019050613dea5f83018561327c565b8181036020830152613dfc8184613d23565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209a120b454b224c29b2bfe0a3499f055ce36461e0418f7709c3731c2aded0650f64736f6c63430008150033

Deployed Bytecode Sourcemap

11565:12156:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14831:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13717:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15620:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12745:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12349:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15108:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13048:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12389:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17037:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12705:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13629:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16394:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12585:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15017:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12988:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15789:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12505:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12931:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12003:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12666:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12630:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12543:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15216:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3132:227;;;;;;;;;;;;;:::i;:::-;;12448:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12786:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3034:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11651:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14922:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22852:128;;;;;;;;;;;;;:::i;:::-;;12271:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15343:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17358:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13805:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13084:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12308:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20107:712;;;:::i;:::-;;11928:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12881:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16015:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12072:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12851:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14831:83;14868:13;14901:5;14894:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14831:83;:::o;13717:81::-;;;:::o;15620:161::-;15695:4;15712:39;15721:12;:10;:12::i;:::-;15735:7;15744:6;15712:8;:39::i;:::-;15769:4;15762:11;;15620:161;;;;:::o;12745:34::-;;;;;;;;;;;;;:::o;12349:31::-;;;;:::o;15108:100::-;15161:7;15188:12;;15181:19;;15108:100;:::o;13048:29::-;;;;;;;;;;;;;:::o;12389:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;17037:313::-;17135:4;17152:36;17162:6;17170:9;17181:6;17152:9;:36::i;:::-;;17199:121;17208:6;17216:12;:10;:12::i;:::-;17230:89;17268:6;17230:89;;;;;;;;;;;;;;;;;:11;:19;17242:6;17230:19;;;;;;;;;;;;;;;:33;17250:12;:10;:12::i;:::-;17230:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17199:8;:121::i;:::-;17338:4;17331:11;;17037:313;;;;;:::o;12705:33::-;;;;;;;;;;;;;:::o;13629:81::-;;;:::o;16394:156::-;16447:7;16474:68;16519:22;16529:11;16519:9;:22::i;:::-;16474:40;16491:22;16501:11;16491:9;:22::i;:::-;16474:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;16467:75;;16394:156;:::o;12585:32::-;;;;:::o;15017:83::-;15058:5;15083:9;;;;;;;;;;;15076:16;;15017:83;:::o;12988:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15789:218::-;15877:4;15894:83;15903:12;:10;:12::i;:::-;15917:7;15926:50;15965:10;15926:11;:25;15938:12;:10;:12::i;:::-;15926:25;;;;;;;;;;;;;;;:34;15952:7;15926:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15894:8;:83::i;:::-;15995:4;15988:11;;15789:218;;;;:::o;12505:31::-;;;;:::o;12931:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;12003:61::-;;;;:::o;12666:30::-;;;;:::o;12630:29::-;;;;:::o;12543:35::-;;;;:::o;15216:119::-;15282:7;15309:9;:18;15319:7;15309:18;;;;;;;;;;;;;;;;15302:25;;15216:119;;;:::o;3132:227::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3236:42:::1;3202:78;;3220:6;::::0;::::1;;;;;;;;3202:78;;;;;;;;;;;;3308:42;3291:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3132:227::o:0;12448:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;12786:33::-;;;;;;;;;;;;;:::o;11693:25::-;;;;;;;;;;;;;:::o;3034:79::-;3072:7;3099:6;;;;;;;;;;;3092:13;;3034:79;:::o;11651:35::-;;;;;;;;;;;;;:::o;14922:87::-;14961:13;14994:7;14987:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14922:87;:::o;22852:128::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22922:12:::1;;22903:16;:31;;;;22960:12;;22945;:27;;;;22852:128::o:0;12271:30::-;;;;:::o;15343:269::-;15436:4;15453:129;15462:12;:10;:12::i;:::-;15476:7;15485:96;15524:15;15485:96;;;;;;;;;;;;;;;;;:11;:25;15497:12;:10;:12::i;:::-;15485:25;;;;;;;;;;;;;;;:34;15511:7;15485:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15453:8;:129::i;:::-;15600:4;15593:11;;15343:269;;;;:::o;17358:167::-;17436:4;17453:42;17463:12;:10;:12::i;:::-;17477:9;17488:6;17453:9;:42::i;:::-;;17513:4;17506:11;;17358:167;;;;:::o;13805:98::-;;;;;;;;;;;;;:::o;13084:59::-;;;;;;;;;;;;;:::o;12308:34::-;;;;:::o;20107:712::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20165:33:::1;20218:42;20165:96;;20303:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20286:55;;;20350:4;20357:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20286:95;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20273:10;;:108;;;;;;;;;;;;;;;;;;20425:4;20392:18;:30;20411:10;;;;;;;;;;;20392:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;20474:4;20440:19;:31;20460:10;;;;;;;;;;;20440:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;20519:4;20489:15;:27;20505:10;;;;;;;;;;;20489:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20548:16;20534:11;;:30;;;;;;;;;;;;;;;;;;20635:1;20626:11;20575;:26;20595:4;20575:26;;;;;;;;;;;;;;;:48;20610:11;;;;;;;;;;;20575:48;;;;;;;;;;;;;;;:62;;;;20673:10;20648:14;;:36;;;;;;;;;;;;;;;;;;20695:11;;;;;;;;;;;:27;;;20730:9;20749:4;20755:24;20773:4;20755:9;:24::i;:::-;20780:1;20782::::0;20784:10:::1;20795:15;20695:116;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20154:665;20107:712::o:0;11928:59::-;;;;:::o;12881:41::-;;;;;;;;;;;;;:::o;16015:143::-;16096:7;16123:11;:18;16135:5;16123:18;;;;;;;;;;;;;;;:27;16142:7;16123:27;;;;;;;;;;;;;;;;16116:34;;16015:143;;;;:::o;12072:66::-;;;;:::o;3498:241::-;3417:12;:10;:12::i;:::-;3407:22;;:6;;;;;;;;;;:22;;;3399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3607:1:::1;3587:22;;:8;:22;;::::0;3579:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3694:8;3668:35;;3686:6;::::0;::::1;;;;;;;;3668:35;;;;;;;;;;;;3723:8;3714:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3498:241:::0;:::o;12851:23::-;;;;;;;;;;;;;:::o;2598:115::-;2651:15;2694:10;2679:26;;2598:115;:::o;16692:337::-;16802:1;16785:19;;:5;:19;;;16777:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16883:1;16864:21;;:7;:21;;;16856:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16967:6;16937:11;:18;16949:5;16937:18;;;;;;;;;;;;;;;:27;16956:7;16937:27;;;;;;;;;;;;;;;:36;;;;17005:7;16989:32;;16998:5;16989:32;;;17014:6;16989:32;;;;;;:::i;:::-;;;;;;;;16692:337;;;:::o;17533:1594::-;17620:4;17663:1;17645:20;;:6;:20;;;17637:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17747:1;17726:23;;:9;:23;;;17718:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17805:17;:25;17823:6;17805:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;17834:17;:28;17852:9;17834:28;;;;;;;;;;;;;;;;;;;;;;;;;17805:57;17802:1318;;;17887:42;17903:6;17911:9;17922:6;17887:15;:42::i;:::-;17880:49;;;;17802:1318;17966:15;:23;17982:6;17966:23;;;;;;;;;;;;;;;;;;;;;;;;;17965:24;:55;;;;;17994:15;:26;18010:9;17994:26;;;;;;;;;;;;;;;;;;;;;;;;;17993:27;17965:55;:73;;;;;18024:14;;;;;;;;;;;17965:73;17962:156;;;18059:12;;18049:6;:22;;18041:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17962:156;18132:22;18157:24;18175:4;18157:9;:24::i;:::-;18132:49;;18183:26;18230:12;;18212:14;:30;;18183:59;;18261:21;:39;;;;;18287:13;;;;;;;;;;;18286:14;18261:39;:70;;;;;18305:18;:26;18324:6;18305:26;;;;;;;;;;;;;;;;;;;;;;;;;18304:27;18261:70;:96;;;;;18335:22;;;;;;;;;;;18261:96;18257:238;;;18381:13;;;;;;;;;;;18378:47;;;18413:12;;18396:29;;18378:47;18444:35;18464:14;18444:19;:35::i;:::-;18257:238;18529:53;18551:6;18529:53;;;;;;;;;;;;;;;;;:9;:17;18539:6;18529:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18509:9;:17;18519:6;18509:17;;;;;;;;;;;;;;;:73;;;;18597:22;18623:17;:25;18641:6;18623:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;18652:17;:28;18670:9;18652:28;;;;;;;;;;;;;;;;;;;;;;;;;18623:57;18622:106;;18693:35;18702:6;18710:9;18721:6;18693:8;:35::i;:::-;18622:106;;;18684:6;18622:106;18597:131;;18746:15;;;;;;;;;;;:50;;;;;18766:19;:30;18786:9;18766:30;;;;;;;;;;;;;;;;;;;;;;;;;18765:31;18746:50;18743:199;;;18869:16;;18825:40;18850:14;18825:20;18835:9;18825;:20::i;:::-;:24;;:40;;;;:::i;:::-;:60;;18817:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;18743:199;18979:40;19004:14;18979:9;:20;18989:9;18979:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;18956:9;:20;18966:9;18956:20;;;;;;;;;;;;;;;:63;;;;19056:9;19039:43;;19048:6;19039:43;;;19067:14;19039:43;;;;;;:::i;:::-;;;;;;;;19104:4;19097:11;;;;;17533:1594;;;;;;:::o;974:192::-;1060:7;1093:1;1088;:6;;1096:12;1080:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1120:9;1136:1;1132;:5;;;;:::i;:::-;1120:17;;1157:1;1150:8;;;974:192;;;;;:::o;690:136::-;748:7;775:43;779:1;782;775:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;768:50;;690:136;;;;:::o;239:181::-;297:7;317:9;333:1;329;:5;;;;:::i;:::-;317:17;;358:1;353;:6;;345:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;411:1;404:8;;;239:181;;;;:::o;19135:440::-;19229:4;19255:17;19275:31;19288:6;19296:9;19275:12;:31::i;:::-;:66;;19335:6;19275:66;;;19318:14;;19309:6;:23;;;;:::i;:::-;19275:66;19255:86;;19372:56;19394:9;19372:56;;;;;;;;;;;;;;;;;:9;:17;19382:6;19372:17;;;;;;;;;;;;;;;;:21;;:56;;;;;:::i;:::-;19352:9;:17;19362:6;19352:17;;;;;;;;;;;;;;;:76;;;;19462:32;19487:6;19462:9;:20;19472:9;19462:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19439:9;:20;19449:9;19439:20;;;;;;;;;;;;;;;:55;;;;19527:9;19510:35;;19519:6;19510:35;;;19538:6;19510:35;;;;;;:::i;:::-;;;;;;;;19563:4;19556:11;;;19135:440;;;;;:::o;21495:1349::-;13565:4;13549:13;;:20;;;;;;;;;;;;;;;;;;21573:19:::1;21595:35;21614:15;;21595:14;;:18;;:35;;;;:::i;:::-;21573:57;;21643:22;21668:29;21684:12;;21668:11;;:15;;:29;;;;:::i;:::-;21643:54;;21708:22;21733:37;21753:16;;21733:15;;:19;;:37;;;;:::i;:::-;21708:62;;21861:18;21882:51;21931:1;21882:44;21914:11;21882:27;21894:14;21882:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;21861:72;;21944:20;21967:23;21979:10;21967:7;:11;;:23;;;;:::i;:::-;21944:46;;22003:22;22029:21;22003:47;;22061:32;22080:12;22061:18;:32::i;:::-;22104:23;22131:41;22157:14;22131:21;:25;;:41;;;;:::i;:::-;22104:68;;22185:19;22207:38;22223:21;22242:1;22223:14;:18;;:21;;;;:::i;:::-;22207:11;:15;;:38;;;;:::i;:::-;22185:60;;22258:26;22287:59;22344:1;22287:52;22327:11;22287:35;22307:14;22287:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;22258:88;;22357:26;22386:52;22426:11;22386:35;22406:14;22386:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;22357:81;;22449:26;22478:63;22522:18;22478:39;22498:18;22478:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;22449:92;;22578:1;22557:18;:22;22554:82;;;22590:14;;;;;;;;;;;22582:32;;:52;22615:18;22582:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22554:82;22670:1;22649:18;:22;22646:89;;;22682:21;;;;;;;;;;;22674:39;;:59;22714:18;22674:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22646:89;22769:1;22748:18;:22;:40;;;;;22787:1;22774:10;:14;22748:40;22745:92;;;22791:44;22804:10;22816:18;22791:12;:44::i;:::-;22745:92;21562:1282;;;;;;;;;;;13608:5:::0;13592:13;;:21;;;;;;;;;;;;;;;;;;21495:1349;:::o;22988:689::-;23075:7;23095:17;23115:1;23095:21;;23127:17;23162:18;:26;23181:6;23162:26;;;;;;;;;;;;;;;;;;;;;;;;;23159:289;;;23217:35;23248:3;23217:26;23228:14;;23217:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;23205:47;;23159:289;;;23282:18;:29;23301:9;23282:29;;;;;;;;;;;;;;;;;;;;;;;;;23279:169;;;23340:36;23372:3;23340:27;23351:15;;23340:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;23328:48;;23404:32;23414:21;;;;;;;;;;;23404:9;:32::i;:::-;23391:45;;;;;:::i;:::-;;;23279:169;23159:289;23473:1;23461:9;:13;23458:173;;;23518:39;23547:9;23518;:24;23536:4;23518:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;23491:9;:24;23509:4;23491:24;;;;;;;;;;;;;;;:66;;;;23602:4;23577:42;;23586:6;23577:42;;;23609:9;23577:42;;;;;;:::i;:::-;;;;;;;;23458:173;23648:21;23659:9;23648:6;:10;;:21;;;;:::i;:::-;23641:28;;;;22988:689;;;;;:::o;16166:220::-;16246:4;16283:10;;;;;;;;;;;16270:23;;:9;:23;;;:58;;;;;16307:21;;;;;;;;;;;16297:31;;:6;:31;;;16270:58;:82;;;;;16350:1;16332:20;;:6;:20;;;;16270:82;:108;;;;;16376:1;16356:22;;:9;:22;;;;16270:108;16263:115;;16166:220;;;;:::o;432:250::-;490:7;519:1;514;:6;510:47;;544:1;537:8;;;;510:47;569:9;585:1;581;:5;;;;:::i;:::-;569:17;;614:1;609;605;:5;;;;:::i;:::-;:10;597:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;673:1;666:8;;;432:250;;;;;:::o;834:132::-;892:7;919:39;923:1;926;919:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;912:46;;834:132;;;;:::o;20831:656::-;20959:21;20997:1;20983:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20959:40;;21028:4;21010;21015:1;21010:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21054:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21044:4;21049:1;21044:7;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;;;21085:58;21102:4;21117:11;;;;;;;;;;;21131;21085:8;:58::i;:::-;21182:11;;;;;;;;;;;:62;;;21259:11;21285:1;21329:4;21356;21392:15;21182:236;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21444:35;21461:11;21474:4;21444:35;;;;;;;:::i;:::-;;;;;;;;20888:599;20831:656;:::o;19583:512::-;19731:58;19748:4;19763:11;;;;;;;;;;;19777;19731:8;:58::i;:::-;19832:11;;;;;;;;;;;:27;;;19867:9;19900:4;19920:11;19946:1;19989;20032:14;;;;;;;;;;;20061:15;19832:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19583:512;;:::o;1174:278::-;1260:7;1292:1;1288;:5;1295:12;1280:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1319:9;1335:1;1331;:5;;;;:::i;:::-;1319:17;;1443:1;1436:8;;;1174:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:329::-;4209:6;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4150:329;;;;:::o;4485:619::-;4562:6;4570;4578;4627:2;4615:9;4606:7;4602:23;4598:32;4595:119;;;4633:79;;:::i;:::-;4595:119;4753:1;4778:53;4823:7;4814:6;4803:9;4799:22;4778:53;:::i;:::-;4768:63;;4724:117;4880:2;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4851:118;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;4485:619;;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:151::-;5961:9;5994:37;6025:5;5994:37;:::i;:::-;5981:50;;5886:151;;;:::o;6043:181::-;6155:62;6211:5;6155:62;:::i;:::-;6150:3;6143:75;6043:181;;:::o;6230:272::-;6348:4;6386:2;6375:9;6371:18;6363:26;;6399:96;6492:1;6481:9;6477:17;6468:6;6399:96;:::i;:::-;6230:272;;;;:::o;6508:104::-;6553:7;6582:24;6600:5;6582:24;:::i;:::-;6571:35;;6508:104;;;:::o;6618:142::-;6721:32;6747:5;6721:32;:::i;:::-;6716:3;6709:45;6618:142;;:::o;6766:254::-;6875:4;6913:2;6902:9;6898:18;6890:26;;6926:87;7010:1;6999:9;6995:17;6986:6;6926:87;:::i;:::-;6766:254;;;;:::o;7026:474::-;7094:6;7102;7151:2;7139:9;7130:7;7126:23;7122:32;7119:119;;;7157:79;;:::i;:::-;7119:119;7277:1;7302:53;7347:7;7338:6;7327:9;7323:22;7302:53;:::i;:::-;7292:63;;7248:117;7404:2;7430:53;7475:7;7466:6;7455:9;7451:22;7430:53;:::i;:::-;7420:63;;7375:118;7026:474;;;;;:::o;7506:180::-;7554:77;7551:1;7544:88;7651:4;7648:1;7641:15;7675:4;7672:1;7665:15;7692:320;7736:6;7773:1;7767:4;7763:12;7753:22;;7820:1;7814:4;7810:12;7841:18;7831:81;;7897:4;7889:6;7885:17;7875:27;;7831:81;7959:2;7951:6;7948:14;7928:18;7925:38;7922:84;;7978:18;;:::i;:::-;7922:84;7743:269;7692:320;;;:::o;8018:182::-;8158:34;8154:1;8146:6;8142:14;8135:58;8018:182;:::o;8206:366::-;8348:3;8369:67;8433:2;8428:3;8369:67;:::i;:::-;8362:74;;8445:93;8534:3;8445:93;:::i;:::-;8563:2;8558:3;8554:12;8547:19;;8206:366;;;:::o;8578:419::-;8744:4;8782:2;8771:9;8767:18;8759:26;;8831:9;8825:4;8821:20;8817:1;8806:9;8802:17;8795:47;8859:131;8985:4;8859:131;:::i;:::-;8851:139;;8578:419;;;:::o;9003:143::-;9060:5;9091:6;9085:13;9076:22;;9107:33;9134:5;9107:33;:::i;:::-;9003:143;;;;:::o;9152:351::-;9222:6;9271:2;9259:9;9250:7;9246:23;9242:32;9239:119;;;9277:79;;:::i;:::-;9239:119;9397:1;9422:64;9478:7;9469:6;9458:9;9454:22;9422:64;:::i;:::-;9412:74;;9368:128;9152:351;;;;:::o;9509:332::-;9630:4;9668:2;9657:9;9653:18;9645:26;;9681:71;9749:1;9738:9;9734:17;9725:6;9681:71;:::i;:::-;9762:72;9830:2;9819:9;9815:18;9806:6;9762:72;:::i;:::-;9509:332;;;;;:::o;9847:85::-;9892:7;9921:5;9910:16;;9847:85;;;:::o;9938:158::-;9996:9;10029:61;10047:42;10056:32;10082:5;10056:32;:::i;:::-;10047:42;:::i;:::-;10029:61;:::i;:::-;10016:74;;9938:158;;;:::o;10102:147::-;10197:45;10236:5;10197:45;:::i;:::-;10192:3;10185:58;10102:147;;:::o;10255:807::-;10504:4;10542:3;10531:9;10527:19;10519:27;;10556:71;10624:1;10613:9;10609:17;10600:6;10556:71;:::i;:::-;10637:72;10705:2;10694:9;10690:18;10681:6;10637:72;:::i;:::-;10719:80;10795:2;10784:9;10780:18;10771:6;10719:80;:::i;:::-;10809;10885:2;10874:9;10870:18;10861:6;10809:80;:::i;:::-;10899:73;10967:3;10956:9;10952:19;10943:6;10899:73;:::i;:::-;10982;11050:3;11039:9;11035:19;11026:6;10982:73;:::i;:::-;10255:807;;;;;;;;;:::o;11068:143::-;11125:5;11156:6;11150:13;11141:22;;11172:33;11199:5;11172:33;:::i;:::-;11068:143;;;;:::o;11217:663::-;11305:6;11313;11321;11370:2;11358:9;11349:7;11345:23;11341:32;11338:119;;;11376:79;;:::i;:::-;11338:119;11496:1;11521:64;11577:7;11568:6;11557:9;11553:22;11521:64;:::i;:::-;11511:74;;11467:128;11634:2;11660:64;11716:7;11707:6;11696:9;11692:22;11660:64;:::i;:::-;11650:74;;11605:129;11773:2;11799:64;11855:7;11846:6;11835:9;11831:22;11799:64;:::i;:::-;11789:74;;11744:129;11217:663;;;;;:::o;11886:225::-;12026:34;12022:1;12014:6;12010:14;12003:58;12095:8;12090:2;12082:6;12078:15;12071:33;11886:225;:::o;12117:366::-;12259:3;12280:67;12344:2;12339:3;12280:67;:::i;:::-;12273:74;;12356:93;12445:3;12356:93;:::i;:::-;12474:2;12469:3;12465:12;12458:19;;12117:366;;;:::o;12489:419::-;12655:4;12693:2;12682:9;12678:18;12670:26;;12742:9;12736:4;12732:20;12728:1;12717:9;12713:17;12706:47;12770:131;12896:4;12770:131;:::i;:::-;12762:139;;12489:419;;;:::o;12914:223::-;13054:34;13050:1;13042:6;13038:14;13031:58;13123:6;13118:2;13110:6;13106:15;13099:31;12914:223;:::o;13143:366::-;13285:3;13306:67;13370:2;13365:3;13306:67;:::i;:::-;13299:74;;13382:93;13471:3;13382:93;:::i;:::-;13500:2;13495:3;13491:12;13484:19;;13143:366;;;:::o;13515:419::-;13681:4;13719:2;13708:9;13704:18;13696:26;;13768:9;13762:4;13758:20;13754:1;13743:9;13739:17;13732:47;13796:131;13922:4;13796:131;:::i;:::-;13788:139;;13515:419;;;:::o;13940:221::-;14080:34;14076:1;14068:6;14064:14;14057:58;14149:4;14144:2;14136:6;14132:15;14125:29;13940:221;:::o;14167:366::-;14309:3;14330:67;14394:2;14389:3;14330:67;:::i;:::-;14323:74;;14406:93;14495:3;14406:93;:::i;:::-;14524:2;14519:3;14515:12;14508:19;;14167:366;;;:::o;14539:419::-;14705:4;14743:2;14732:9;14728:18;14720:26;;14792:9;14786:4;14782:20;14778:1;14767:9;14763:17;14756:47;14820:131;14946:4;14820:131;:::i;:::-;14812:139;;14539:419;;;:::o;14964:224::-;15104:34;15100:1;15092:6;15088:14;15081:58;15173:7;15168:2;15160:6;15156:15;15149:32;14964:224;:::o;15194:366::-;15336:3;15357:67;15421:2;15416:3;15357:67;:::i;:::-;15350:74;;15433:93;15522:3;15433:93;:::i;:::-;15551:2;15546:3;15542:12;15535:19;;15194:366;;;:::o;15566:419::-;15732:4;15770:2;15759:9;15755:18;15747:26;;15819:9;15813:4;15809:20;15805:1;15794:9;15790:17;15783:47;15847:131;15973:4;15847:131;:::i;:::-;15839:139;;15566:419;;;:::o;15991:222::-;16131:34;16127:1;16119:6;16115:14;16108:58;16200:5;16195:2;16187:6;16183:15;16176:30;15991:222;:::o;16219:366::-;16361:3;16382:67;16446:2;16441:3;16382:67;:::i;:::-;16375:74;;16458:93;16547:3;16458:93;:::i;:::-;16576:2;16571:3;16567:12;16560:19;;16219:366;;;:::o;16591:419::-;16757:4;16795:2;16784:9;16780:18;16772:26;;16844:9;16838:4;16834:20;16830:1;16819:9;16815:17;16808:47;16872:131;16998:4;16872:131;:::i;:::-;16864:139;;16591:419;;;:::o;17016:227::-;17156:34;17152:1;17144:6;17140:14;17133:58;17225:10;17220:2;17212:6;17208:15;17201:35;17016:227;:::o;17249:366::-;17391:3;17412:67;17476:2;17471:3;17412:67;:::i;:::-;17405:74;;17488:93;17577:3;17488:93;:::i;:::-;17606:2;17601:3;17597:12;17590:19;;17249:366;;;:::o;17621:419::-;17787:4;17825:2;17814:9;17810:18;17802:26;;17874:9;17868:4;17864:20;17860:1;17849:9;17845:17;17838:47;17902:131;18028:4;17902:131;:::i;:::-;17894:139;;17621:419;;;:::o;18046:224::-;18186:34;18182:1;18174:6;18170:14;18163:58;18255:7;18250:2;18242:6;18238:15;18231:32;18046:224;:::o;18276:366::-;18418:3;18439:67;18503:2;18498:3;18439:67;:::i;:::-;18432:74;;18515:93;18604:3;18515:93;:::i;:::-;18633:2;18628:3;18624:12;18617:19;;18276:366;;;:::o;18648:419::-;18814:4;18852:2;18841:9;18837:18;18829:26;;18901:9;18895:4;18891:20;18887:1;18876:9;18872:17;18865:47;18929:131;19055:4;18929:131;:::i;:::-;18921:139;;18648:419;;;:::o;19073:180::-;19121:77;19118:1;19111:88;19218:4;19215:1;19208:15;19242:4;19239:1;19232:15;19259:194;19299:4;19319:20;19337:1;19319:20;:::i;:::-;19314:25;;19353:20;19371:1;19353:20;:::i;:::-;19348:25;;19397:1;19394;19390:9;19382:17;;19421:1;19415:4;19412:11;19409:37;;;19426:18;;:::i;:::-;19409:37;19259:194;;;;:::o;19459:191::-;19499:3;19518:20;19536:1;19518:20;:::i;:::-;19513:25;;19552:20;19570:1;19552:20;:::i;:::-;19547:25;;19595:1;19592;19588:9;19581:16;;19616:3;19613:1;19610:10;19607:36;;;19623:18;;:::i;:::-;19607:36;19459:191;;;;:::o;19656:177::-;19796:29;19792:1;19784:6;19780:14;19773:53;19656:177;:::o;19839:366::-;19981:3;20002:67;20066:2;20061:3;20002:67;:::i;:::-;19995:74;;20078:93;20167:3;20078:93;:::i;:::-;20196:2;20191:3;20187:12;20180:19;;19839:366;;;:::o;20211:419::-;20377:4;20415:2;20404:9;20400:18;20392:26;;20464:9;20458:4;20454:20;20450:1;20439:9;20435:17;20428:47;20492:131;20618:4;20492:131;:::i;:::-;20484:139;;20211:419;;;:::o;20636:410::-;20676:7;20699:20;20717:1;20699:20;:::i;:::-;20694:25;;20733:20;20751:1;20733:20;:::i;:::-;20728:25;;20788:1;20785;20781:9;20810:30;20828:11;20810:30;:::i;:::-;20799:41;;20989:1;20980:7;20976:15;20973:1;20970:22;20950:1;20943:9;20923:83;20900:139;;21019:18;;:::i;:::-;20900:139;20684:362;20636:410;;;;:::o;21052:180::-;21100:77;21097:1;21090:88;21197:4;21194:1;21187:15;21221:4;21218:1;21211:15;21238:185;21278:1;21295:20;21313:1;21295:20;:::i;:::-;21290:25;;21329:20;21347:1;21329:20;:::i;:::-;21324:25;;21368:1;21358:35;;21373:18;;:::i;:::-;21358:35;21415:1;21412;21408:9;21403:14;;21238:185;;;;:::o;21429:220::-;21569:34;21565:1;21557:6;21553:14;21546:58;21638:3;21633:2;21625:6;21621:15;21614:28;21429:220;:::o;21655:366::-;21797:3;21818:67;21882:2;21877:3;21818:67;:::i;:::-;21811:74;;21894:93;21983:3;21894:93;:::i;:::-;22012:2;22007:3;22003:12;21996:19;;21655:366;;;:::o;22027:419::-;22193:4;22231:2;22220:9;22216:18;22208:26;;22280:9;22274:4;22270:20;22266:1;22255:9;22251:17;22244:47;22308:131;22434:4;22308:131;:::i;:::-;22300:139;;22027:419;;;:::o;22452:180::-;22500:77;22497:1;22490:88;22597:4;22594:1;22587:15;22621:4;22618:1;22611:15;22638:180;22686:77;22683:1;22676:88;22783:4;22780:1;22773:15;22807:4;22804:1;22797:15;22824:114;22891:6;22925:5;22919:12;22909:22;;22824:114;;;:::o;22944:184::-;23043:11;23077:6;23072:3;23065:19;23117:4;23112:3;23108:14;23093:29;;22944:184;;;;:::o;23134:132::-;23201:4;23224:3;23216:11;;23254:4;23249:3;23245:14;23237:22;;23134:132;;;:::o;23272:108::-;23349:24;23367:5;23349:24;:::i;:::-;23344:3;23337:37;23272:108;;:::o;23386:179::-;23455:10;23476:46;23518:3;23510:6;23476:46;:::i;:::-;23554:4;23549:3;23545:14;23531:28;;23386:179;;;;:::o;23571:113::-;23641:4;23673;23668:3;23664:14;23656:22;;23571:113;;;:::o;23720:732::-;23839:3;23868:54;23916:5;23868:54;:::i;:::-;23938:86;24017:6;24012:3;23938:86;:::i;:::-;23931:93;;24048:56;24098:5;24048:56;:::i;:::-;24127:7;24158:1;24143:284;24168:6;24165:1;24162:13;24143:284;;;24244:6;24238:13;24271:63;24330:3;24315:13;24271:63;:::i;:::-;24264:70;;24357:60;24410:6;24357:60;:::i;:::-;24347:70;;24203:224;24190:1;24187;24183:9;24178:14;;24143:284;;;24147:14;24443:3;24436:10;;23844:608;;;23720:732;;;;:::o;24458:831::-;24721:4;24759:3;24748:9;24744:19;24736:27;;24773:71;24841:1;24830:9;24826:17;24817:6;24773:71;:::i;:::-;24854:80;24930:2;24919:9;24915:18;24906:6;24854:80;:::i;:::-;24981:9;24975:4;24971:20;24966:2;24955:9;24951:18;24944:48;25009:108;25112:4;25103:6;25009:108;:::i;:::-;25001:116;;25127:72;25195:2;25184:9;25180:18;25171:6;25127:72;:::i;:::-;25209:73;25277:3;25266:9;25262:19;25253:6;25209:73;:::i;:::-;24458:831;;;;;;;;:::o;25295:483::-;25466:4;25504:2;25493:9;25489:18;25481:26;;25517:71;25585:1;25574:9;25570:17;25561:6;25517:71;:::i;:::-;25635:9;25629:4;25625:20;25620:2;25609:9;25605:18;25598:48;25663:108;25766:4;25757:6;25663:108;:::i;:::-;25655:116;;25295:483;;;;;:::o

Swarm Source

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